Taxes

How to Look Up Any Tax Assessment Record in New York State by Coordinate

How to Look Up Any Tax Assessment Record in New York State by Coordinate

I was studying the various data services available and discovered a handy little website put out by the state for public use to find out tax assessment records for all counties in New York State.

https://gisservices.its.ny.gov/arcgis/rest/services/NYSTaxAssessmentLookup/GPServer/TaxAssessment/execute

Required Fields:

Y = Latitude

X = Longitude

SpatialReference = 4326 if you want to use latitude and longitude

Kind of a handy endpoint, for your use. It returns a json string. You can also automate the process by using a GET or POST request. For example to pull the tax record for a point at Cole Hill State Forest and get the data back as a JSON text string.

https://gisservices.its.ny.gov/arcgis/rest/services/NYSTaxAssessmentLookup/GPServer/TaxAssessment/execute?X=-74.10192&Y=42.59518&SpatialReference=4326&env%3AoutSR=&env%3AprocessSR=&returnZ=false&returnM=false&returnTrueCurves=false&returnFeatureCollection=false&context=&f=json

Here is what that URL will output it when you request it.

{"results":[{"paramName":"OBJECTID","dataType":"GPString","value":"30986"},
{"paramName":"COUNTY_NAME","dataType":"GPString","value":"Albany"},
{"paramName":"MUNI_NAME","dataType":"GPString","value":"Berne"},
{"paramName":"SWIS","dataType":"GPString","value":"012000"},
{"paramName":"PARCEL_ADDR","dataType":"GPString","value":"Willsie Rd"},
{"paramName":"PRINT_KEY","dataType":"GPString","value":"90.-1-14"},
{"paramName":"SBL","dataType":"GPString","value":"09000000010140000000"},
{"paramName":"CITYTOWN_NAME","dataType":"GPString","value":"Berne"},
{"paramName":"CITYTOWN_SWIS","dataType":"GPString","value":"012000"},
{"paramName":"LOC_ST_NBR","dataType":"GPString","value":"Null"},
{"paramName":"LOC_STREET","dataType":"GPString","value":"Willsie Rd"},
{"paramName":"LOC_UNIT","dataType":"GPString","value":"Null"},
{"paramName":"LOC_ZIP","dataType":"GPString","value":"Null"},
{"paramName":"PROP_CLASS","dataType":"GPString","value":"941"},
{"paramName":"ROLL_SECTION","dataType":"GPString","value":"3"},
{"paramName":"LAND_AV","dataType":"GPString","value":"579885"},
{"paramName":"TOTAL_AV","dataType":"GPString","value":"579885"},
{"paramName":"FULL_MARKET_VAL","dataType":"GPString","value":"982856"},
{"paramName":"YR_BLT","dataType":"GPString","value":"Null"},
{"paramName":"FRONT","dataType":"GPString","value":"0"},
{"paramName":"DEPTH","dataType":"GPString","value":"0"},
{"paramName":"SQ_FT","dataType":"GPString","value":"0"},
{"paramName":"ACRES","dataType":"GPString","value":"506.28"},
{"paramName":"SCHOOL_CODE","dataType":"GPString","value":"012001"},
{"paramName":"SCHOOL_NAME","dataType":"GPString","value":"Berne-Knox-Westerlo"},
{"paramName":"SEWER_TYPE","dataType":"GPString","value":"1"},
{"paramName":"SEWER_DESC","dataType":"GPString","value":"None"},
{"paramName":"WATER_SUPP","dataType":"GPString","value":"1"},
{"paramName":"WATER_DESC","dataType":"GPString","value":"None"},
{"paramName":"UTILITIES","dataType":"GPString","value":"3"},
{"paramName":"UTILITIES_DESC","dataType":"GPString","value":"Electric"},
{"paramName":"BLDG_STYLE","dataType":"GPString","value":"Null"},
{"paramName":"BLDG_STYLE_DESC","dataType":"GPString","value":"Null"},
{"paramName":"HEAT_TYPE","dataType":"GPString","value":"Null"},
{"paramName":"HEAT_TYPE_DESC","dataType":"GPString","value":"Null"},
{"paramName":"FUEL_TYPE","dataType":"GPString","value":"Null"},
{"paramName":"FUEL_TYPE_DESC","dataType":"GPString","value":"Null"},
{"paramName":"SQFT_LIVING","dataType":"GPString","value":"Null"},
{"paramName":"NBR_KITCHENS","dataType":"GPString","value":"Null"},
{"paramName":"NBR_FULL_BATHS","dataType":"GPString","value":"Null"},
{"paramName":"NBR_BEDROOMS","dataType":"GPString","value":"Null"},
{"paramName":"USED_AS_CODE","dataType":"GPString","value":"Null"},
{"paramName":"USED_AS_DESC","dataType":"GPString","value":"Null"},
{"paramName":"AG_DIST_CODE","dataType":"GPString","value":"Null"},
{"paramName":"AG_DIST_NAME","dataType":"GPString","value":"Null"},
{"paramName":"PRIMARY_OWNER","dataType":"GPString","value":"NYS Reforestation Land"},
{"paramName":"MAIL_ADDR","dataType":"GPString","value":"112 State St Rm 810"},
{"paramName":"PO_BOX","dataType":"GPString","value":"Null"},
{"paramName":"MAIL_CITY","dataType":"GPString","value":"Albany"},
{"paramName":"MAIL_STATE","dataType":"GPString","value":"NY"},
{"paramName":"MAIL_ZIP","dataType":"GPString","value":"12207"},
{"paramName":"ADD_OWNER","dataType":"GPString","value":"Null"},
{"paramName":"ADD_MAIL_ADDR","dataType":"GPString","value":""},
{"paramName":"ADD_MAIL_PO_BOX","dataType":"GPString","value":"Null"},
{"paramName":"ADD_MAIL_CITY","dataType":"GPString","value":"Null"},
{"paramName":"ADD_MAIL_STATE","dataType":"GPString","value":"Null"},
{"paramName":"ADD_MAIL_ZIP","dataType":"GPString","value":"Null"},
{"paramName":"BOOK","dataType":"GPString","value":"Null"},
{"paramName":"PAGE","dataType":"GPString","value":"Null"},
{"paramName":"GRID_EAST","dataType":"GPString","value":"561180"},
{"paramName":"GRID_NORTH","dataType":"GPString","value":"945822"},
{"paramName":"MUNI_PARCEL_ID","dataType":"GPString","value":"0120001026"},
{"paramName":"SWIS_SBL_ID","dataType":"GPString","value":"01200009000000010140000000"},
{"paramName":"SWIS_PRINT_KEY_ID","dataType":"GPString","value":"01200090.-1-14"},
{"paramName":"ROLL_YR","dataType":"GPString","value":"2019"},
{"paramName":"SPATIAL_YR","dataType":"GPString","value":"2019"},
{"paramName":"OWNER_TYPE","dataType":"GPString","value":"2"},
{"paramName":"NYS_NAME","dataType":"GPString","value":"New York State- DEC"},
{"paramName":"NYS_NAME_SOURCE","dataType":"GPString","value":"1-2-SA-a"},
{"paramName":"DUP_GEO","dataType":"GPString","value":"Null"},
{"paramName":"CALC_ACRES","dataType":"GPString","value":"498.300342"},
{"paramName":"ServiceMessage","dataType":"GPString","value":"Match found for entered X:-74.10192 & Y:42.59518."}],"messages":[]}

