# Data dictionary - Difference-in-Differences with Geocoded Microdata: When Distance Defines Treatment

Companion data for a hands-on R tutorial on the <strong>spatial (ring) difference-in-differences</strong> design, where the treatment is a point in space and distance to that point becomes the running variable that defines who is treated and who is control. The post reproduces and extends Linden &amp; Rockoff's (2008) study of how a registered sex offender's arrival affects nearby home prices, comparing a <strong>parametric ring estimator</strong> (a one-line <code>feols()</code> regression of first-differenced log prices on a treated-ring indicator) against the data-driven <strong>nonparametric estimator</strong> of Butts (2023), which uses <code>binsreg</code> to trace a whole treatment-effect curve over distance. At the canonical 0.1-mile cutoff the parametric ring DiD returns &minus;5.78&nbsp;%, but moving the inner ring from 0.05 to 0.15 mile swings the estimate from &minus;6.40&nbsp;% to &minus;4.21&nbsp;% (a 52&nbsp;% relative spread); the nonparametric estimator finds the effect concentrated within the first 300 feet (bin&nbsp;1 at &minus;20.6&nbsp;%) and crossing zero at <code>d &asymp; 0.094</code> mile.


Companion data for the post <https://carlos-mendez.org/post/r_did_ring/>. Each dataset ships as a labeled Stata `.dta` (v118) plus its source file. Generated by `build_data_dictionary.py`.

## Data sources

| Source | Provides | Reference / URL |
|---|---|---|
| Linden &amp; Rockoff (2008) | Original study and source data: North Carolina home transactions geocoded to registered-offender addresses | Linden, L., &amp; Rockoff, J. E. (2008). Estimates of the Impact of Crime Risk on Property Values from Megan&#x27;s Laws. American Economic Review, 98(3), 1103–1127. <a href="https://www.aeaweb.org/articles?id=10.1257/aer.98.3.1103" target="_blank" rel="noopener">https://www.aeaweb.org/articles?id=10.1257/aer.98.3.1103</a> |
| Butts (2023) | Replicated methodology (parametric &amp; nonparametric ring estimators) and the cleaned data archive used here | Butts, K. (2023). JUE Insight: Difference-in-Differences with Geocoded Microdata. Journal of Urban Economics, 133, 103493. <a href="https://doi.org/10.1016/j.jue.2022.103493" target="_blank" rel="noopener">https://doi.org/10.1016/j.jue.2022.103493</a> |
| Method references | Estimators and concepts | Cattaneo, Crump, Farrell &amp; Feng (2024), On Binscatter, American Economic Review 114(5), 1488–1514; the fixest and binsreg R packages. |

## Dataset links (GitHub)

