hk_property_provisional_sales
Pending-registration HK property sales (sales pipeline)
Download a file
CSV and Parquet. Filtered exports.
See pricingQuery with SQL
DBeaver, DuckDB, MotherDuck, or HTTPS. Sub-second latency.
Open connection detailsConnect to AI
MCP for Claude Desktop, Cursor, ChatGPT, Goose. 1-line install.
See setupProvisional (pending-registration) Hong Kong property sales from Centaline — sales agreed but not yet registered with the Land Registry. A leading market-velocity / sales-in-progress signal: these typically register weeks later and reappear in hk_property_transactions with a memorial. Kept separate from registered sales so the two are never double-counted.
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.
The evidence
Rows over time
monthSchema & column quality (21 columns)
Scroll table sideways to see more columns →
| Column | Type | Description | Populated | Distinct |
|---|---|---|---|---|
| provisional_id | String | Centaline provisional reference (e.g. ABC202605S0877) — unique; no Land Registry memorial until registered | — | — |
| unit_code | Nullable(String) | Centaline unit code — links to hk_property_units | — | — |
| building_code | Nullable(String) | Centaline building code of the building the provisional sale is in — links to hk_property_buildings (estate/building names, geo, district). Placed from the listing's own Centaline building link, else from the building its unit belongs to, and only where that building sits inside the phase or estate the listing is coded to. NULL (under 0.1% of rows) when no building can be placed without contradicting that phase or estate; phase_code and estate_code still locate those rows | — | — |
| building_code_source | Nullable(String) | How building_code was placed: bldggrp = the listing's own Centaline building link (its cblgcode); unit = the building the listing's unit belongs to; unit_code_prefix = the first 10 characters of a 14-character unit code; sole_phase_member = the only building in the listing's phase; typecode = the listing was coded to a building directly. NULL when building_code is NULL | — | — |
| phase_code | Nullable(String) | Centaline phase code — the construction/launch tranche of a development the provisional sale sits in; links to hk_property_phases. The placed building's phase, else the phase the listing is coded to. NULL when neither is known | — | — |
| estate_code | Nullable(String) | Centaline estate code — the named multi-phase development the provisional sale sits in; links to hk_property_estates. NULL for standalone developments that belong to no estate, and when the estate is unknown | — | — |
| tx_date | Date | Agreement/instrument date (insDate) in the Hong Kong calendar (YYYY-MM-DD); there is no registration date yet | — | — |
| price_hkd | Nullable(Float64) | Agreed sale price in Hong Kong dollars | — | — |
| saleable_area_sqft | Nullable(Float64) | Saleable area in square feet (實用面積); null where the source omits it | — | — |
| gross_area_sqft | Nullable(Float64) | Gross area in square feet (建築面積); null where the source omits it | — | — |
| price_per_saleable_sqft | Nullable(Float64) | Price divided by saleable area (HK$/sqft); null when saleable area is unknown | — | — |
| price_per_gross_sqft | Nullable(Float64) | Price divided by gross area (HK$/sqft); null when gross area is unknown | — | — |
| block | Nullable(String) | Block/tower label (English) | — | — |
| floor | Nullable(String) | Floor zone as listed, in Chinese: 高層 (high), 中層 (middle) or 低層 (low) — not a floor number; blank where not given | — | — |
| flat | Nullable(String) | Flat/unit designation (e.g. FLAT C) | — | — |
| direction | Nullable(String) | Aspect of the unit as listed, in Chinese (e.g. 東南 south-east, 西南 south-west, 南 south); blank where not given | — | — |
| unit_type | Nullable(String) | Unit type from the centanet feed (e.g. AP = apartment, HS = house, LR/MR/HR = low/mid/high-rise) | — | — |
| first_or_second_hand | Nullable(String) | First-hand (primary) vs second-hand (resale). Agency (AC) listings are second-hand; first-hand sales register via the Land feed. | — | — |
| bedroom_count | Nullable(Int64) | Number of bedrooms, where given | — | — |
| updated_at | DateTime64(3) | Timestamp when the record was last loaded | — | — |
| 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 (provisional_id, building_code) are unchanged. | — | — |
The most recent provisional sales agreements, full schema, newest first.
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.
Pass subscription
Hong Kong Property — Property Pass
Continuously updated, with API access.
View full package →- Access window
- Full history (no window)
- Updates
- Continuous, within hours of the source
- Delivery
- API, SQL and downloads
- Exports
- 1,000,000 rows/month included
Included Datasets
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