I found this handy enough, I wrote short PHP script that I can execute as needed to pull up property data and output it into a CSV spreadsheet format for bringing up in OpenOffice Calc. If you enter more then two words, it searches by address, otherwise it uses the first and second parameters as coordinates.

if ($argc > 2) {
	$address = "";
	for ($i = 1; $i <= $argc; $i++) 
		$address .= "$argv[$i] ";
		
	$address = urlencode($address);
	
	$json = file_get_contents("https://gisservices.its.ny.gov/arcgis/rest/services/Locators/Street_and_Address_Composite/GeocodeServer/findAddressCandidates?Street=&City=&State=&ZIP=&SingleLine={$address}&outFields=&maxLocations=1&matchOutOfRange=true&langCode=&locationType=&sourceCountry=&category=&location=&distance=&searchExtent=&outSR=4326&magicKey=&f=pjson");
	$coord = json_decode($json);
	
	$lat = $coord->candidates[0]->location->y;
	$lng = $coord->candidates[0]->location->x;
}

else {
	$lat = $argv[1];
	$lng = $argv[2];
}

if ($lng > 0) $lng *= -1;

$json = file_get_contents("https://gisservices.its.ny.gov/arcgis/rest/services/NYSTaxAssessmentLookup/GPServer/TaxAssessment/execute?X={$lng}&Y={$lat}&SpatialReference=4326&env%3AoutSR=&env%3AprocessSR=&returnZ=false&returnM=false&returnTrueCurves=false&returnFeatureCollection=false&context=&f=json");