| File | View on GitHub | Raw (load / download) |
|---|---|---|
| `raw_data.dta` | [view](https://github.com/cmg777/starter-academic-v501/blob/master/content/post/r_did_ring/data/raw_data.dta) | [raw](https://raw.githubusercontent.com/cmg777/starter-academic-v501/master/content/post/r_did_ring/data/raw_data.dta) |
| `data_prepared.dta` | [view](https://github.com/cmg777/starter-academic-v501/blob/master/content/post/r_did_ring/data/data_prepared.dta) | [raw](https://raw.githubusercontent.com/cmg777/starter-academic-v501/master/content/post/r_did_ring/data/data_prepared.dta) |

## Load in code

```python
import pandas as pd
BASE = "https://raw.githubusercontent.com/cmg777/starter-academic-v501/master/content/post/r_did_ring/data/"
df = pd.read_stata(BASE + "raw_data.dta")
```

## Datasets

| File | Grain | Rows x Cols | Purpose |
|---|---|---|---|
| `raw_data` | home sale (transaction) | 170,239 x 51 | Source data; the 9,092 sales within 1/3 mile of an offender form the analysis sample. |
| `data_prepared` | home sale (transaction) | 9,092 x 55 | Estimate the ring DiD (parametric & nonparametric) on the real Linden-Rockoff data. |

## Cross-file variable index

| Variable | raw_data | data_prepared |
|---|---|---|
| `AGE` | ● | ● |
| `AIRCOND` | ● | ● |
| `BATHS` | ● | ● |
| `BEDROOMS` | ● | ● |
| `BQM1` | ● | ● |
| `BQM2` | ● | ● |
| `CNTLBQM1_2` | ● | ● |
| `CNTLBQM1_3` | ● | ● |
| `CNTLBQM1_4` | ● | ● |
| `CNTLBQM1_5` | ● | ● |
| `CNTLBQM1_6` | ● | ● |
| `CNTLHEIGHT_2` | ● | ● |
| `CNTLHEIGHT_3` | ● | ● |
| `CNTLHEIGHT_4` | ● | ● |
| `CNTLHEIGHT_5` | ● | ● |
| `CNTLHEIGHT_6` | ● | ● |
| `CNTLWALL_10` | ● | ● |
| `CNTLWALL_2` | ● | ● |
| `CNTLWALL_3` | ● | ● |
| `CNTLWALL_4` | ● | ● |
| `CNTLWALL_5` | ● | ● |
| `CNTLWALL_6` | ● | ● |
| `CNTLWALL_7` | ● | ● |
| `CNTLWALL_8` | ● | ● |
| `CNTLWALL_9` | ● | ● |
| `HEATED` | ● | ● |
| `HEIGHT` | ● | ● |
| `NEW` | ● | ● |
| `WALL` | ● | ● |
| `amt_Price` | ● | ● |
| `building_grade` | ● | ● |
| `close_offender` | ● | ● |
| `close_post_move` | ● | ● |
| `correction_term_dec_2004` | ● | ● |
| `cpi_value` | ● | ● |
| `dist_post` |  | ● |
| `distance` | ● | ● |
| `geo_code` | ● | ● |
| `log_price` | ● | ● |
| `neighbor_year` | ● | ● |
| `neighborhood` | ● | ● |
| `offdays` |  | ● |
| `offender` | ● | ● |
| `offender_address_date` | ● | ● |
| `orig_distance` | ● | ● |
| `parcel` | ● | ● |
| `post` |  | ● |
| `post_move` | ● | ● |
| `sale_date` | ● | ● |
| `sale_month` | ● | ● |
| `sale_year` | ● | ● |
| `srn` | ● | ● |
| `srn_year` |  | ● |
| `streetname` | ● | ● |
| `year_built` | ● | ● |

### `raw_data`

| Variable | Label | Definition | Construction | Units | Source | Coverage |
|---|---|---|---|---|---|---|
| `sale_month` | Month of sale | Calendar month in which the home transaction closed. | From the transaction record. | 1-12 | Linden & Rockoff (2008) |  |
| `sale_year` | Year of sale | Calendar year in which the home transaction closed. | From the transaction record. | year | Linden & Rockoff (2008) |  |
| `cpi_value` | CPI value at sale | Consumer Price Index value used to deflate sale prices. | From the transaction record (price-deflation series). | index | Linden & Rockoff (2008) |  |
| `correction_term_dec_2004` | Price correction term (Dec 2004 base) | Inflation-correction factor expressing prices in December-2004 dollars. | Derived from the CPI series, base = December 2004. | factor | Linden & Rockoff (2008) |  |
| `geo_code` | Census geo code (state-county-tract-block group) | Census geography identifier: state, county, tract, block group. | Geocoded census block-group code. | code | Linden & Rockoff (2008) |  |
| `parcel` | Parcel ID number | Unique tax-parcel identifier for the property. | From the county property records. | string | Linden & Rockoff (2008) |  |
| `amt_Price` | Sale price (US$) | Recorded sale price of the home. | From the transaction record. | US$ | Linden & Rockoff (2008) |  |
| `sale_date` | Sale date | Date the home transaction closed. | From the transaction record. | date | Linden & Rockoff (2008) |  |
| `year_built` | Year built | Year the property was constructed. | From the county property records. | year | Linden & Rockoff (2008) |  |
| `HEATED` | Heated area (sq ft) | Heated floor area of the home. | From the county property records. | sq ft | Linden & Rockoff (2008) |  |
| `BATHS` | Number of bathrooms | Count of bathrooms in the home. | From the county property records. | count | Linden & Rockoff (2008) |  |
| `BEDROOMS` | Number of bedrooms | Count of bedrooms in the home. | From the county property records. | count | Linden & Rockoff (2008) |  |
| `neighborhood` | Neighborhood code | Assessor neighborhood identifier (the clustering unit for SEs). | From the county property records. | code | Linden & Rockoff (2008) |  |
| `distance` | Distance to offender | Distance from the home to the nearest offender's eventual address; zero if the home is in no offender's area. In data_prepared this is rescaled to miles (raw distance / 3). | Geocoded straight-line distance; the analysis sample rescales to miles via distance / 3. | miles (prepared) / raw units (raw_data) | Linden & Rockoff (2008) |  |
| `srn` | Offender ID number | Identifier of the registered offender whose catchment the home falls in. | Sex-offender registry record number. | string | Linden & Rockoff (2008) |  |
| `offender_address_date` | Date offender arrived | Date the offender's address was published / the offender moved in. | From the sex-offender registry. | date | Linden & Rockoff (2008) |  |
| `building_grade` | Building grade | Assessor construction-quality grade of the home. | From the county property records. | category | Linden & Rockoff (2008) |  |
| `offender` | In an offender catchment (1=yes) | 1 if the home is within 1/3 mile of some offender's eventual address (i.e. enters the analysis sample); else 0. | Flag derived from distance to nearest offender. | 0/1 | Linden & Rockoff (2008) |  |
| `streetname` | Street name | Street on which the property is located. | From the county property records. | string | Linden & Rockoff (2008) |  |
| `BQM1` | Building quality, part 1 | First component of the assessor building-quality grade (1-6). | From the county property records. | 1-6 | Linden & Rockoff (2008) |  |
| `BQM2` | Building quality, part 2 | Second component of the assessor building-quality grade (1-6). | From the county property records. | 1-6 | Linden & Rockoff (2008) |  |
| `AIRCOND` | Air conditioning (1=yes) | 1 if the home has air conditioning, else 0. | From the county property records. | 0/1 | Linden & Rockoff (2008) |  |
| `HEIGHT` | Building height / stories code | Coded number of stories / height class (1, 1.5, 2, 3, 8, 9). | From the county property records. | code | Linden & Rockoff (2008) |  |
| `WALL` | Exterior wall material | Exterior wall-material category (e.g. ALUM,VINYL; FACE BRICK; WOOD SHINGLE). | From the county property records. | category | Linden & Rockoff (2008) |  |
| `AGE` | Building age at sale (years) | Age of the home at the time of sale. | sale_year minus year_built. | years | Linden & Rockoff (2008) |  |
| `NEW` | New construction (1=yes) | 1 if the sale is of newly built property, else 0. | From the county property records. | 0/1 | Linden & Rockoff (2008) |  |
| `orig_distance` | Distance to offender (before 4-year window) | Distance to the offender's address before limiting the sample to the 4-year arrival window. | Geocoded distance, pre-windowing. | raw units | Linden & Rockoff (2008) |  |
| `close_offender` | Treated ring: within 0.1 mile (1=yes) | 1 if the home is in the inner treated ring (within 0.1 mile of the offender's address), else 0. | Indicator distance <= 0.1 mile. | 0/1 | Butts (2023) |  |
| `post_move` | Post-arrival sale (1=yes) | 1 if the sale closed after the offender's arrival, else 0 (pre-arrival). | Indicator that the sale date is after offender_address_date. | 0/1 | Butts (2023) |  |
| `close_post_move` | Treated x post interaction (ring-DiD term) | Interaction close_offender x post_move; its coefficient is the parametric ring-DiD ATT. | close_offender * post_move. | 0/1 | Butts (2023) |  |
| `neighbor_year` | Neighborhood x year group ID | Group identifier for neighborhood crossed with sale year. | group(neighborhood, sale_year). | group ID | Linden & Rockoff (2008) |  |
| `CNTLBQM1_2` | Building-quality dummy: BQM1 == 2 | 1 if building-quality part 1 equals 2, else 0 (hedonic control). | Indicator BQM1 == 2. | 0/1 | Linden & Rockoff (2008) |  |
| `CNTLBQM1_3` | Building-quality dummy: BQM1 == 3 | 1 if building-quality part 1 equals 3, else 0 (hedonic control). | Indicator BQM1 == 3. | 0/1 | Linden & Rockoff (2008) |  |
| `CNTLBQM1_4` | Building-quality dummy: BQM1 == 4 | 1 if building-quality part 1 equals 4, else 0 (hedonic control). | Indicator BQM1 == 4. | 0/1 | Linden & Rockoff (2008) |  |
| `CNTLBQM1_5` | Building-quality dummy: BQM1 == 5 | 1 if building-quality part 1 equals 5, else 0 (hedonic control). | Indicator BQM1 == 5. | 0/1 | Linden & Rockoff (2008) |  |
| `CNTLBQM1_6` | Building-quality dummy: BQM1 == 6 | 1 if building-quality part 1 equals 6, else 0 (hedonic control). | Indicator BQM1 == 6. | 0/1 | Linden & Rockoff (2008) |  |
| `CNTLWALL_2` | Wall dummy: ASB SHNG/SDG | 1 if exterior wall is asbestos shingle/siding, else 0 (hedonic control). | Indicator WALL == 'ASB SHNG/SDG'. | 0/1 | Linden & Rockoff (2008) |  |
| `CNTLWALL_3` | Wall dummy: CEDAR, RDWD | 1 if exterior wall is cedar/redwood, else 0 (hedonic control). | Indicator WALL == 'CEDAR,RDWD'. | 0/1 | Linden & Rockoff (2008) |  |
| `CNTLWALL_4` | Wall dummy: EXT PLYWOOD | 1 if exterior wall is exterior plywood, else 0 (hedonic control). | Indicator WALL == 'EXT PLYWOOD'. | 0/1 | Linden & Rockoff (2008) |  |
| `CNTLWALL_5` | Wall dummy: FACE BRICK | 1 if exterior wall is face brick, else 0 (hedonic control). | Indicator WALL == 'FACE BRICK'. | 0/1 | Linden & Rockoff (2008) |  |
| `CNTLWALL_6` | Wall dummy: MASONITE | 1 if exterior wall is masonite, else 0 (hedonic control). | Indicator WALL == 'MASONITE'. | 0/1 | Linden & Rockoff (2008) |  |
| `CNTLWALL_7` | Wall dummy: OTHER | 1 if exterior wall is other material, else 0 (hedonic control). | Indicator WALL == 'OTHER'. | 0/1 | Linden & Rockoff (2008) |  |
| `CNTLWALL_8` | Wall dummy: STUCCO HRDCT | 1 if exterior wall is stucco/hardcoat, else 0 (hedonic control). | Indicator WALL == 'STUCCO HRDCT'. | 0/1 | Linden & Rockoff (2008) |  |
| `CNTLWALL_9` | Wall dummy: WOOD ON SHTG | 1 if exterior wall is wood on sheathing, else 0 (hedonic control). | Indicator WALL == 'WOOD ON SHTG'. | 0/1 | Linden & Rockoff (2008) |  |
| `CNTLWALL_10` | Wall dummy: WOOD SHINGLE | 1 if exterior wall is wood shingle, else 0 (hedonic control). | Indicator WALL == 'WOOD SHINGLE'. | 0/1 | Linden & Rockoff (2008) |  |
| `CNTLHEIGHT_2` | Height dummy: HEIGHT == 1.5 | 1 if building height class is 1.5, else 0 (hedonic control). | Indicator HEIGHT == 1.5. | 0/1 | Linden & Rockoff (2008) |  |
| `CNTLHEIGHT_3` | Height dummy: HEIGHT == 2 | 1 if building height class is 2, else 0 (hedonic control). | Indicator HEIGHT == 2. | 0/1 | Linden & Rockoff (2008) |  |
| `CNTLHEIGHT_4` | Height dummy: HEIGHT == 3 | 1 if building height class is 3, else 0 (hedonic control). | Indicator HEIGHT == 3. | 0/1 | Linden & Rockoff (2008) |  |
| `CNTLHEIGHT_5` | Height dummy: HEIGHT == 8 | 1 if building height class is 8, else 0 (hedonic control). | Indicator HEIGHT == 8. | 0/1 | Linden & Rockoff (2008) |  |
| `CNTLHEIGHT_6` | Height dummy: HEIGHT == 9 | 1 if building height class is 9, else 0 (hedonic control). | Indicator HEIGHT == 9. | 0/1 | Linden & Rockoff (2008) |  |
| `log_price` | Log sale price | Natural log of the home sale price (the regression outcome). | log(amt_Price). | log US$ | Linden & Rockoff (2008) |  |

| Variable | N | Miss% | Distinct | Min | Mean | Median | Max | SD |
|---|---|---|---|---|---|---|---|---|
| `sale_month` | 170,239 | 0.0 | 12 | — | — | — | — | — |
| `sale_year` | 170,239 | 0.0 | 11 | 1994 | 1999.5 | 2000 | 2004 | 3.11 |
| `cpi_value` | 170,239 | 0.0 | 112 | 142.5 | 165.2 | 166.5 | 183.7 | 11.29 |
| `correction_term_dec_2004` | 170,239 | 0.0 | 112 | 1.05 | 1.17 | 1.15 | 1.35 | 0.081 |
| `geo_code` | 170,239 | 0.0 | 375 | — | — | — | — | — |
| `parcel` | 170,239 | 0.0 | 121,834 | — | — | — | — | — |
| `amt_Price` | 170,239 | 0.0 | 58,212 | 5,003.3 | 204,837 | 167,009 | 998,596 | 132,447 |
| `sale_date` | 170,239 | 0.0 | 2,938 | — | — | — | — | — |
| `year_built` | 170,239 | 0.0 | 105 | 1900 | 1984.2 | 1993 | 2004 | 19.53 |
| `HEATED` | 170,239 | 0.0 | 4,949 | 296.0 | 2,069.6 | 1,874.0 | 10,274 | 872.0 |
| `BATHS` | 170,239 | 0.0 | 6 | — | — | — | — | — |
| `BEDROOMS` | 170,239 | 0.0 | 9 | — | — | — | — | — |
| `neighborhood` | 169,588 | 0.4 | 905 | — | — | — | — | — |
| `distance` | 170,239 | 0.0 | 7,976 | 0 | 0.034 | 0 | 1.000 | 0.154 |
| `srn` | 38,840 | 77.2 | 333 | — | — | — | — | — |
| `offender_address_date` | 38,840 | 77.2 | 287 | — | — | — | — | — |
| `building_grade` | 170,218 | 0.0 | 36 | — | — | — | — | — |
| `offender` | 170,239 | 0.0 | 2 | 0 | 0.053 | 0 | 1.00 | 0.225 |
| `streetname` | 170,239 | 0.0 | 10,682 | — | — | — | — | — |
| `BQM1` | 170,218 | 0.0 | 6 | — | — | — | — | — |
| `BQM2` | 170,218 | 0.0 | 6 | — | — | — | — | — |
| `AIRCOND` | 170,239 | 0.0 | 2 | 0 | 0.933 | 1.00 | 1.00 | 0.250 |
| `HEIGHT` | 170,229 | 0.0 | 6 | 1.00 | 1.81 | 2.00 | 9.00 | 1.39 |
| `WALL` | 170,239 | 0.0 | 10 | — | — | — | — | — |
| `AGE` | 170,239 | 0.0 | 31 | 0 | 11.47 | 7.00 | 30.00 | 11.88 |
| `NEW` | 170,239 | 0.0 | 2 | 0 | 0.249 | 0 | 1.00 | 0.432 |
| `orig_distance` | 170,239 | 0.0 | 27,490 | 0 | 0.148 | 0 | 1.000 | 0.296 |
| `close_offender` | 170,239 | 0.0 | 2 | 0 | 0.008 | 0 | 1.00 | 0.089 |
| `post_move` | 170,239 | 0.0 | 2 | 0 | 0.027 | 0 | 1.00 | 0.162 |
| `close_post_move` | 170,239 | 0.0 | 2 | 0 | 0.004 | 0 | 1.00 | 0.065 |
| `neighbor_year` | 169,588 | 0.4 | 7,720 | — | — | — | — | — |
| `CNTLBQM1_2` | 170,218 | 0.0 | 2 | 0 | 0.748 | 1.00 | 1.00 | 0.434 |
| `CNTLBQM1_3` | 170,218 | 0.0 | 2 | 0 | 0.181 | 0 | 1.00 | 0.385 |
| `CNTLBQM1_4` | 170,218 | 0.0 | 2 | 0 | 0.050 | 0 | 1.00 | 0.218 |
| `CNTLBQM1_5` | 170,218 | 0.0 | 2 | 0 | 0.011 | 0 | 1.00 | 0.104 |
| `CNTLBQM1_6` | 170,218 | 0.0 | 2 | 0 | 0.004 | 0 | 1.00 | 0.060 |
| `CNTLWALL_2` | 170,239 | 0.0 | 2 | 0 | 0.009 | 0 | 1.00 | 0.095 |
| `CNTLWALL_3` | 170,239 | 0.0 | 2 | 0 | 0.011 | 0 | 1.00 | 0.105 |
| `CNTLWALL_4` | 170,239 | 0.0 | 2 | 0 | 0.008 | 0 | 1.00 | 0.089 |
| `CNTLWALL_5` | 170,239 | 0.0 | 2 | 0 | 0.265 | 0 | 1.00 | 0.441 |
| `CNTLWALL_6` | 170,239 | 0.0 | 2 | 0 | 0.213 | 0 | 1.00 | 0.409 |
| `CNTLWALL_7` | 170,239 | 0.0 | 2 | 0 | 0.009 | 0 | 1.00 | 0.092 |
| `CNTLWALL_8` | 170,239 | 0.0 | 2 | 0 | 0.016 | 0 | 1.00 | 0.124 |
| `CNTLWALL_9` | 170,239 | 0.0 | 2 | 0 | 0.077 | 0 | 1.00 | 0.267 |
| `CNTLWALL_10` | 170,239 | 0.0 | 2 | 0 | 0.004 | 0 | 1.00 | 0.064 |
| `CNTLHEIGHT_2` | 170,229 | 0.0 | 2 | 0 | 0.067 | 0 | 1.00 | 0.251 |
| `CNTLHEIGHT_3` | 170,229 | 0.0 | 2 | 0 | 0.485 | 0 | 1.00 | 0.500 |
| `CNTLHEIGHT_4` | 170,229 | 0.0 | 2 | 0 | 0.016 | 0 | 1.00 | 0.126 |
| `CNTLHEIGHT_5` | 170,229 | 0.0 | 2 | 0 | 0.011 | 0 | 1.00 | 0.103 |
| `CNTLHEIGHT_6` | 170,229 | 0.0 | 2 | 0 | 0.023 | 0 | 1.00 | 0.151 |
| `log_price` | 170,239 | 0.0 | 56,438 | 8.52 | 12.06 | 12.03 | 13.81 | 0.586 |

### `data_prepared`

| Variable | Label | Definition | Construction | Units | Source | Coverage |
|---|---|---|---|---|---|---|
| `sale_month` | Month of sale | Calendar month in which the home transaction closed. | From the transaction record. | 1-12 | Linden & Rockoff (2008) |  |
| `sale_year` | Year of sale | Calendar year in which the home transaction closed. | From the transaction record. | year | Linden & Rockoff (2008) |  |
| `cpi_value` | CPI value at sale | Consumer Price Index value used to deflate sale prices. | From the transaction record (price-deflation series). | index | Linden & Rockoff (2008) |  |
| `correction_term_dec_2004` | Price correction term (Dec 2004 base) | Inflation-correction factor expressing prices in December-2004 dollars. | Derived from the CPI series, base = December 2004. | factor | Linden & Rockoff (2008) |  |
| `geo_code` | Census geo code (state-county-tract-block group) | Census geography identifier: state, county, tract, block group. | Geocoded census block-group code. | code | Linden & Rockoff (2008) |  |
| `parcel` | Parcel ID number | Unique tax-parcel identifier for the property. | From the county property records. | string | Linden & Rockoff (2008) |  |
| `amt_Price` | Sale price (US$) | Recorded sale price of the home. | From the transaction record. | US$ | Linden & Rockoff (2008) |  |
| `sale_date` | Sale date | Date the home transaction closed. | From the transaction record. | date | Linden & Rockoff (2008) |  |
| `year_built` | Year built | Year the property was constructed. | From the county property records. | year | Linden & Rockoff (2008) |  |
| `HEATED` | Heated area (sq ft) | Heated floor area of the home. | From the county property records. | sq ft | Linden & Rockoff (2008) |  |
| `BATHS` | Number of bathrooms | Count of bathrooms in the home. | From the county property records. | count | Linden & Rockoff (2008) |  |
| `BEDROOMS` | Number of bedrooms | Count of bedrooms in the home. | From the county property records. | count | Linden & Rockoff (2008) |  |
| `neighborhood` | Neighborhood code | Assessor neighborhood identifier (the clustering unit for SEs). | From the county property records. | code | Linden & Rockoff (2008) |  |
| `distance` | Distance to offender | Distance from the home to the nearest offender's eventual address; zero if the home is in no offender's area. In data_prepared this is rescaled to miles (raw distance / 3). | Geocoded straight-line distance; the analysis sample rescales to miles via distance / 3. | miles (prepared) / raw units (raw_data) | Linden & Rockoff (2008) |  |
| `srn` | Offender ID number | Identifier of the registered offender whose catchment the home falls in. | Sex-offender registry record number. | string | Linden & Rockoff (2008) |  |
| `offender_address_date` | Date offender arrived | Date the offender's address was published / the offender moved in. | From the sex-offender registry. | date | Linden & Rockoff (2008) |  |
| `building_grade` | Building grade | Assessor construction-quality grade of the home. | From the county property records. | category | Linden & Rockoff (2008) |  |
| `offender` | In an offender catchment (1=yes) | 1 if the home is within 1/3 mile of some offender's eventual address (i.e. enters the analysis sample); else 0. | Flag derived from distance to nearest offender. | 0/1 | Linden & Rockoff (2008) |  |
| `streetname` | Street name | Street on which the property is located. | From the county property records. | string | Linden & Rockoff (2008) |  |
| `BQM1` | Building quality, part 1 | First component of the assessor building-quality grade (1-6). | From the county property records. | 1-6 | Linden & Rockoff (2008) |  |
| `BQM2` | Building quality, part 2 | Second component of the assessor building-quality grade (1-6). | From the county property records. | 1-6 | Linden & Rockoff (2008) |  |
| `AIRCOND` | Air conditioning (1=yes) | 1 if the home has air conditioning, else 0. | From the county property records. | 0/1 | Linden & Rockoff (2008) |  |
| `HEIGHT` | Building height / stories code | Coded number of stories / height class (1, 1.5, 2, 3, 8, 9). | From the county property records. | code | Linden & Rockoff (2008) |  |
| `WALL` | Exterior wall material | Exterior wall-material category (e.g. ALUM,VINYL; FACE BRICK; WOOD SHINGLE). | From the county property records. | category | Linden & Rockoff (2008) |  |
| `AGE` | Building age at sale (years) | Age of the home at the time of sale. | sale_year minus year_built. | years | Linden & Rockoff (2008) |  |
| `NEW` | New construction (1=yes) | 1 if the sale is of newly built property, else 0. | From the county property records. | 0/1 | Linden & Rockoff (2008) |  |
| `orig_distance` | Distance to offender (before 4-year window) | Distance to the offender's address before limiting the sample to the 4-year arrival window. | Geocoded distance, pre-windowing. | raw units | Linden & Rockoff (2008) |  |
| `close_offender` | Treated ring: within 0.1 mile (1=yes) | 1 if the home is in the inner treated ring (within 0.1 mile of the offender's address), else 0. | Indicator distance <= 0.1 mile. | 0/1 | Butts (2023) |  |
| `post_move` | Post-arrival sale (1=yes) | 1 if the sale closed after the offender's arrival, else 0 (pre-arrival). | Indicator that the sale date is after offender_address_date. | 0/1 | Butts (2023) |  |
| `close_post_move` | Treated x post interaction (ring-DiD term) | Interaction close_offender x post_move; its coefficient is the parametric ring-DiD ATT. | close_offender * post_move. | 0/1 | Butts (2023) |  |
| `neighbor_year` | Neighborhood x year group ID | Group identifier for neighborhood crossed with sale year. | group(neighborhood, sale_year). | group ID | Linden & Rockoff (2008) |  |
| `CNTLBQM1_2` | Building-quality dummy: BQM1 == 2 | 1 if building-quality part 1 equals 2, else 0 (hedonic control). | Indicator BQM1 == 2. | 0/1 | Linden & Rockoff (2008) |  |
| `CNTLBQM1_3` | Building-quality dummy: BQM1 == 3 | 1 if building-quality part 1 equals 3, else 0 (hedonic control). | Indicator BQM1 == 3. | 0/1 | Linden & Rockoff (2008) |  |
| `CNTLBQM1_4` | Building-quality dummy: BQM1 == 4 | 1 if building-quality part 1 equals 4, else 0 (hedonic control). | Indicator BQM1 == 4. | 0/1 | Linden & Rockoff (2008) |  |
| `CNTLBQM1_5` | Building-quality dummy: BQM1 == 5 | 1 if building-quality part 1 equals 5, else 0 (hedonic control). | Indicator BQM1 == 5. | 0/1 | Linden & Rockoff (2008) |  |
| `CNTLBQM1_6` | Building-quality dummy: BQM1 == 6 | 1 if building-quality part 1 equals 6, else 0 (hedonic control). | Indicator BQM1 == 6. | 0/1 | Linden & Rockoff (2008) |  |
| `CNTLWALL_2` | Wall dummy: ASB SHNG/SDG | 1 if exterior wall is asbestos shingle/siding, else 0 (hedonic control). | Indicator WALL == 'ASB SHNG/SDG'. | 0/1 | Linden & Rockoff (2008) |  |
| `CNTLWALL_3` | Wall dummy: CEDAR, RDWD | 1 if exterior wall is cedar/redwood, else 0 (hedonic control). | Indicator WALL == 'CEDAR,RDWD'. | 0/1 | Linden & Rockoff (2008) |  |
| `CNTLWALL_4` | Wall dummy: EXT PLYWOOD | 1 if exterior wall is exterior plywood, else 0 (hedonic control). | Indicator WALL == 'EXT PLYWOOD'. | 0/1 | Linden & Rockoff (2008) |  |
| `CNTLWALL_5` | Wall dummy: FACE BRICK | 1 if exterior wall is face brick, else 0 (hedonic control). | Indicator WALL == 'FACE BRICK'. | 0/1 | Linden & Rockoff (2008) |  |
| `CNTLWALL_6` | Wall dummy: MASONITE | 1 if exterior wall is masonite, else 0 (hedonic control). | Indicator WALL == 'MASONITE'. | 0/1 | Linden & Rockoff (2008) |  |
| `CNTLWALL_7` | Wall dummy: OTHER | 1 if exterior wall is other material, else 0 (hedonic control). | Indicator WALL == 'OTHER'. | 0/1 | Linden & Rockoff (2008) |  |
| `CNTLWALL_8` | Wall dummy: STUCCO HRDCT | 1 if exterior wall is stucco/hardcoat, else 0 (hedonic control). | Indicator WALL == 'STUCCO HRDCT'. | 0/1 | Linden & Rockoff (2008) |  |
| `CNTLWALL_9` | Wall dummy: WOOD ON SHTG | 1 if exterior wall is wood on sheathing, else 0 (hedonic control). | Indicator WALL == 'WOOD ON SHTG'. | 0/1 | Linden & Rockoff (2008) |  |
| `CNTLWALL_10` | Wall dummy: WOOD SHINGLE | 1 if exterior wall is wood shingle, else 0 (hedonic control). | Indicator WALL == 'WOOD SHINGLE'. | 0/1 | Linden & Rockoff (2008) |  |
| `CNTLHEIGHT_2` | Height dummy: HEIGHT == 1.5 | 1 if building height class is 1.5, else 0 (hedonic control). | Indicator HEIGHT == 1.5. | 0/1 | Linden & Rockoff (2008) |  |
| `CNTLHEIGHT_3` | Height dummy: HEIGHT == 2 | 1 if building height class is 2, else 0 (hedonic control). | Indicator HEIGHT == 2. | 0/1 | Linden & Rockoff (2008) |  |
| `CNTLHEIGHT_4` | Height dummy: HEIGHT == 3 | 1 if building height class is 3, else 0 (hedonic control). | Indicator HEIGHT == 3. | 0/1 | Linden & Rockoff (2008) |  |
| `CNTLHEIGHT_5` | Height dummy: HEIGHT == 8 | 1 if building height class is 8, else 0 (hedonic control). | Indicator HEIGHT == 8. | 0/1 | Linden & Rockoff (2008) |  |
| `CNTLHEIGHT_6` | Height dummy: HEIGHT == 9 | 1 if building height class is 9, else 0 (hedonic control). | Indicator HEIGHT == 9. | 0/1 | Linden & Rockoff (2008) |  |
| `log_price` | Log sale price | Natural log of the home sale price (the regression outcome). | log(amt_Price). | log US$ | Linden & Rockoff (2008) |  |
| `dist_post` | Distance x 10 x treated-post (derived) | Distance interaction term used in the analysis sample. | distance * 10 * close_post_move (distance in miles). | miles x 10 | This study (analysis sample) |  |
| `post` | Pre/Post label | String label of the period: 'Pre' (before arrival) or 'Post' (after arrival). | ifelse(post_move == 1, 'Post', 'Pre'). | Pre/Post | This study (analysis sample) |  |
| `srn_year` | Offender x sale-year fixed-effect stratum | Neighborhood (offender) crossed with sale year; the fixed-effect cell in the parametric model. | paste(srn, sale_year, sep = '-'). | string | This study (analysis sample) |  |
| `offdays` | Days from sale to offender arrival | Days between the sale date and the offender's arrival date (negative = before arrival). | as.numeric(sale_date - offender_address_date). | days | This study (analysis sample) |  |

| Variable | N | Miss% | Distinct | Min | Mean | Median | Max | SD |
|---|---|---|---|---|---|---|---|---|
| `sale_month` | 9,092 | 0.0 | 12 | — | — | — | — | — |
| `sale_year` | 9,092 | 0.0 | 11 | 1994 | 2001.0 | 2001 | 2004 | 2.25 |
| `cpi_value` | 9,092 | 0.0 | 106 | 145.0 | 170.3 | 171.6 | 183.7 | 8.12 |
| `correction_term_dec_2004` | 9,092 | 0.0 | 106 | 1.05 | 1.13 | 1.12 | 1.32 | 0.055 |
| `geo_code` | 9,092 | 0.0 | 210 | — | — | — | — | — |
| `parcel` | 9,092 | 0.0 | 7,979 | — | — | — | — | — |
| `amt_Price` | 9,092 | 0.0 | 7,115 | 5,408.5 | 143,814 | 133,250 | 992,506 | 84,801 |
| `sale_date` | 9,092 | 0.0 | 2,078 | — | — | — | — | — |
| `year_built` | 9,092 | 0.0 | 103 | 1900 | 1975.9 | 1983 | 2004 | 24.20 |
| `HEATED` | 9,092 | 0.0 | 1,959 | 540.0 | 1,603.8 | 1,492.0 | 5,974.0 | 598.2 |
| `BATHS` | 9,092 | 0.0 | 6 | — | — | — | — | — |
| `BEDROOMS` | 9,092 | 0.0 | 6 | — | — | — | — | — |
| `neighborhood` | 9,092 | 0.0 | 253 | — | — | — | — | — |
| `distance` | 9,092 | 0.0 | 7,975 | 0.009 | 0.212 | 0.224 | 0.333 | 0.082 |
| `srn` | 9,092 | 0.0 | 174 | — | — | — | — | — |
| `offender_address_date` | 9,092 | 0.0 | 166 | — | — | — | — | — |
| `building_grade` | 9,086 | 0.1 | 30 | — | — | — | — | — |
| `offender` | 9,092 | 0.0 | 1 | 1.00 | 1.00 | 1.00 | 1.00 | 0 |
| `streetname` | 9,092 | 0.0 | 1,628 | — | — | — | — | — |
| `BQM1` | 9,086 | 0.1 | 6 | — | — | — | — | — |
| `BQM2` | 9,086 | 0.1 | 6 | — | — | — | — | — |
| `AIRCOND` | 9,092 | 0.0 | 2 | 0 | 0.832 | 1.00 | 1.00 | 0.374 |
| `HEIGHT` | 9,092 | 0.0 | 6 | 1.00 | 1.72 | 1.00 | 9.00 | 1.64 |
| `WALL` | 9,092 | 0.0 | 10 | — | — | — | — | — |
| `AGE` | 9,092 | 0.0 | 31 | 0 | 16.86 | 18.00 | 30.00 | 12.79 |
| `NEW` | 9,092 | 0.0 | 2 | 0 | 0.180 | 0 | 1.00 | 0.385 |
| `orig_distance` | 9,092 | 0.0 | 7,975 | 0.028 | 0.635 | 0.671 | 1.000 | 0.245 |
| `close_offender` | 9,092 | 0.0 | 2 | 0 | 0.148 | 0 | 1.00 | 0.355 |
| `post_move` | 9,092 | 0.0 | 2 | 0 | 0.505 | 1.00 | 1.00 | 0.500 |
| `close_post_move` | 9,092 | 0.0 | 2 | 0 | 0.080 | 0 | 1.00 | 0.271 |
| `neighbor_year` | 9,092 | 0.0 | 975 | — | — | — | — | — |
| `CNTLBQM1_2` | 9,086 | 0.1 | 2 | 0 | 0.896 | 1.00 | 1.00 | 0.305 |
| `CNTLBQM1_3` | 9,086 | 0.1 | 2 | 0 | 0.066 | 0 | 1.00 | 0.248 |
| `CNTLBQM1_4` | 9,086 | 0.1 | 2 | 0 | 0.012 | 0 | 1.00 | 0.110 |
| `CNTLBQM1_5` | 9,086 | 0.1 | 2 | 0 | 0.003 | 0 | 1.00 | 0.052 |
| `CNTLBQM1_6` | 9,086 | 0.1 | 2 | 0 | 4.40e-04 | 0 | 1.00 | 0.021 |
| `CNTLWALL_2` | 9,092 | 0.0 | 2 | 0 | 0.019 | 0 | 1.00 | 0.136 |
| `CNTLWALL_3` | 9,092 | 0.0 | 2 | 0 | 0.002 | 0 | 1.00 | 0.048 |
| `CNTLWALL_4` | 9,092 | 0.0 | 2 | 0 | 0.015 | 0 | 1.00 | 0.123 |
| `CNTLWALL_5` | 9,092 | 0.0 | 2 | 0 | 0.277 | 0 | 1.00 | 0.448 |
| `CNTLWALL_6` | 9,092 | 0.0 | 2 | 0 | 0.165 | 0 | 1.00 | 0.371 |
| `CNTLWALL_7` | 9,092 | 0.0 | 2 | 0 | 0.008 | 0 | 1.00 | 0.087 |
| `CNTLWALL_8` | 9,092 | 0.0 | 2 | 0 | 0.005 | 0 | 1.00 | 0.071 |
| `CNTLWALL_9` | 9,092 | 0.0 | 2 | 0 | 0.118 | 0 | 1.00 | 0.323 |
| `CNTLWALL_10` | 9,092 | 0.0 | 2 | 0 | 0.007 | 0 | 1.00 | 0.086 |
| `CNTLHEIGHT_2` | 9,092 | 0.0 | 2 | 0 | 0.054 | 0 | 1.00 | 0.226 |
| `CNTLHEIGHT_3` | 9,092 | 0.0 | 2 | 0 | 0.313 | 0 | 1.00 | 0.464 |
| `CNTLHEIGHT_4` | 9,092 | 0.0 | 2 | 0 | 0.006 | 0 | 1.00 | 0.076 |
| `CNTLHEIGHT_5` | 9,092 | 0.0 | 2 | 0 | 0.015 | 0 | 1.00 | 0.120 |
| `CNTLHEIGHT_6` | 9,092 | 0.0 | 2 | 0 | 0.033 | 0 | 1.00 | 0.179 |
| `log_price` | 9,092 | 0.0 | 7,051 | 8.60 | 11.73 | 11.80 | 13.81 | 0.563 |
| `dist_post` | 9,092 | 0.0 | 666 | 0 | 0.059 | 0 | 1.11 | 0.211 |
| `post` | 9,092 | 0.0 | 2 | — | — | — | — | — |
| `srn_year` | 9,092 | 0.0 | 717 | — | — | — | — | — |
| `offdays` | 9,092 | 0.0 | 1,453 | -730.0 | -6.66 | 6.00 | 730.0 | 402.0 |

## Known limitations & caveats

- <strong>Replication data.</strong> All values are the Linden &amp; Rockoff (2008) home-sale records as cleaned and distributed in Butts's (2023) replication archive; this is real empirical data, not a simulation.
- <strong>Ring choice is part of the estimand.</strong> The parametric headline depends on the inner-ring cutoff: moving it from 0.05 to 0.15 mile shifts the ATT from −6.40 % to −4.21 % (a 52 % relative spread driven by the researcher's choice, not by sampling noise).
- <strong>Local parallel trends + no anticipation.</strong> Identification rests on inner- and outer-ring prices sharing the same counterfactual trend, and on buyers not pricing in the offender's arrival before it becomes public; neither is formally testable in this cross-section.
- <strong>distance == 0 means 'not in any offender area'.</strong> In the raw file, <code>distance</code> is zero for sales outside every offender's catchment; the analysis sample keeps only <code>offender == 1</code> rows (within 1/3 mile), where distance is strictly positive.
- <strong>Fixed-effect singletons are dropped at estimation.</strong> The parametric models discard srn_year strata with a single observation (≈63–73 obs), so reported regression N (≈7,534–9,029) is below the 9,092-row analysis sample.

---

*Generated by `build_data_dictionary.py`. Stata format: .dta v118.*
