Friday, April 25, 2014

New York City Class 1 Property Tax Assessment Ratio Map by Zipcode

The Assessment Ratio is the Assessed Value divided by the Market Value.
Yellow is low and Purple is high.

It appears Park Slope and surrounding areas and others lead the list in paying the lowest property tax assessment ratio.

For access to a query ready data see

For the original in Microsoft Access format see

Wednesday, April 23, 2014

Steps to load New York City Property Tax Data into BigQuery

These are the steps to load New York City Property Tax Data into BigQuery

Update2: here's a direct link to the New York City Department of Finance FY 2015 Tentative Assessment Roll (FY15 Database Files by Tax Class (revised 1/15/14))
You will need a google account and a project with BigQuery enabled. See
The cost is very low, so far with millions of records loaded and 100's and 100's of queries the cost has been 1 cent.  Another very cool thing is you can make your data public to all authenticated users and the users accessing your data do so at no cost to you.

Update: Many Thanks to +Felipe Hoffa for pointing out that I can make the New York City Department of Finance FY 2015 Tentative Assessment Roll (FY15 Database Files by Tax Class (revised 1/15/14)) public.  So that is what I did.  You can sign in to BigQuery and run queries such as:
(Query to show for market value greater than or equal to 10 Million what is the sum of assessment values / sum of market values:)
    • SELECT '>=10000000',count(*),sum(fn_avt)/sum(new_fv_t) FROM [personal-real-estate:acris_nyc.nyc_dof_tc_Tentative_Assessment_Roll] where txcl='1' and new_fv_t >= 10000000
    • Answer at this point in time is 3%
    • While for < 10000000 it is 4.6%
    • A very regressive tax.  The lower market home pay a much larger tax as a percentage of market value.

This example focuses on Class 1 property but applies to all classes.

  • Download Data: 
    • wget

  • This contains a mdb (microsoft access file)  (not exactly an open standard)
  • If you're using unix, you can install mdb-tables and mdb-export
  • Extract Data to CSV format:
    • mdb-tables TC1.mdb
    • mdb-export TC1.mdb tc1 >tc1.csv

  • Load into BigQuery:
    • bq load --project YOUR_PROJECT_NAME YOUR_DATASET.nyc_dof_tc_Tentative_Assessment_Roll tc1.csv EX_COUNT:float,CUREXT_A:float,TN_EXL:float,DELCHG:string,BORO:integer,EXT:string,TN_EXT:float,NOAV:integer,FN_EXT_A:float,FN_EXL_A:float,APPLIC2:string,CUREXL_A:float,CONDO_S3:string,CONDO_S2:string,CONDO_S1:string,YRB_FLAG:string,PROTEST:string,TN_AVL_A:float,AP_TIME:float,COMINT_B:string,ZIP:float,NEW_FV_L:float,NEWLOT:integer,BLDGS:string,COMINT_L:string,NEW_FV_T:float,O_AT_GRP:float,NODESC:integer,YRA2_RNG:float,COOP_NUM:float,BLD_VAR:string,REUC:string,YRA2:float,YRA1:float,DROPLOT:integer,LIMIT:string,CP_DIST:string,CUR_FV_L:float,TXCL:string,CURAVL:float,L_ACRE:string,O_LIMIT:string,CUR_FV_T:float,BLOCK:integer,CURAVT:float,DCHGDT:timestamp,TN_EXT_A:float,AP_BLOCK:float,APPLIC:string,CORCHG:integer,HNUM_LO:string,AT_GRP:float,CHGDT:timestamp,TN_EXL_A:float,APTNO:string,EX_CHGDT:timestamp,GEO_RC:integer,FCHGDT:timestamp,STATUS1:integer,DISTRICT:string,STATUS2:integer,TN_AVT_A:float,FN_AVT:float,VALREF:string,CONDO_NM:float,GR_SQFT:float,CUREXT:float,O_TXCL:string,CORNER:string,RES_UNIT:float,CUREXL:float,EASE:string,CP_BORO:string,YEAR4:float,FN_AVL_A:float,CONDO_A:string,BLDGCL:string,MBLDG:string,STR_NAME:string,YRB:float,FV_CHGDT:timestamp,FN_EXT:float,AP_LOT:float,BFRT_DEC:float,AT_GRP2:float,FN_EXL:float,IRREG:string,TN_AVT:float,AP_BORO:string,FN_AVL:float,LND_AREA:float,O_PROTST:string,OWNER:string,YRB_RNG:float,SM_CHGDT:timestamp,BBLE:string,SECVOL:float,BDEP_DEC:float,TN_AVL:float,O_APPLIC:string,LOT:integer,CURAVL_A:float,LDEP_DEC:float,YRA1_RNG:float,CURAVT_A:float,PROTEST2:string,FN_AVT_A:float,STORY:float,ZONING:string,HNUM_HI:string,EX_INDS:string,LFRT_DEC:float,CBN_TXCL:string,AP_DATE:timestamp,TOT_UNIT:float,EXMTCL:string,AP_EASE:string

  • A sample query would be:
    • for market value greater than or equal to 10 Million what is the sum of assessment values / sum of market values?
    • SELECT '>=10000000',count(*),sum(fn_avt)/sum(new_fv_t) FROM [YOUR_DATASET.nyc_dof_tc_Tentative_Assessment_Roll] where txcl='1' and new_fv_t >= 10000000

