Property Price and Sales (US)

PRPSLS962· 581K records · 11 tables · v1.0.0 · Updated 2026-08-11
Real Estate Development Real Estate Development Dataset API
CSV JSON SQLpropertyresidentialprice-indextransactionsrentsmortgage-ratesunited-statestime-seriesmarket-cycles

Overview

A decade of residential property in ten American metros at transaction grain. The metros are real; everything below them is generated: 321 districts in each metro's own naming idiom, 60 builders, 1,536 projects, and every price, rent, rate and volume. The decade is the American one, stated generically: steady years to 2019, the 2020 spring that collapses transaction volume while the urban exodus begins, a cheap-money boom through 2021 into 2022 with the sunbelt hottest, then a mortgage-rate lockdown into 2024 that collapses volume while prices plateau, and a thaw into 2026. An invented national mortgage-rate series ships as its own table and is the stated volume mechanism: high-rate months carry materially less volume, the cash share of financing rises with the rate, and the build asserts both. The exodus is measurable: suburban and fringe districts outgrow the core from 2020 and keep part of the gain, and the suburban share of volume rises in 2021 in every metro. Transactions carry project, district, property type, bedrooms, area with its unit, price in dollars, price per square foot, buyer profile, financing and sale type. The metro price index is the exact median price per square foot of that month's transactions, the annual summary is the exact transaction aggregate, and the build re-verifies both; district indices and rents with gross yields sit on the same geography. Built for price-index analytics, market-cycle modelling, affordability studies, ETL pipelines and BI logic. The licence and disclosure sections state the provenance of the data.

Row Counts by Table

Counted from the files that ship, not estimated.

TableRows
pru_metros10
pru_districts321
pru_developers60
pru_projects1,536
pru_transactions415,989
pru_price_index1,260
pru_district_index40,446
pru_rents121,146
pru_supply_pipeline330
pru_mortgage_rates126
pru_metro_annual110

Table Relationships

One parent record and seven child tables, each joined back on the same key.

70%
Loading diagram

Schema

Every table ships with typed columns, referential integrity, and documentation.

pru_metros· Rows: 10
ColumnTypeDescription
metro_codevarchar(8)Metro key. Primary key. The ten metros are the only real geography in the dataset.
metro_namevarchar(16)The metro in words.
state_codevarchar(8)Two-letter state of the metro core.
market_tiervarchar(24)coastal_prime, sunbelt_growth, heartland_value or mountain_west, the axis price levels and yields follow.
customary_area_unitvarchar(16)SQFT everywhere: the unit the American trade press quotes. The documented unit-mixing defect states a small share of areas in SQM.
metro_descriptionvarchar(144)What is generated below this metro.
pru_districts· Rows: 321
ColumnTypeDescription
district_idvarchar(16)District key. Primary key. Every district is a generated name in the metro idiom; one is renamed mid-series into a second id.
metro_codevarchar(8)The metro the district sits in.
district_namevarchar(24)Generated district name. Collisions with real neighbourhood names of the ten metros are a build failure.
zone_typevarchar(16)core, inner, suburban or fringe. The urban exodus is measured across this axis.
land_area_km2numeric(6,2)Generated land area in square kilometres.
price_factornumeric(5,2)Price multiple of the district against the metro base level.
pru_developers· Rows: 60
ColumnTypeDescription
developer_idvarchar(8)Builder key. Primary key.
developer_namevarchar(40)Generated builder name. Collisions with real homebuilders and brokerages are a build failure.
home_metro_codevarchar(8)The metro the builder is based in.
founded_yearintegerYear the builder was founded.
ownership_typevarchar(16)listed, private or family_owned.
pru_projects· Rows: 1,536
ColumnTypeDescription
project_idvarchar(8)Project key. Primary key.
district_idvarchar(16)The district the project sits in.
developer_idvarchar(8)The builder of the project.
project_namevarchar(32)Generated project name from the district name and a generic suffix.
project_typevarchar(32)condominium, apartment, mixed_use, townhome_community or single_family_community.
total_unitsintegerUnits in the project or community.
completion_yearintegerYear the project completes; sales before it are presales.

