A free resource by NextGen Coastal — monthly OC rental market intelligence

How OCRentalData builds its rental market data

Every number on this site traces back to a named public source, a refresh cadence, and a data-quality check. This page documents all of them. Published under CC BY 4.0 — cite us, re-use us, audit us.

The warehouse, in numbers

2,693,424Observations
22,691Geographies
92Metric codes
16Active sources

The warehouse covers 51 states + DC, 3,143 counties, and 19,494 incorporated places. Rent index history (Zillow ZORI) runs from January 2015 through March 2026. Data is republished monthly after the monthly refresh cron fires on day 22.

Sources

Every fact row in the warehouse has a source_id, source_ref (URL or batch reference), and pulled_at timestamp. No row is allowed to land without provenance. The active sources, in order of how much of the warehouse they contribute:

SourceOrganizationCadenceLicenseFact rows
Census Building Permits Survey
https://www.census.gov/construction/bps/
Monthly building permits by place + county.
U.S. Census Bureau monthly public domain 1,476,360
Census ACS 5-Year
https://www.census.gov/programs-surveys/acs/
Rolling 5-year estimates, all geographies. Use for small cities.
U.S. Census Bureau annual public domain 1,039,565
Zillow Observed Rent Index (ZORI)
https://www.zillow.com/research/data/
Smoothed, seasonally adjusted city-level rent index. Primary rent source.
Zillow Group monthly CC0 / public 172,123
FRED (Federal Reserve Economic Data)
https://fred.stlouisfed.org/
Macro series: 30yr mortgage, unemployment, CPI, fed funds, housing starts.
Federal Reserve Bank of St. Louis monthly public domain 3,257
NGP Ticker History (legacy)
Backfilled from ckerstner_NGP-Blog.ticker_stats_history. observation_type=extracted_report.
NextGen Properties internal monthly internal 1,194
HUD Fair Market Rents
https://www.huduser.gov/portal/datasets/fmr.html
Annual FY FMRs by bedroom, county/HUD area + ZIP. Authoritative for bedroom rent baseline.
U.S. Dept. of Housing & Urban Development annual public domain 725
BLS Quarterly Census of Employment and Wages
https://www.bls.gov/cew/
U.S. Bureau of Labor Statistics quarterly Public domain 200
Apartment List Rent Estimates
https://www.apartmentlist.com/research/category/data-rent-estimates
Secondary rent series. Some city DTL stats published in monthly reports.
Apartment List, Inc. monthly CC BY 4.0 0
CBRE Cap Rate Survey
https://www.cbre.com/insights/reports/cap-rates
H1/H2 metro Class A/B/C cap rate ranges. PDF, parsed.
CBRE Group semi_annual with attribution 0
Census ACS 1-Year
https://www.census.gov/programs-surveys/acs/
Annual estimates for places with population 65k+.
U.S. Census Bureau annual public domain 0
Census Housing Vacancy Survey
https://www.census.gov/housing/hvs/index.html
Quarterly rental vacancy at metro/state/national. No city-level.
U.S. Census Bureau quarterly public domain 0
JLL Multifamily Research
https://www.jll.com/en-us/insights
Submarket cap rate / DTL when published.
JLL quarterly with attribution 0
Manual research (cited published reports)
Last-resort: each row carries citation_url + publisher + date.
Various adhoc per source citation 0
Marcus & Millichap Research Reports
https://www.marcusmillichap.com/research
OC multifamily insight reports.
Marcus & Millichap semi_annual with attribution 0
National Multifamily Housing Council
https://www.nmhc.org/research-insight/
Industry surveys, occupancy / pricing pulse.
NMHC monthly with attribution 0
Zumper National Rent Index
https://www.zumper.com/blog/category/rental-price-data/
Median asking 1BR/2BR rent; coverage limited.
Zumper, Inc. monthly with attribution 0

Refresh cadence

The monthly refresh runs as a cPanel cron at 13 3 22 * * (03:13 MST on the 22nd of each month). It is cadence-aware: each source's refresh_cadence column determines whether a given run actually fetches new data.

Each refresh follows: conditional fetch (HEAD Last-Modified vs dim_source.last_pulled_at) → bulk upsert with INSERT … ON DUPLICATE KEY UPDATE → drift check → DQ summary. A drift of more than 15% MoM on any city's rent index logs a warning to dq_check_result, and any error count above zero emails the operator.

Data quality checks

Every ETL invocation creates one row in dq_check_run and zero or more rows in dq_check_result. The standard checks that run on every batch:

A run with status='ok' means every check passed. Status 'failed' means the batch was published with at least one error-level finding (rare; only happens when an upstream source is malformed and the operator overrides).

Disclosures & NULL-by-design

Things we don't have, and won't fabricate
Several metrics that other rental sites quote are not available from any free, citable public source. We render them as an en-dash ("—") rather than estimate them. The full list:

Estimate disclosure for cap rates and per-unit prices

Cap rate and price-per-unit figures shown on city pages are directional estimates derived from NGC's managed-portfolio observations plus public OC market reports from CBRE and Cushman & Wakefield. An individual deal will move with property condition, rent-roll stability, and timing. Don't use these as offer prices — use them as a calibration check.

License & citation

Everything on OCRentalData.com — pages, CSV exports, JSON API responses — is published under the Creative Commons Attribution 4.0 International (CC BY 4.0) license. You can copy, redistribute, transform, and build on the material for any purpose, including commercially, as long as you give credit and link back.

Suggested citation:

NextGen Coastal Property Management. OCRentalData / NGP-Rental-Data warehouse. March 2026. https://ocrentaldata.com/

Machine-readable distribution

Frequently asked

Why don't you publish a single "the rent" number per city?

Because there isn't one. Zillow's ZORI is a hedonically-adjusted index — it tracks the typical rent of a unit at a given quality level, not the average asking rent. The NGC ticker captures actual leased rents from a specific managed portfolio. Both are real, both answer different questions. We show both and label them.

What does "observation_type" mean in your data?

Every fact row is tagged: observed (read directly from a source), extracted_report (lifted from a published PDF), interpolated (filled between known points), forward_filled (carried last-known value forward), annual_repeat (a yearly figure shown monthly), derived (computed from other facts), estimated (model-based), or unavailable. We never display anything without flagging it.

Can I trust the cap rates?

For direction, yes. For an offer price, no. They reflect a specific managed-portfolio's recent trades plus what CBRE and Cushman are publishing. They are not transaction medians from CoStar. Use them as a sanity check, not an underwriting input.

Why is the homepage saying "Updated March 2026" — what specifically refreshed?

That date is the MAX(period_start) on the rent_zori_overall metric — i.e., the most recent month of rent data we hold. Other metrics may be more or less current. See each metric's per-page data footnote for its own freshness.