hk_property_buildings

PREMIUM 63,212 rows

HK building directory with geo, district and completion

Also on crescira.com →

Master list of Hong Kong residential buildings from Centaline, a tier of the estate→phase→building→unit hierarchy. English and Chinese estate, phase, building and address names, the parent estate and phase codes, district and county, latitude/longitude, completion date, unit and floor counts, flats per floor, the assigned school net, and a facilities summary. Reconciled across several Centaline sources, newest observation per field.

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
Jun 2025 – present
Volume
63,212 rows
Last refreshed
12 October, 2026 (6 days ago)
Data through
12 October, 2026 (6 days ago)
Schema & column quality (45 columns)

Scroll table sideways to see more columns →

Column Type Description Populated Distinct
building_code String Centaline building code — primary identifier. Canonical form is exactly 10 uppercase letters (the '<phase>-' prefix carried by some source feeds is stripped upstream) — —
centa_bldg_id Nullable(Int64) Stable numeric Centaline building id (centabldg) — a vintage-independent integer alternate key; null for buildings never seen in a transaction — —
estate_code Nullable(String) Centaline estate code — links to hk_property_estates; the large multi-phase development this building belongs to. Null for standalone single-phase developments — —
centa_estate_id Nullable(Int64) Stable numeric Centaline estate id — integer alternate key to hk_property_estates; null where estate_code is null — —
estate_name_en Nullable(String) Estate name in English — —
estate_name_zh Nullable(String) Estate name in Chinese — —
phase_code Nullable(String) Centaline phase code — links to hk_property_phases; the development phase this building belongs to. Null where the phase is unknown — —
phase_name_en Nullable(String) Phase name in English (where the estate is phased) — —
phase_name_zh Nullable(String) Phase name in Chinese — —
building_name_en Nullable(String) Building/block name in English — —
building_name_zh Nullable(String) Building/block name in Chinese — —
building_address_en Nullable(String) Street address in English — —
building_address_zh Nullable(String) Street address in Chinese — —
district_en Nullable(String) Official Hong Kong district (one of the 18 District Council districts) in English, e.g. Sai Kung District. Centaline's own sub-areas (Tseung Kwan O, Lai King / Lai Wan) are folded into their parent district here and exposed separately as sub_district_*. — —
district_zh Nullable(String) Official Hong Kong district in Chinese (e.g. 西貢區), same folding as district_en — —
district_code Nullable(String) Official district on Centaline's stable letter code (A..T, 18 values; I and O unused) — links to hk_property_districts. Centaline's sub-area codes U/V are folded to Q/S here; the unfolded code is sub_district_code. — —
county Nullable(String) Territory of the official district: Hong Kong Island, Kowloon, New Territories East/West — —
sub_district_code Nullable(String) Centaline's own browse-area code (A..V) that district_code was folded from — equals district_code for the 18 real districts; U (Tseung Kwan O, inside Sai Kung) and V (Lai King / Lai Wan, inside Kwai Tsing) are the two sub-areas. Same code space as hk_property_transactions.district_code. — —
sub_district_en Nullable(String) Centaline browse area in English — the district name for the 18 real districts, or the sub-area name (Tseung Kwan O; Lai King / Lai Wan) — —
sub_district_zh Nullable(String) Centaline browse area in Chinese (將軍澳; 華景 / 荔灣 for the two sub-areas, verbatim from Centaline) — —
hma_id Nullable(String) Centaline neighbourhood id (HMA###) — links to hk_property_neighbourhoods (populated for the ~28% of buildings with a scope-bearing transaction) — —
hma_name Nullable(String) Neighbourhood name in Chinese, where known — —
schoolnet Nullable(String) Primary One Admission school net code (小一校網) the building falls in, e.g. '11', '74', '91' — normalised to the bare net code across all feeds; empty where no feed carries it (~0.3%) — —
facilities_zh Nullable(String) Building/estate facilities summary in Chinese (clubhouse, pool, etc.), where known — —
latitude Nullable(Float64) Latitude (WGS84); falls back to the phase centre when the building lacks its own point — —
longitude Nullable(Float64) Longitude (WGS84); falls back to the phase centre when the building lacks its own point — —
date_of_completion Nullable(Date32) Building completion/occupation date where known, including completions before 1970 — —
number_of_units Nullable(Int64) Number of residential units in the building (where known) — —
number_of_floors Nullable(Int64) Number of floors in the building (where known) — —
flats_per_floor Nullable(Int64) Typical flats per floor — the building master's reported value where present, else the native unit grid's width (distinct flat columns), else round(number_of_units / number_of_floors); flats_per_floor_source declares which — —
flats_per_floor_source Nullable(String) Provenance of flats_per_floor — 'reported' (building master), 'unit_grid' (native grid width) or 'derived' (units/floors); null where unknown — —
secondary_school_net Nullable(String) Secondary-school (SSPA) allocation scope as its district name, e.g. 'Yuen Long District' — SSPA nets align with the 18 districts, so the district IS the net; where known — —
developer Nullable(String) Property developer name for the estate (e.g. 'TAI HUNG FAI'), where known — —
estate_usage Nullable(String) Estate usage / property-type classification (e.g. private residential, HOS), where known — —
estate_description Nullable(String) Free-text estate description (plain text; any source HTML is stripped), where known — —
management_company Nullable(String) Property management company name (Chinese), where known — —
walk_mtr_minutes Nullable(String) Walking time to the nearest MTR station (free text, e.g. '5'), where known — —
estate_unit_count Nullable(Int64) Total residential units in the parent estate (distinct from number_of_units, which is per-building), where known — —
mtr_station Nullable(String) Name of the nearest MTR station (Centaline estateinfo.mtrStation, English), where known — complements walk_mtr_minutes with the station identity — —
hk_grid_x Nullable(Float64) HK1980 Grid projected easting of the building/estate centre (Centaline cMap lpt_x), in metres — distinct from the WGS84 longitude column; use with hk_grid_y for local-projection GIS work — —
hk_grid_y Nullable(Float64) HK1980 Grid projected northing of the building/estate centre (Centaline cMap lpt_y), in metres — distinct from the WGS84 latitude column; use with hk_grid_x for local-projection GIS work — —
developer_name_zh Nullable(String) Property developer's Chinese legal-entity name (Centaline estateinfochinese.developer) — a join key to the CRHK company registry; distinct from the English trading name in the `developer` column — —
scope_market_region Nullable(String) Centaline market-region code (scope.scp_mkt) — the coarse market bucket the building sits in (e.g. HK = Hong Kong Island, KL = Kowloon, NW/NE = New Territories West/East) — —
updated_at Nullable(DateTime64(3)) Timestamp of the latest source observation for this building; null for buildings with no dated source observation — —
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 (building_code) are unchanged. — —

Sample data

A slice of the building register, the most recently completed first, full schema: names, address, coordinates, completion date, unit and floor counts and school net.

SELECT * FROM renavon_exports.hk_property_buildings 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