+2 more columns in pru_projects. The full schema ships with the download.

pru_transactions· Rows: 415,989
ColumnTypeDescription
transaction_idvarchar(16)Transaction key. Primary key. A few pairs are exact double-posts, on purpose.
project_idvarchar(8)The project the unit belongs to.
district_idvarchar(16)The district of the project, denormalised.
metro_codevarchar(8)The metro, denormalised.
year_monthvarchar(16)Month of the transaction, 2016-01 to 2026-06. Import as text: spreadsheets convert values like 2021-05 to dates.
property_typevarchar(24)single_family, condo or townhome.
bedroomsintegerBedroom count of the unit.

+8 more columns in pru_transactions. The full schema ships with the download.

pru_price_index· Rows: 1,260
ColumnTypeDescription
index_idvarchar(8)Index row key. Primary key.
metro_codevarchar(8)The metro the index measures.
year_monthvarchar(16)Month of the index. Import as text.
median_psf_usdnumeric(8,2)The exact median price per square foot of the month transactions, in dollars. Re-verified by the build.
transaction_countintegerTransactions behind the median that month.
yoy_change_pctnumeric(5,1)Change against the same month one year earlier, in percent. Empty in the first year.
pru_district_index· Rows: 40,446
ColumnTypeDescription
district_index_idvarchar(16)District index key. Primary key.
district_idvarchar(16)The district the index measures.
year_monthvarchar(16)Month of the index. Import as text.
index_psf_usdnumeric(8,2)Modelled price per square foot for the district, in dollars. Suburban and fringe districts visibly outgrow the core from 2020.
pru_rents· Rows: 121,146
ColumnTypeDescription
rent_idvarchar(16)Rent row key. Primary key.
district_idvarchar(16)The district the rent measures.
year_monthvarchar(16)Month of the rent. One metro is deliberately missing two months. Import as text.
bedroom_typevarchar(16)1BR, 2BR or 3BR.
median_monthly_rent_usdintegerMedian monthly rent in dollars.
gross_yield_pctnumeric(5,2)Gross rental yield in percent, inverse to the price level.
pru_supply_pipeline· Rows: 330
ColumnTypeDescription
supply_idvarchar(8)Supply row key. Primary key.
metro_codevarchar(8)The metro.
yearintegerCompletion year.
segmentvarchar(24)single_family, multifamily or townhome.
units_completingintegerUnits completing that year in the segment.
pru_mortgage_rates· Rows: 126
ColumnTypeDescription
rate_idvarchar(8)Rate row key. Primary key.
year_monthvarchar(16)Month of the rate. Import as text.
rate_30yr_pctnumeric(5,2)The invented national thirty-year mortgage rate in percent. No published rate is reproduced.
rate_15yr_pctnumeric(5,2)The invented national fifteen-year mortgage rate in percent.
pru_metro_annual· Rows: 110
ColumnTypeDescription
annual_idvarchar(8)Annual row key. Primary key.
metro_codevarchar(8)The metro.
yearintegerCalendar year.
transaction_countintegerThe exact transaction count for the year. Re-verified by the build.
median_psf_usdnumeric(8,2)The exact median price per square foot for the year, in dollars.

Sample Data

A snapshot of real rows from the dataset (values are fully synthetic).

transaction_idproject_idmetro_codeyear_monthproperty_typebedroomsarea_valuearea_unitprice_usdprice_psf_usdfinancing_type
TX000001PJ0101NYC2016-01townhome31781SQFT19118001073.47mortgage
TX000002PJ0126NYC2016-01single_family21164SQFT1064500914.48mortgage
TX000003PJ0153NYC2016-01single_family42630SQFT1684200640.38mortgage

Version History

v1.0.02026-08-11First release. Ten metros on the American decade, 415,989 transactions, exact monthly price indices, district indices, rents with yields, supply pipeline and an invented mortgage-rate series, 2016-01 to 2026-06.

Related Datasets