$prop = json_decode($json);

foreach ($prop->results as $line) {
	echo '"'.addslashes($line->paramName).'","'.addslashes($line->value).""n";
}

With this script, you can load a nice version of tax record in your favorite spreadsheet.

OBJECTID 30986
COUNTY_NAME Albany
MUNI_NAME Berne
SWIS 12000
PARCEL_ADDR Willsie Rd
PRINT_KEY 90.-1-14
SBL 9.00000001014E+018
CITYTOWN_NAME Berne
CITYTOWN_SWIS 12000
LOC_ST_NBR Null
LOC_STREET Willsie Rd
LOC_UNIT Null
LOC_ZIP Null
PROP_CLASS 941
ROLL_SECTION 3
LAND_AV 579885
TOTAL_AV 579885
FULL_MARKET_VAL 982856
YR_BLT Null
FRONT 0
DEPTH 0
SQ_FT 0
ACRES 506.28
SCHOOL_CODE 12001
SCHOOL_NAME Berne-Knox-Westerlo
SEWER_TYPE 1
SEWER_DESC None
WATER_SUPP 1
WATER_DESC None
UTILITIES 3
UTILITIES_DESC Electric
BLDG_STYLE Null
BLDG_STYLE_DESC Null
HEAT_TYPE Null
HEAT_TYPE_DESC Null
FUEL_TYPE Null
FUEL_TYPE_DESC Null
SQFT_LIVING Null
NBR_KITCHENS Null
NBR_FULL_BATHS Null
NBR_BEDROOMS Null
USED_AS_CODE Null
USED_AS_DESC Null
AG_DIST_CODE Null
AG_DIST_NAME Null
PRIMARY_OWNER NYS Reforestation Land
MAIL_ADDR 112 State St Rm 810
PO_BOX Null
MAIL_CITY Albany
MAIL_STATE NY
MAIL_ZIP 12207
ADD_OWNER Null
ADD_MAIL_ADDR
ADD_MAIL_PO_BOX Null
ADD_MAIL_CITY Null
ADD_MAIL_STATE Null
ADD_MAIL_ZIP Null
BOOK Null
PAGE Null
GRID_EAST 561180
GRID_NORTH 945822
MUNI_PARCEL_ID 120001026
SWIS_SBL_ID 1.20000900000001E+024
SWIS_PRINT_KEY_ID 01200090.-1-14
ROLL_YR 2019
SPATIAL_YR 2019
OWNER_TYPE 2
NYS_NAME New York State- DEC
NYS_NAME_SOURCE 1-2-SA-a
DUP_GEO Null
CALC_ACRES 498.300342
ServiceMessage Match found for entered X:-74.08836 & Y:42.59480.

Don’t Forget to Vote in School Board Elections

Many of us forget about School Board Elections.

They are in a strange time of year, the middle of May, as many of us are thinking more about our summer plans, rather then critical questions of local government spending. School board elections, as local elections, are poorly covered by the news, and often are uninteresting. You may no longer attend high school, and you may not have kids in school. Yet those are not good reasons for not voting.

