Picture Source: Chicago Tribue(March 16, 2018 publication)

Background

Assessment to sales ratio (ASR) is the ratio of a property’s market value as estimated by the city to its actual sale prices. Ideally, the appraised market value for tax purposes should equal the price a property would fetch on the open market if it were put up for sale. A ratio equal to 1 indicates that the assessor had exactly estimated the property’s eventual sales price. In practice, that level of accuracy could only reasonably occur by chance. More often than not, property assessments conducted by counties for tax purposes fail to capture the full market values of properties on a open market. For example, NYC’s property tax roll for Fiscal 2019 showed that Chelsea Market (75 9th Avenue) had a market value of about $532 million in March 2018. However, that same year, Google wound up buying the building for almost $2.4 billion - more than 350% times NYC’s assessed market value.

Picture Source: The New York Times)

The NYC Department of Finance estimates market values using sophisticated models that relate prices of sold properties to unsold properties adjusting for differences in property characteristics. As a result, there will invariably be differences between estimates of market value and actual prices. The ASR measures this inaccuracy.

Getting the ASR right or wrong has implications not just for individual taxpayers but also for how DOF goes about its job and how the property tax is administered more broadly. Previous research show that the valuation method used by DOF to assess the market value of a property affects how close the market value assessed by DOF would be to the true market value. This also affects the taxes levied on a property, as well as the fairness and equity of the property tax system.

Goal of the Project

This project seeks to determine if DOF’s property appraisals meet the standards set by the International Association of Assessing Officers (IAAO). Using property sales and assessment data, it estimates the assessment-sale ratio and uses it to measure how close DOF’s market values are to true market value (sale prices). Additionally, the analysis evaluates how uniform the assessment-sales ratio are across the City and within groups by calculating the coefficient of dispersion.

This study focuses only on four property types, namely 1-3 family homes, commercial properties, small rentals (those with 4-6 units), and large rentals (those with more than 6 units).

Data

This analysis uses the property sales data and the real property assessment (RPAD) data from the NYC Department of Finance. The sales data is a record all properties sold in the City and includes such information as the property address, sale price, transaction date, property type, etc. RPAD, on the other hand, contains information about the City’s property valuation for tax purposes. it includes such details as market value, assessed value, property location and physical attributes, amon others.

The sales data used in this work covers all properties sold from calendar years 2013 to 2018. The property assessment rolls used are from Fiscal 2014 through Fiscal 2019, which correspond to property values as of calendar year 2013 through 2018. The two data sets were joined in order to obtain DOF’s assessed values for the sold properties. The objective is to ensure that DOF’s assessed market value and the sale price of a property are from the same year.

Data Cleaning

The annualized sales data were downloaded in csv format from DOF’s website, and loaded into R. The RPAD data were downloaded in text format and converted to SPSS, before exporting to R.

Once loaded to R, I cleaned and manipulated the data to get it ready for the analysis. Below are some of the major cleaning steps performed in this analysis.

  1. Removing Unwanted Columns: Six columns were dropped from the sales data while 94 columns were dropped from RPAD data.

  2. Excluding Non-Arms Length Transaction: The sales data records all property transactions, including arms length and non-arms length transactions. As a result, it includes transactions with sale prices as low as zero dollars. For the purpose of this study, I remove all non-arms length transactions. For 1-3 family home and rentals, I dropped transactions with sale prices under $10,000. For commercial properties, since they tend to be more expensive, I excluded those with sale prices under $30,000. While the thresholds used in this case are not perfect, they ensures that the study is conducted using transactions that were

  3. Removing Unwanted Property Types: Since the analysis focuses on 1-3 family homes, commercial properties and rentals, I dropped all other property types including coops, condos, vacant land, etc.

  4. Merging the two datasets: After cleaning, the sales and RPAD data sets were joined to ensure based on property type.

  5. Calculate ASRs and CODs: Once the final data is cleaned and ready, I calculate the assessment-sales ratio (ASR) and coefficient of dispersion (COD) across boroughs for the four property types under consideration. The ASRs and CODs are assessed across boroughs, property types and property values to determine where inefficiencies exist and how uneven they are.

For details of the data cleaning and manipulation, take a look at the R Script in this GitHub repository

Data Size