Friday, April 18, 2014

NYC Class 1 Property Tax Trend as Market Value Changes

What happens when you group Class 1 property by Market Value and then compare how they are assessed for property tax payment.  You will see that at >$0 market value the assessed value over market value ratio (we will call this the "assessment ratio") in 2014 is 4.6% and at the other extreme < $30 million the assessment ratio again is 4.6%.  This is obvious because both groups contain the majority of properties.   Although not all because there is currently at least 23 class 1 homes with a market value of greater than $30 million.

An interesting part is when you vary the break point.  You'll see that all homes over $3 million have an assessment ratio of around 3% on average while all homes under $3 million have an assessment ratio of 4.7% which means the lower market value homes are paying a higher tax percentage relative to their market value.   

Monday, April 14, 2014

New York City Area Road Tolls lead the Nation


That large fog is our area's leading tolls.

Where is all the Port Authority of New York and New Jersey Toll money going?

Friday, April 11, 2014

What are the typical ways we name our roads in New York City?

Is it a street, avenue, circle, etc?  According to Department of Finance data, it is shown here:

Could 1 Billion Dollars of New York City Property Tax be missing?


For Tax Class 1 properties, it appears that the sum of the Market Value is approximately $384 Billion but the assessed value should be 6% of the Market Value for Class 1 properties.  That would be (384 * 6%) = $23 Billion.  However according to the New York City Department of Finance the sum of the assessed values is approximately $18 Billion.  What happened to the other $5 Billion?  Ask your representative, this means that $1 Billion in property tax is not collected every year in Tax Class 1 property alone.

This does not even consider the other property tax classes.  However, we do see that Class 2 and 4 properties do pay the vast majority of property tax based on their assessment values.

New York City Tax Class Summary

Monday, April 7, 2014

Making Sense of the New York City Property Tax Assessment Information and Law

If you've ever tried to make sense of the New York City Property Tax Assessment Information, you would know that the information has evolved over a long period of time.  And just as barnacles attach themselves to a ship,  special interest laws attach themselves to our property tax system.  Here is the process:

“If you clean a ship or put a new ship to sea, it’s coated with microbes within a day,” said Van Mooy. “Not enough to see, but the first microbes are starting to lie down. And then the slime begins to grow over the course of weeks. That is essentially a gateway community to the barnacles and other things.”
“The slime” is a biofilm, a thin sheet of bacteria that stick to each other and to a matrix of molecules they exude to communicate with each other and to provide a hospitable environment for themselves. Once the slime forms, the rush is on, as algae and the larvae of creatures such as barnacles attach and begin to grow.

Well here is a tool to try to extract the ship from the slime.


presentation link: