hk_property_market_monthly

PREMIUM 1,214,392 rows

Monthly HK price medians and sales volumes by district and building

Also on crescira.com →

Actual monthly property-market aggregates computed directly from registered sales (no modelling or prediction) at three grains: whole Hong Kong, by district, and by building. Median price, median/quartile saleable and median gross $/sqft, and transaction count per month. Known non-residential sales (car parks, commercial, industrial) are excluded; older rows whose class is unknown are kept. Medians are mix-sensitive: they reflect the composition of what sold each month, not constant-quality price movement — subsidised-sale (HOS) registration waves at roughly half private-market $/sqft can move a single month's pooled median by more than 10%, so month-over-month deltas must not be read as market appreciation. p25/p75 ship alongside so the spread is visible. The in-progress current calendar month is kept but flagged month_is_complete = false; even a complete month keeps gaining late-registered sales for a few weeks.

Premium dataset

Evaluate it in full below: the evidence and a working sample are open to everyone. Buy or subscribe to unlock the complete dataset — your account is created automatically at checkout.

See access options

The evidence

Data coverage
Jul 1995 – Oct 2026
Volume
1,214,392 rows
Last refreshed
18 October, 2026 (3 hours ago)
Data through
1 October, 2026 (2 weeks ago)
Schema & column quality (11 columns)

Scroll table sideways to see more columns →

Column Type Description Populated Distinct
scope String Aggregation grain: hk (whole territory), district, or building — —
scope_key String Empty for hk; district name for district; building_code for building. 'Unknown' where the sale could not be placed in that scope, and it means something different in each: in the district scope, the sale's building is not yet in our building register or is there without a district; in the building scope, the sale carries no building code at all (a sale whose building is missing from the register still gets its own row under its real building_code). Such sales are counted in an 'Unknown' row rather than dropped, so summing any scope's tx_count for a month reproduces the hk row's; the tx_count on the 'Unknown' row is how much of that month is unattributed. — —
month Date Month of registration (first-of-month date) — —
median_price_hkd Nullable(Float64) Median transacted price (HK$) for the scope and month — —
median_ppsf_saleable Nullable(Float64) Median price per saleable square foot (HK$/sqft); mix-sensitive — see the dataset description — —
p25_ppsf_saleable Nullable(Float64) 25th-percentile price per saleable square foot (HK$/sqft) — with p75, shows the month's spread so mix swings are visible — —
p75_ppsf_saleable Nullable(Float64) 75th-percentile price per saleable square foot (HK$/sqft) — —
median_ppsf_gross Nullable(Float64) Median price per gross square foot (HK$/sqft) — —
tx_count Int64 Number of registered sales in the scope and month (known non-residential excluded) — —
month_is_complete Bool True if the month had fully elapsed at build time; false only for the in-progress current calendar month (which under-reports). Does not account for registration lag on already-complete months. — —
id String Stable unique identifier for this row — the last column of every export. Use it to deduplicate, to key an incremental load, or to reference one specific row. It is additive: the entity and join keys you already use (scope, scope_key and month) are unchanged. — —

Sample data

The most recent months of aggregates at every scope (whole Hong Kong, each district, each building), full schema. The current month is included and flagged month_is_complete = false.

SELECT * FROM renavon_exports.hk_property_market_monthly LIMIT 50 0.02s
Loading data… | Click a header to sort; drag headers to reorder.

Choose your access

A Pass gives you freshness within a rolling window. The Full Archive gives you the full history we hold for the dataset, frozen at purchase. They solve different problems, and they work together.

Full refund within 14 days on subscriptions. Details →

Get notified when this dataset is updated.

Questions about this data?

Our data experts are ready to help clarify any aspects of this dataset.

Contact Our Team