The final data, after cleaning and wrangling, used for this analysis included \42,975 observations and 49 columns. Note that each observation represents a transaction and not a property. Hence, information for one property may be recorded more than once if it sold multiple times over the years under consideration.

Below is a breakdown of the number of transactions by property type, and by borough.

No. of Transactions by Property Type

summary_citywide %>% 
  select(1:2) %>% 
  ggplot(aes(x = prop_type, y = N)) +
  geom_bar(position='dodge', fill = '#ff9149', stat='identity') +
  scale_y_continuous(labels = comma) +
  geom_text(aes(label = comma(N, size = 20))) +
  theme_economist() +
  theme(panel.grid.major = element_blank()) +
  labs(x = NULL,
       y = "No. of Transactions",
       title = "Number of Transactions by Property Type")

No. of Transactions by Borough

summary_boro %>% 
  select(1,3) %>% 
  group_by(Borough) %>% 
  summarise(N = sum(N)) %>% 
  ggplot(aes(x = Borough, y = N)) +
  geom_bar(position='dodge', fill = '#ff9149', stat='identity') +
  scale_y_continuous(labels = comma) +
  geom_text(aes(label = comma(N, size = 20))) +
  theme_economist() +
  theme(panel.grid.major = element_blank()) +
  labs(x = NULL,
       y = "No. of Transactions",
       title = "Number of Transactions by Borough")

Median Sales Ratio by Property Type

While individual properties may experience very different ASRs, the quality of DOF’s assessment is evaluated in the aggregate using the median value of all ASRs. IAAO standards define a high quality assessment for jurisdictions with a sufficiently large number of property sales—such as New York City— as one where the median ASR lies between 0.90 percent and 1.10 percent.

The tables below show the median assessment-sales ratio for four property types - 1-3 Family, commercial, large rentals and small rental properties.

The first tab shows that, overall, DOF’s assessment of 1-3 Family homes (Class 1) is the only one that meets the IAAO standards for quality assessment. This makes sense since DOF appraises the values of 1-3 Family properties using comparable sales method. The other property classes are appraised using other methods which fail to capture true market values.

Citywide Median ASR

summary_citywide %>% 
  select(prop_type, median_asr) %>%
  mutate(median_asr = round(median_asr, 2)) %>% 
  pivot_wider(names_from = prop_type,
              values_from = median_asr) %>% 
  kbl(align = "lrrrr") %>% 
  kable_classic_2()
1-3 Family Commercial/Office Large Rentals Small Rentals
0.95 0.38 0.26 0.47

Median ASR by Borough

summary_boro %>% 
  select(Borough, prop_type, median_asr)%>% 
  mutate(median_asr = round(median_asr, 2)) %>% 
  pivot_wider(names_from = prop_type,
              values_from = median_asr) %>% 
  kbl(align = "lrrrr") %>% 
  kable_classic_2()
Borough 1-3 Family Commercial/Office Large Rentals Small Rentals
Brooklyn 0.98 0.34 0.24 0.41
Manhattan 1.11 0.22 0.25 0.36
Queens 0.95 0.43 0.28 0.52
Staten Island 0.89 0.49 0.37 0.69
The Bronx 0.99 0.58 0.28 0.76

Median ASR by Property Value

summary_deciles %>% 
  select(decile, prop_type, median_asr)%>% 
  mutate(median_asr = round(median_asr, 2)) %>% 
  mutate(decile = case_when(decile == 1 ~ "Bottom 10%", decile == 2 ~ "10%-20%", 
                            decile == 3 ~ "20%-30%", decile == 4 ~ "30%-40%",
                            decile == 5 ~ "40%-50%", decile == 6 ~ "50%-60%", 
                            decile == 7 ~ "60%-70%", decile == 8 ~"70%-80%",
                            decile == 9 ~ "80%-90%", TRUE ~ "Top 10%")) %>% 
  rename(`Sale Price` = decile) %>% 
  pivot_wider(names_from = prop_type,
              values_from = median_asr) %>% 
  kbl(align = "lrrrr") %>% 
  kable_classic_2()
