# SG Property Data > Useful calculated metrics for analysing Singapore's property market - price trends, CAGR, rental yield, and market-segment rollups for private residential property (condo and landed), plus town-level price metrics for HDB resale flats. Computed from URA (Urban Redevelopment Authority) and HDB/data.gov.sg records. Built by Chris Dunn, based in Singapore, under Web Content Creators (Hong Kong). Served as a pay-per-call API and MCP server for AI agents. ## Site - [Home](https://sgpropertydata.com/) - overview, example response shape, pricing. ## What we calculate For any Singapore private residential district, market segment, or project: - **Snapshot** - median price per square foot over the trailing 12 months, plus p25/p75 to show how wide or tight the spread is. - **Price trend** - percentage change in median psf across the available history. - **CAGR** - annualized price growth, shown at every confidence tier above `insufficient_data` (always paired with its confidence label and the raw inputs behind it, so you can judge reliability yourself rather than have us hide the number). - **Yearly breakdown** - the actual year-by-year time series: median psf, transaction count, and year-over-year change for each calendar year with data. Distinct from price trend/CAGR, which summarize the whole window into one number. - **Rental yield** (project level) - trailing-12-month rent against full-history sale price, where both exist, plus a year-by-year breakdown (what yield would have been if you'd bought and rented in each specific year that has both sale and rental data). Every figure carries a confidence level and the transaction count behind it. See [Methodology](https://sgpropertydata.com/methodology) for exactly how that's graded, including when we return `null` instead of guessing. **Condo and landed house data are kept separate throughout**, not blended into one number. They're different markets with different buyers - a condo's psf is computed on floor area, a landed house's on land area, and mixing the two would produce a meaningless figure. Every private-residential endpoint and tool below comes in a `condo` and a `landed` version. **HDB (public housing resale) is a separate, third namespace** - `town` instead of district, `flat_type` (e.g. "4 ROOM") instead of property category, no market-segment rollup (CCR/RCR/OCR is a private-market-specific concept), and no rental-yield metric (HDB subletting under tight eligibility rules isn't priced as an investment product the way private rental is). HDB does get the same snapshot/price-trend/CAGR/yearly-breakdown metrics as everything else, plus one HDB-specific figure: median remaining lease years for that slice. ## API - [REST API](https://sgpropertydata.com/openapi.json): for each of `condo` and `landed` - district stats, market-segment stats, project stats, project rental-yield, and a free project-listing endpoint (`/private/condo/projects` or `/private/landed/projects`, optionally filtered by district) for discovering exact project names before you query them. For HDB: `/private/hdb/towns/{town}/stats` (optional `flat_type` query param) and a free `/private/hdb/towns` listing endpoint. - [MCP server](https://sgpropertydata.com/mcp/): the same data as agent-callable tools - `get_condo_district_stats`, `get_condo_segment_stats`, `get_condo_project_stats`, `get_condo_project_rental_yield`, `list_condo_projects`, and the matching `get_landed_*` / `list_landed_projects` tools, plus `get_hdb_town_stats`, `list_hdb_towns`, and `get_data_freshness`. - **Free MCP server** (https://sgpropertydata.com/mcp-free/): a separate, permanently free mount exposing only `list_condo_projects`, `list_landed_projects`, `list_hdb_towns`, `get_sample_data`, and `get_data_freshness` - connect here specifically if you only need project/town discovery or the fixed sample, with no payment handling at all. The main MCP server above also has these same tools, alongside the paid ones - connect to whichever one matches what you're actually doing. ## Pricing - $0.005 USD per call, charged via the [x402 protocol](https://x402.org) in USDC on the Base network - genuinely per call, no session or subscription. Applies equally to every REST endpoint and every MCP tool call. Project-listing/discovery endpoints are free. - **Free sample data**: a fixed real example (district 09 and project TURQUOISE, both condo) is available with no payment at `/sample/districts/09/stats`, `/sample/projects/TURQUOISE/stats`, `/sample/projects/TURQUOISE/rental-yield`, or the `get_sample_data` MCP tool - same response shape as the paid endpoints, so you can verify fit before paying for the full catalogue. - No account, API key, or sign-up required. Call a gated endpoint and its 402 response carries the live price and payment instructions. - For MCP specifically: the `initialize` handshake itself is free - only actual tool calls (which carry an `Mcp-Session-Id` header once a session exists) are charged. You're never paying twice for one logical tool call. - That response is the only price that counts - this page is a convenience snapshot, not the source of truth. - Payment settles on-chain and is irreversible. See [Terms](https://sgpropertydata.com/terms) before integrating. ## Built by [Chris Dunn](https://www.linkedin.com/in/christopher-dunn-engineer/), based in Singapore, builds and maintains this service under **Web Content Creators**, registered in Hong Kong (Business Registration No. 41133353), Unit B, 12/F, Hang Seng Causeway Bay Building, Hong Kong. - Domain ownership for sgpropertydata.com is verifiable via DNS TXT record - see [ai-catalog.json](https://sgpropertydata.com/.well-known/ai-catalog.json) for the verification value. - Contact: hello@sgpropertydata.com. Security disclosures: see [security.txt](https://sgpropertydata.com/.well-known/security.txt). ## Coverage - **Private residential**: district, market-segment (CCR/RCR/OCR), and project level, separately for condo and landed. No subdistrict or individual-unit comparables yet. - **HDB (public housing) resale**: town level, optionally split by flat type. No block/street-level granularity - block-level transaction counts are too sparse for reliable trend figures, so town is the finest grain published. - The dataset is recalculated monthly. Check [/meta](https://sgpropertydata.com/meta) (or the get_data_freshness tool) for the current data vintage before treating any figure as live. ## Optional - [Terms of Service](https://sgpropertydata.com/terms) - [Privacy Policy](https://sgpropertydata.com/privacy) - [Methodology](https://sgpropertydata.com/methodology) - exactly how every figure is calculated, including confidence tiers and known limitations.