School Board Elections, School Budget Vote, and Library Budget Vote are all important things to vote on for several reasons including:

  • Low turn out, local elections mean your vote can change results easily.
  • Your decision hits your pocketbook directly, especially if pay property taxes.
  • Only chance to directly comment on government spending — should we invest more in our public schools or further increase the crushing tax burden on working folk?

None of us have perfect information. Many years when I vote in school board elections, I don’t even know whose running for school board, and leave those ballots blank. If your concerned about government spending and waste, or think schools and the students being educated are getting cut too much, then either vote Yes or No. It’s that simple.

Don’t Forget to Vote!

Every time taxes go up on the wealthy, conservatives say they will flee New York

Every time taxes go up on the wealthy, conservatives say they will flee New York. πŸŒ†

But I can’t imagine there are many wealthy people who live in New York for the low taxes. I really can’t think of a single person I know who chooses to live in New York for the low taxes — wealthy or otherwise. People live in New York for the unique accommodations in New York City, or even the things available in Upstate New York.

Sure you can live in Kansas or Idaho and pay a ton less in taxes, and that’s really good if your a homesteader, or want to farm. If cows are your thing and don’t already own land or have local family connections, then great. But not so good if you want to go to five star restaurants, Broadway shows or all the the high-end accommodations only available in a major metropolitan region. If you relatives and business partners all live in New York, then your kind of screwed if you go anywhere else. And taxes are based on the number of days you spend in New York — so if your commuting in from other state or have a vacation home in New York — you’ll still pay.

So I think it’s kind of silly argument to be opposed to the wealthy paying a bit more, just so that we can provide a good education to students or healthcare to seniors.

Here’s a Revenue Raising Idea – Tax Other Layers of Government

Here’s an idea of where the government can make more revenue: tax other layers of government.

Dreamy waters

Right now, state and local government enjoys paying zero taxes on property and buildings it owns, on energy it consumes, on facilities it operates. City halls, government buildings, prisons, parks, even enormous the beautiful buildings owned by the police and owned the Pentagon are currently untaxed. There is an enormous amount of government property that should be taxed, but currently isn’t — because of antiquated laws that prohibit government from taxing other layers of government.

Imagine for a minute if the State of New York was required to pay both local and federal taxes on the Empire State Plaza. For one thing,Β such a lavish building complex would have never been built.Β But even if was built, they would have used much cheaper materials, to avoid paying so much in local and federal taxes. Likewise, imagine if the City of Albany had to pay state and federal taxes on City Hall — it would have been long ago sold off to private developers — who would turn this beautiful old building into a hotel, conference center or dinning hall. Government would move to an efficient, non-descript building in a lower-cost part of the city.

Likewise, imagine if the City of Albany had to pay state and federal income tax on fines, property tax payments, other forms of revenue.Β The City of Albany would likely find it necessary to cut services, and find economies — as they would be making less money on each dollar they brought in. Yes, local property taxes and fines might increase to cover some of the cost of paying taxes to other levels of government — but also local government would shrink. Correspondingly, the state and federal governments could cut their taxes, because the federal and state governments would be collecting income tax on the city’s fines, taxes, and other sources of revenue.

Taxes are a proven method of reducing spending. At first it might seem silly for government to tax each other layer of government, but taxes on government spending will discourage more government spending, leading to a smaller, more efficient government. No more lavish government buildings, no more lavish spending on politicians or bureaucrats, just a government that is a lean servant of the people. The more you think about it, taxing government could not only lead to more revenue, but also less government.

Are taxes are going up next year?

Are taxes are going up next year?

Spend some time on Reddit or Twitter and you might be concerned that taxes are going up next year, thanks to a misunderstood chart from the Joint Committee on Taxation (JCT).

The chart, which was created in ecember 2017 when the Tax Cuts and Jobs Act (TCJA) was passed, periodically makes the rounds on social media because it seems to show that people earning between $10,000 to $30,000 begin paying more in taxes on average starting in 2021 than they would have before the law was passed.