Sale Price 1-3 Family Commercial/Office Large Rentals Small Rentals
Bottom 10% 1.65 1.21 6.31 1.92
10%-20% 1.06 0.64 1.51 0.82
20%-30% 0.93 0.63 1.87 0.74
30%-40% 0.89 0.55 1.27 0.64
40%-50% 0.89 0.46 0.69 0.57
50%-60% 0.91 0.44 0.64 0.52
60%-70% 0.90 0.38 0.47 0.45
70%-80% 0.84 0.34 0.35 0.39
80%-90% 0.83 0.28 0.28 0.33
Top 10% 0.94 0.20 0.23 0.31

Even when you compare property types across boroughs or sale values, DOF’s assessment of 1-3 Family homes is the only one that meets IAAO standards.1

Uniformity and Variation of Sales Ratio

In addition to getting the median ASR (used to measure the quality of assessments) right, we also care about how the rest of the group is dispersed around the median, and what kind of uniformity exists when looking at properties by other groupings (e.g. value).

The level of uniformity in ASRs is measure using the coefficient of dispersion (COD). The COD measures the variation in assessment around the median ASR. Whereas the ASR measures inaccuracy, the COD measures uniformity. Estimates can be inaccurate — that is, further from market value — but if all properties’ assessments are equally inaccurate, then the assessments are perfectly uniform. That is, no one property is benefiting more or less from an inaccuracy than any other property in the same class.

The charts below depict how uniformly the ASRs of properties of the same type are dispersed around the median ASR (red line). The first tab shows the sales ratios among 1-3 Family homes by the sale price. The red line is the median ratio for 1-3 Family home citywide (0.95). Based on IAAO standards, you hope to see a uniform grouping around the median in that 0.9 - 1.1 range.

1-3 Family

merge_all %>% 
  filter(prop_type == "1-3 Family") %>% 
  ggplot(aes(SALE.PRICE, value.ratio, color = SALE.PRICE, alpha = 0.4)) +
  geom_point(shape = 16, size = 1, show.legend = FALSE, 
             position=position_jitter(width=.01,height=.1)) + 
  theme_economist() +
  scale_color_gradient(low = "#0091ff", high = "#f0650e", limits = c(0, 5000000)) +
  scale_x_continuous(name="Sale Price", limits=c(0, 5000000), label = dollar) +
  scale_y_continuous(name="Sales Ratio", limits=c(0, 2)) +
  geom_hline(yintercept = median(subset(merge_all, prop_type=="1-3 Family")$value.ratio), color = "Red") +
  ggtitle("1-3 Family Homes: Sales ratios by sale price")

Commercial/Office

merge_all %>% 
  filter(prop_type == "Commercial/Office") %>% 
  ggplot(aes(SALE.PRICE, value.ratio, color = SALE.PRICE, alpha = 0.4)) +
  geom_point(shape = 16, size = 1, show.legend = FALSE, 
             position=position_jitter(width=.01,height=.1)) + 
  theme_economist() +
  scale_color_gradient(low = "#0091ff", high = "#f0650e", limits = c(0, 10000000)) +
  scale_x_continuous(name="Sale Price", limits=c(0, 10000000), label = dollar) +
  scale_y_continuous(name="Sales Ratio", limits=c(0, 2)) +
  geom_hline(yintercept = median(subset(merge_all, prop_type=="Commercial/Office")$value.ratio),
             color = "Red") +
  ggtitle("Commercial/Office: Sales ratios by sale price")

Large Rentals

merge_all %>% 
  filter(prop_type == "Large Rentals") %>% 
  ggplot(aes(SALE.PRICE, value.ratio, color = SALE.PRICE, alpha = 0.4)) +
  geom_point(shape = 16, size = 1, show.legend = FALSE, 
             position=position_jitter(width=.01,height=.1)) + 
  theme_economist() +
  scale_color_gradient(low = "#0091ff", high = "#f0650e", limits = c(0, 25000000)) +
  scale_x_continuous(name="Sale Price", limits=c(0, 25000000), label = dollar) +
  scale_y_continuous(name="Sales Ratio", limits=c(0, 2)) +
  geom_hline(yintercept = median(subset(merge_all, prop_type=="Large Rentals")$value.ratio),
              color = "Red") +
  ggtitle("Large Rentals: Sales ratios by sale price")

Small Rentals

merge_all %>% 
  filter(prop_type == "Small Rentals") %>% 
  ggplot(aes(SALE.PRICE, value.ratio, color = SALE.PRICE, alpha = 0.4)) +
  geom_point(shape = 16, size = 1, show.legend = FALSE, 
             position=position_jitter(width=.01,height=.1)) + 
  theme_economist() +
  scale_color_gradient(low = "#0091ff", high = "#f0650e", limits = c(0, 10000000)) +
  scale_x_continuous(name="Sale Price", limits=c(0, 10000000), label = dollar) +
  scale_y_continuous(name="Sales Ratio", limits=c(0, 2)) +
  geom_hline(yintercept = median(subset(merge_all, prop_type=="Small Rentals")$value.ratio),
              color = "Red") +
  ggtitle("Small Rentals: Sales ratios by sale price")

Coefficient of Dispersion

Per IAAO standards, acceptable CODs fall between 5.0 and 15.0 in areas with relatively homogenous housing.

Citywide CODs

summary_citywide %>% 
  select(prop_type, cod) %>% 
  mutate(cod = round(cod, 1)) %>% 
  pivot_wider(names_from = prop_type,
              values_from = cod) %>% 
  kbl(align = "lrrrr") %>% 
  kable_classic_2()
1-3 Family Commercial/Office Large Rentals Small Rentals
25.5 6.9 32 8.2

CODs by Borough

summary_boro %>% 
  select(Borough, prop_type, cod)%>% 
  mutate(cod = round(cod, 1)) %>% 
  pivot_wider(names_from = prop_type,
              values_from = cod) %>% 
  kbl(align = "lrrrr") %>% 
  kable_classic_2()
Borough 1-3 Family Commercial/Office Large Rentals Small Rentals
Brooklyn 6.6 5.5 19.3 9.7
Manhattan 8.1 35.1 54.0 7.8
Queens 50.7 2.5 41.2 7.2
Staten Island 1.5 1.9 24.8 3.2
The Bronx 20.1 2.4 9.9 5.7

CODs by Property Value

summary_deciles %>% 
  select(decile, prop_type, cod)%>% 
  mutate(cod = round(cod, 1)) %>% 
  mutate(decile = case_when(decile == 1 ~ "Bottom 10%", decile == 2 ~ "10%-20%", 
                            decile == 3 ~ "20%-30%", decile == 4 ~ "30%-40%",
                            decile == 5 ~ "40%-50%", decile == 6 ~ "50%-60%", 
                            decile == 7 ~ "60%-70%", decile == 8 ~"70%-80%",
                            decile == 9 ~ "80%-90%", TRUE ~ "Top 10%")) %>% 
  rename(`Sale Price` = decile) %>% 
  pivot_wider(names_from = prop_type,
              values_from = cod) %>% 
  kbl(align = "lrrrr") %>% 
  kable_classic_2()
Sale Price 1-3 Family Commercial/Office Large Rentals Small Rentals
Bottom 10% 55.8 23.1 50.7 13.8
10%-20% 34.4 1.0 7.0 1.3
20%-30% 30.5 0.9 11.6 0.9
30%-40% 11.3 1.7 10.5 1.0
40%-50% 8.0 0.8 14.1 0.8
50%-60% 3.1 1.3 7.7 0.4
60%-70% 0.3 1.3 17.4 0.9
70%-80% 0.7 0.7 8.2 0.9
80%-90% 0.2 1.9 1.7 1.3
Top 10% 0.4 0.8 1.3 0.5

Takeaways

  • Sales ratios differ greatly between property types and assessment methods.

  • Within the same property types, variation is not terrible, though these results are also mixed.

  • Regardless of tax class or assessment method, DOF’s assessments tend to overvalue lower-value properties.

  • Comparing DOF market values between classes should be done with caution.

  • Converting to sales-based methods could have big effects on the way the property tax works.

Appendix

The tables gives a breakdown of median assessment ratios and coefficients of dispersion by zip code.21

Median ASR by Zip Code

summary_zip %>% 
  select(ZIP.CODE, prop_type, median_asr)%>% 
  mutate(median_asr = round(median_asr, 1)) %>% 
  pivot_wider(names_from = prop_type,
              values_from = median_asr) %>% 
  kbl(align = "lrrrr") %>% 
  kable_classic_2() %>% 
  scroll_box(width = "100%", height = "300px")
ZIP.CODE 1-3 Family Commercial/Office Large Rentals Small Rentals
10001 3.0 0.2 0.2 0.4
10002 0.7 0.2 0.2 0.3
10003 1.3 0.3 0.3 0.5
10004 NA NA NA 1.0
10005 NA NA 0.4 0.1
10006 NA 0.3 0.3 0.8
10007 1.3 0.2 0.4 0.3
10009 0.8 0.3 0.3 0.4
10010 0.9 0.2 0.3 0.6
10011 1.1 0.2 0.2 0.3
10012 1.1 0.2 0.2 0.3
10013 1.3 0.2 0.2 0.3
10014 1.2 0.2 0.2 0.3
10016 0.9 0.3 0.3 0.5
10017 1.6 0.3 0.4 0.2
10018 NA 0.2 0.4 0.6
10019 NA 0.1 0.3 0.4
10021 1.2 0.4 0.3 0.4
10022 0.8 0.3 0.3 0.4
10023 1.3 0.3 0.2 0.4
10024 1.2 NA 0.2 0.4
10025 1.2 0.2 0.2 0.4
10026 1.3 0.2 0.2 0.3
10027 1.0 0.5 0.2 0.2
10028 1.1 0.3 0.3 0.4
10029 0.8 NA 0.3 0.4
10030 1.1 NA 0.2 0.3
10031 0.9 NA 0.2 0.3
10032 1.1 NA 0.2 0.3
10033 0.8 0.3 0.2 0.4
10034 NA 0.4 0.2 0.4
10035 0.8 0.2 0.3 0.3
10036 2.3 0.4 0.3 0.4
10037 3.4 NA 0.4 0.3
10038 NA 0.3 0.2 0.3
10039 NA NA 0.2 0.3
10040 NA NA 0.3 0.4
10065 1.1 0.3 0.2 0.5
10069 NA NA 0.4 NA
10075 1.1 38.8 0.2 0.4
10128 1.3 0.7 0.2 0.4
10301 0.9 0.5 0.4 0.8
10302 0.9 0.7 0.4 1.0
10303 0.9 0.6 12.7 0.8
10304 0.9 0.7 0.3 0.8
10305 0.9 0.4 0.3 0.6
10306 0.9 0.5 0.6 0.6
10307 0.9 0.5 0.9 0.9
10308 0.9 0.6 0.4 0.7
10309 0.9 0.5 NA NA
10310 0.9 0.5 NA 0.4
10312 0.9 0.4 NA 0.6
10314 0.9 0.5 NA 0.5
10451 0.9 0.3 0.3 0.7
10452 0.9 NA 0.2 0.8
10453 1.0 0.1 0.3 0.8
10454 0.9 0.4 0.4 0.7
10455 0.8 0.6 0.3 0.7
10456 0.9 0.4 0.3 0.7
10457 1.0 0.6 0.3 0.8
10458 0.9 0.5 0.3 0.8
10459 0.9 NA 0.3 0.7
10460 1.0 0.5 0.3 0.8
10461 1.0 0.6 0.3 0.7
10462 0.9 0.6 0.3 0.7
10463 1.0 NA 0.2 0.7
10464 1.0 1.1 NA 0.5
10465 1.0 0.7 0.3 0.7
10466 1.0 0.6 0.3 0.7
10467 1.0 0.6 0.3 0.8
10468 0.9 NA 0.3 0.7
10469 1.0 1.4 0.3 0.8
10470 1.0 0.7 0.2 0.8
10471 1.2 NA 0.2 0.7
10472 1.0 0.5 0.3 0.8
10473 1.0 0.5 0.3 0.8
10474 1.1 0.5 0.2 0.9
10475 1.1 NA 0.4 1.1
11001 1.0 0.7 NA NA
11004 1.0 NA NA NA
11040 1.0 0.4 NA NA
11101 0.8 0.3 0.3 0.5
11102 0.8 0.3 0.3 0.5
11103 1.0 0.4 0.2 0.5
11104 0.9 NA 0.3 0.6
11105 0.9 0.7 0.3 0.4
11106 0.8 0.3 0.2 0.5
11201 1.0 0.2 0.2 0.4
11203 1.0 0.6 0.3 0.5
11204 0.9 0.3 0.2 0.3
11205 1.0 0.3 0.3 0.4
11206 1.0 0.2 0.2 0.3
11207 1.0 0.7 0.3 0.4
11208 1.0 0.6 0.3 0.4
11209 1.0 0.3 0.2 0.6
11210 0.9 0.5 0.3 0.6
11211 1.0 0.2 0.2 0.4
11212 1.0 0.6 0.3 0.4
11213 1.0 0.5 0.2 0.6
11214 1.0 0.3 0.2 0.4
11215 1.0 0.2 0.3 0.5
11216 1.1 0.2 0.2 0.2
11217 0.9 0.3 0.2 0.5
11218 1.0 0.3 0.2 0.5
11219 1.0 0.3 0.2 0.4
11220 1.0 0.4 0.2 0.5
11221 1.0 0.4 0.2 0.3
11222 1.0 0.3 0.2 0.4
11223 1.0 0.3 0.2 0.4
11224 0.9 1.2 0.3 0.7
11225 1.0 0.2 0.2 0.5
11226 0.9 0.6 0.2 0.7
11227 NA NA NA 0.4
11228 1.0 0.3 0.3 0.4
11229 1.0 0.4 0.2 0.5
11230 1.0 0.5 0.2 0.5
11231 1.0 0.1 0.3 0.3
11232 1.0 0.3 0.3 0.5
11233 1.0 0.3 0.3 0.4
11234 1.0 0.4 0.4 0.7
11235 1.0 0.4 0.2 0.5
11236 1.0 0.5 0.4 0.7
11237 1.0 0.1 0.2 0.5
11238 1.1 0.2 0.2 0.3
11239 1.5 NA 0.1 NA
11249 0.9 0.0 0.2 0.3
11354 0.9 0.3 0.3 0.4
11355 0.9 0.3 0.3 0.3
11356 0.9 0.4 NA 0.5
11357 0.9 0.4 0.4 0.5
11358 0.9 0.3 0.3 0.5
11360 1.0 NA NA 0.6
11361 0.9 0.3 1.8 0.6
11362 1.0 0.3 NA 0.5
11363 1.0 NA 0.3 0.4
11364 1.0 0.3 NA NA
11365 0.9 0.3 10.2 0.4
11366 0.9 0.6 NA 0.5
11367 0.9 NA 0.2 0.6
11368 1.0 0.4 0.4 0.6
11369 0.9 0.4 0.3 0.5
11370 1.0 NA NA 1.4
11372 0.9 0.4 0.3 0.8
11373 0.9 0.4 0.3 0.5
11374 1.0 0.3 0.2 0.3
11375 1.0 0.3 0.3 0.6
11377 0.9 0.4 0.3 0.6
11378 0.9 0.2 0.2 0.5
11379 1.0 0.4 NA 0.5
11385 1.0 0.4 0.3 0.4
11411 1.0 0.5 0.4 NA
11412 1.0 0.8 0.3 0.9
11413 1.0 NA 0.2 0.3
11414 1.0 1.3 NA 0.5
11415 0.9 NA 0.3 0.8
11416 1.0 0.7 NA 0.7
11417 0.9 0.4 NA 0.6
11418 0.9 0.6 0.3 0.7
11419 0.9 0.4 0.4 0.7
11420 1.0 0.7 0.3 0.7
11421 0.9 0.5 0.3 0.7
11422 1.0 0.7 NA NA
11423 0.9 0.5 0.3 1.0
11426 1.0 0.6 NA 1.3
11427 0.9 0.6 0.3 0.7
11428 0.9 0.5 NA 1.2
11429 1.0 0.6 0.5 0.9
11430 2.0 NA NA NA
11432 0.9 0.6 0.4 0.6
11433 1.0 0.5 0.2 0.4
11434 1.0 0.8 0.5 0.7
11435 0.9 0.6 0.7 0.5
11436 1.0 NA NA 1.1
11691 1.0 0.7 0.3 0.8
11692 0.9 NA NA 0.8
11693 1.0 0.5 40.6 0.6
11694 0.9 0.8 1.0 0.9
11697 523.6 NA NA NA

CODs by Zip Code

summary_zip %>% 
  select(ZIP.CODE, prop_type, cod)%>% 
  mutate(cod = round(cod, 1)) %>% 
  pivot_wider(names_from = prop_type,
              values_from = cod) %>% 
  kbl(align = "lrrrr") %>% 
  kable_classic_2() %>% 
  scroll_box(width = "100%", height = "300px")
ZIP.CODE 1-3 Family Commercial/Office Large Rentals Small Rentals
10001 0.0 1.4 3.0 9.8
10002 0.0 0.3 2.6 0.7
10003 0.2 0.0 48.3 9.0
10004 NA NA NA 8.4
10005 NA NA 0.0 0.0
10006 NA 0.0 0.0 0.0
10007 0.0 0.8 0.7 3.6
10009 0.0 1.2 26.2 10.2
10010 0.0 0.3 13.5 8.6
10011 0.1 0.3 16.0 8.7
10012 0.0 10.5 18.3 0.8
10013 0.1 4.0 3.3 0.7
10014 0.4 0.1 1174.7 7.7
10016 1.9 1.7 189.2 0.8
10017 0.0 0.8 4.7 0.2
10018 NA 0.0 10.3 0.9
10019 NA 0.0 93.2 6.0
10021 2.1 643.9 4.6 1.7
10022 1.0 0.3 1.0 0.1
10023 0.3 0.0 3.3 9.2
10024 5.7 NA 27.6 3.5
10025 1.4 0.0 6.2 12.6
10026 1.3 0.0 9.2 2.4
10027 2.7 0.0 19.2 17.1
10028 0.2 0.0 0.3 1.7
10029 5.2 NA 5.0 3.5
10030 0.6 NA 177.6 2.2
10031 2.0 NA 10.6 11.5
10032 118.1 NA 4.2 4.2
10033 0.4 0.0 25.0 1.5
10034 NA 0.0 1.3 0.5
10035 1.2 3.8 1.0 29.8
10036 0.0 5.0 7.4 1.7
10037 0.0 NA 39.5 55.8
10038 NA 28.6 1.9 5.9
10039 NA NA 0.5 1.2
10040 NA NA 4.0 0.0
10065 0.6 4.0 90.6 0.3
10069 NA NA 0.0 NA
10075 23.4 0.0 30.4 1.9
10128 0.5 0.0 18.2 1.0
10301 1.5 2.3 6.7 1.3
10302 1.7 0.7 2.6 1.0
10303 1.2 0.6 0.0 1.0
10304 2.3 0.1 0.1 2.5
10305 0.8 0.0 2.7 14.3
10306 1.7 2.3 13.6 2.2
10307 1.7 5.0 0.0 1.3
10308 1.2 0.5 0.0 0.0
10309 0.7 0.2 NA NA
10310 1.0 5.4 NA 3.9
10312 1.6 0.7 NA 0.1
10314 1.9 1.6 NA 2.2
10451 4.6 0.0 2.5 0.4
10452 1.8 NA 23.2 11.4
10453 5.0 0.0 2.7 5.6
10454 6.2 2.5 0.7 9.3
10455 1.5 0.0 4.5 1.5
10456 3.8 0.0 53.8 7.4
10457 1.5 0.0 1.4 3.7
10458 1.5 5.7 1.1 0.6
10459 1.6 NA 0.7 9.3
10460 3.6 0.0 1.1 1.4
10461 1.4 11.2 0.1 1.1
10462 2.3 0.2 0.0 1.5
10463 1.2 NA 1.2 2.9
10464 0.6 0.0 NA 0.5
10465 141.6 0.4 0.0 45.7
10466 4.9 2.1 0.6 1.8
10467 2.5 0.1 50.8 4.9
10468 2.4 NA 0.9 29.3
10469 3.2 0.1 1.7 4.7
10470 2.1 2.6 0.2 7.9
10471 1.7 NA 6.2 0.5
10472 3.8 0.1 1.0 9.0
10473 1.7 0.0 0.5 5.0
10474 1.7 0.2 7.2 0.1
10475 0.4 NA 0.0 0.0
11001 0.5 0.2 NA NA
11004 1.6 NA NA NA
11040 0.7 0.0 NA NA
11101 3.3 4.0 9.7 1.1
11102 1.7 4.0 3.2 9.4
11103 12.6 0.8 4.2 4.4
11104 0.3 NA 3.8 10.9
11105 4.7 0.0 14.0 2.3
11106 2.2 0.4 18.8 2.6
11201 1.3 3.0 0.6 4.6
11203 6.1 0.1 0.4 7.2
11204 5.3 1.3 13.5 4.7
11205 2.5 2.0 10.7 14.6
11206 29.2 0.1 3.5 11.3
11207 8.7 9.7 4.8 8.2
11208 3.8 1.0 0.1 8.1
11209 1.3 0.9 1.6 3.8
11210 3.9 2.4 0.2 2.1
11211 2.7 12.6 6.0 10.3
11212 6.2 1.0 2.1 15.4
11213 11.9 2.4 0.9 6.0
11214 1.9 0.5 0.9 4.9
11215 2.9 0.6 13.1 25.5
11216 32.6 20.9 3.0 24.7
11217 0.8 1.3 25.4 12.5
11218 3.1 2.1 8.5 3.2
11219 5.3 1.4 6.8 7.1
11220 2.1 7.9 4.9 7.0
11221 9.2 0.9 4.5 17.7
11222 1.8 4.4 9.6 4.3
11223 5.4 2.9 1.5 0.9
11224 2.4 0.0 0.4 13.1
11225 5.2 0.0 151.2 6.8
11226 6.9 9.3 3.6 1.5
11227 NA NA NA 0.0
11228 3.3 3.1 1.5 1.8
11229 1.3 0.3 12.0 0.7
11230 13.2 0.5 6.7 1.2
11231 1.1 0.0 254.3 12.5
11232 12.5 0.0 3.0 19.2
11233 8.5 1.6 47.7 9.3
11234 4.7 12.4 62.2 0.1
11235 2.1 1.1 12.8 2.2
11236 5.6 2.1 0.4 3.5
11237 1.8 3.4 5.3 4.6
11238 63.7 2.2 4.9 29.1
11239 8.7 NA 0.0 NA
11249 0.9 3.4 5.1 6.6
11354 1.0 0.2 1.0 7.7
11355 0.9 4.6 21.3 1.2
11356 1.9 0.3 NA 6.1
11357 1.0 2.3 0.0 6.6
11358 1.2 0.4 0.0 15.3
11360 1.1 NA NA 0.4
11361 1.3 1.5 6.5 15.2
11362 3.6 0.1 NA 0.2
11363 0.7 NA 0.0 1.2
11364 1.7 0.0 NA NA
11365 0.6 2.0 0.0 2.5
11366 0.5 0.0 NA 11.9
11367 1.9 NA 0.0 0.7
11368 34.7 1.9 2.1 3.2
11369 12.5 6.6 0.2 14.6
11370 5.7 NA NA 9.3
11372 1.5 3.5 0.1 9.6
11373 2.8 1.7 46.0 8.7
11374 5.4 0.0 0.1 15.5
11375 3.1 0.3 0.5 2.0
11377 2.2 0.7 4.7 7.6
11378 0.5 0.0 0.0 6.2
11379 2.3 0.8 NA 1.4
11385 5.2 1.3 0.4 5.8
11411 5.6 0.0 0.0 NA
11412 1.9 1.2 0.0 5.1
11413 1.7 NA 0.0 2.1
11414 6.4 0.0 NA 0.1
11415 1.9 NA 86.7 0.0
11416 5.8 0.3 NA 22.7
11417 10.0 0.7 NA 16.0
11418 1.4 0.0 3.8 3.1
11419 2.8 1.7 0.0 17.8
11420 2.6 4.4 0.0 9.1
11421 3.1 0.0 5.8 4.0
11422 2.3 1.1 NA NA
11423 1.0 0.8 3.5 4.1
11426 2.4 0.0 NA 1.2
11427 0.4 0.0 0.0 0.2
11428 5.7 3.0 NA 2.8
11429 5.2 0.1 0.0 8.5
11430 0.0 NA NA NA
11432 2.6 1.9 113.3 1.2
11433 3.1 2.7 0.0 5.9
11434 2.2 0.8 0.0 1.4
11435 3.1 1.2 21.4 4.2
11436 4.1 NA NA 7.6
11691 2.4 4.8 2.8 19.1
11692 2.1 NA NA 1.7
11693 4.9 0.8 2.6 0.9
11694 4.2 0.4 2.4 6.7
11697 0.0 NA NA NA

  1. Caveat – the extremes on the low end may be due to outliers. Proxies for arms-length transactions not perfect. Even so, just looking at the middle 80 percent the trend is there↩︎

  2. NAs imply there are not any sales in the zip code to calculate Median ASR or COD↩︎