Tengah · west

Forest Hill

223 taps a working day at this corner’s stops

The published record for this corner: measured numbers with their receipts, named absences where the record is empty. No scores, no forecasts, nothing invented.

Rent: nothing measured at this corner leads this card. The district’s stamped band stands in below, one grain up. At the corner’s own grain, rent is not published here yet. That is a gap on our side, not a zero
District 23’s stamped Level 1 (street level) band: S$9.56–38.00 psf. ALL of this corner’s postals sit in District 23; measured at district grain, not at this corner
That range pools 3 floor-area cells, and they do not overlap the same way: 30 sqm and below S$20.20–38.00 psf from 3 contracts; over 30 to 100 sqm S$16.29–25.79 psf from 3 contracts; over 300 sqm S$9.56–16.98 psf from 3 contracts. Read the cell your own floor area falls in, not the pooled range above it
HDB shop awards across Tengah: S$8.65 psf, the median of 2 awards from S$7.96–9.34 psf, newest 2026-03. Planning-area grain, HDB shop units at street level, winning bids; not this corner’s own and not private retail planning area
The plan zones 1.7% of this corner for uses that can hold a shopfront; its largest single use is residential at 39%, a plurality, not a majority tight
223 taps in and out on a working day · 264 on a weekend or public holiday (buses only, no rail in this number)
No station within 400m. Nearest is SOUTH VIEW (BP2), 1,058m to Exit A · 5,960 taps a working day at that station, measured at the station and not at this corner
residents: withheld at source. The publisher printed a dash here, and a dash is not a zero · daytime workers: the source does not publish a workplace count here
No HDB flats here. This corner is outside HDB's register, not empty of homes
Spend: withheld at source. The publisher printed a dash here, and a dash is not a zero
The middle earning household here takes home S$10,000–S$10,999 a month (planning area) · 8% earn over S$20,000
Home rents: a residential rent is not published here yet. That is a gap on our side, not a zero
Home sales: home sale is not published here yet. That is a gap on our side, not a zero
Pick what you sell in the app to count competitors. 7 of the 62 trades carry a counted register; a food format without one gets the licensed-food bound instead; the rest say why no count exists.
NEA lists no hawker centre in this corner. Nearest on its list is Bukit Batok West Hawker Centre, 1,708m away (22 stalls)

The app draws this corner’s buildings, shows it on the island map, checks a rent you were quoted against this record and runs your own numbers.

Open Forest Hill in the app →

This page never scores a door and never predicts a business. You know your margin, staffing and opex; we publish what the ground measures. (The one number that pretended to score was withdrawn on 2026-08-05.)

Every receipt for this corner ↓ What this is

surface written 2026-10-12. Every figure on this page is read from that one file

Forest Hill: every published receipt

How to read a row: the bold figure is the middle of its range and the figures either side are the range’s ends; “carried” means aggregated up from finer measurements (streets, postals, doors) into this corner, never a direct reading at it. The n is the count behind the figure: contracts, awards, units or taps, by instrument. An absent row carries a code and a side, never an instrument or a date, because nothing was measured. Every rent row was measured per square metre a month by its publisher (URA’s street medians, HDB’s awards over their printed floor area, the portals’ asks) and is printed here per square foot, divided once by this record’s own bridge of 10.76 sqft per sqm.

Who is here
Resident population
withheld at source

suppressed_at_source: withheld or not published at source. GHS 2025 printed a dash for this cell — small counts are withheld to prevent identification of individuals, and suppression is not a population of zero. The dash is denser in the age x sex strata than in the pooled total, which is what suppression of small cells looks like and is itself information

Resident households
withheld at source

suppressed_at_source: withheld or not published at source. GHS publishes no usable dwelling mix for this subzone — SingStat printed a dash, which its own footnotes define as nil OR negligible OR suppressed — three different worlds one glyph cannot distinguish, so this is recorded as the publisher withholding, never as zero. The household count here is the same divide as the spend weights, and with no residents-by-dwelling there is nothing to divide

Daytime workers (place of work)
not published here

not_published: withheld or not published at source. GHS 2025 C020148 publishes no workplace figure for this planning area — small workforces are not itemised, and an unpublished area is never a workforce of zero. The no-fixed-location (201,500) and work-from-home (82,200) categories also sit outside every area, so even the published figures are floors.

Rent: every published stratum
commercial rent
not yet published: our gap

not_yet_wired: a gap on OUR side of the pipeline. no commercial-rent fact, valued or absent, reached this subzone, and an unexplained gap is ours by rule

hdbTender rent
not yet published: our gap

not_yet_wired: a gap on OUR side of the pipeline. no hdb-tender fact, valued or absent, reached this subzone, and an unexplained gap is ours by rule

residential rent
not yet published: our gap

not_yet_wired: a gap on OUR side of the pipeline. no residential-rent fact, valued or absent, reached this subzone, and an unexplained gap is ours by rule

Rent: the district’s stamped band, one row per size cell
District 23 · Level 1 (street level) · pooled across its size bands · ALL of this corner’s postals quarter to 2026-06-30
S$9.56–20.77–38.00 psf n=3

URA PMI district median at DISTRICT grain, not measured at this corner. ALL of this corner's geocoded postals sit in District 23. The stratum is Level 1 (street level), declared here because URA stamps no all-levels, all-bands district median: the 3 size bands pool UNWEIGHTED: lo the lowest of the bands' lows, hi the highest of their highs, mid the median of band medians, because URA publishes no contract counts to weight with; n=3 is its disclosure floor, not a sample size. Read the bands and match your own floor area.

ura.pmi.district-median · district grain · 2026-06-30 is the last day of the quarter URA's rental-contract table covers. The figure is the district median of every contract signed across those three months in the stratum, so this is the period the median describes and not a day any particular lease was signed

District 23 · Level 1 (street level) · 30 sqm and below quarter to 2026-06-30
S$20.20–24.00–38.00 psf n=3

ura.pmi.district-median · district grain · 2026-06-30 is the last day of the quarter URA's rental-contract table covers. The figure is the district median of every contract signed across those three months in the stratum, so this is the period the median describes and not a day any particular lease was signed

District 23 · Level 1 (street level) · over 30 to 100 sqm quarter to 2026-06-30
S$16.29–20.77–25.79 psf n=3

ura.pmi.district-median · district grain · 2026-06-30 is the last day of the quarter URA's rental-contract table covers. The figure is the district median of every contract signed across those three months in the stratum, so this is the period the median describes and not a day any particular lease was signed

District 23 · Level 1 (street level) · over 300 sqm quarter to 2026-06-30
S$9.56–13.08–16.98 psf n=3

ura.pmi.district-median · district grain · 2026-06-30 is the last day of the quarter URA's rental-contract table covers. The figure is the district median of every contract signed across those three months in the stratum, so this is the period the median describes and not a day any particular lease was signed

HDB shop awards, planning area TENGAH lowest–highest award bids closed 2026-03-12, the oldest part bids closed 2026-01-22
S$7.96–8.65–9.34 psf n=2

PLANNING-AREA grain, not this corner: 2 HDB shop tenders awarded across 2 corners of TENGAH (PARK, PLANTATION), each a winning bid for one HDB shop unit at street level, not private retail and not this corner's own. lo and hi are the cheapest and dearest award, mid their median. Kept BESIDE the district band and never in its place: it does not lead this card, shade the map or enter any ranking.

hdb.tender.awarded-psm:pooled-by-planning-area · planningArea grain · 2026-03-12 is the day bids closed on the newest of the 2 tenders pooled here; the oldest of them closed 2026-01-22. Each part wears its own tender's closing day, the one date both HDB tender files give, so this row spans more than one tender round and no single day describes it

Footfall: every measured window
daywindowmodedirtaps/dayn
weekdayam-peakbusin1523
weekdayam-peakbusout5523
weekend-holidayam-peakbusin138
weekend-holidayam-peakbusout618
weekdaypm-peakbusin2623
weekdaypm-peakbusout1323
weekend-holidaypm-peakbusin298
weekend-holidaypm-peakbusout178
weekdayall-daybusin9723
weekdayall-daybusout12623
weekend-holidayall-daybusin998
weekend-holidayall-daybusout1658

this subzone, all trades: BUS taps only per gazetted day (no rail is counted in this number) a census: all 1 sources known in this subzone answered

lta.pv.per-day:carried · subzone grain · month to 2026-07-31 · 2026-07-31 is the last day of the month LTA's passenger-volume table covers. The figure is a per-day rate over that whole month's taps, so it names the month, not a day anything was counted

Stations: every one within 400m, or the nearest beyond it
nearest, beyond the serving linetaps/dayfrom the corner’s edge
SOUTH VIEW (BP2)5,9601,058m to Exit A

ENTRIES AND EXITS SUMMED on an average weekday, all day. Not boardings. NO station stands within 400m of this corner, which is the radius at which we are willing to say one serves it. The nearest is named anyway, with the same straight-line measurement to its nearest published exit. A corner 20m past the line is not a corner with no railway, and publishing nothing there would be a binary answer to a continuous question. It is not a walking route, and no claim is made that this station serves this corner.

lta.pv.per-day · station grain · month to 2026-07-31 · 2026-07-31 is the last day of the month LTA's passenger-volume table covers. The figure is a per-day rate over that whole month's taps, so it names the month, not a day anything was counted

Hawker centres: NEA’s registry, placed in this corner
Centres in this corner
0 a measured zero, not an absence
nearest, outside this cornerstallsstatusdistance
Bukit Batok West Hawker Centre22Existing (new)1,708m

NEA lists NO hawker centre in this corner. Its registry is a census of 129 centres, each carrying its own point, and every one of them was placed (none fell outside a subzone), so this is a measured zero rather than a corner nobody looked at. The nearest is Bukit Batok West Hawker Centre, 1708m from this corner's edge, and it is named for the same reason the nearest station is: a centre just over the boundary is not a centre that does not exist, and a straight "none here" would be a binary answer to a continuous question. Straight-line to its published point, not a walking route, and no claim is made that it sits in this corner.

nea.ssot.hawker-centres · subzone grain · as of 2026-03-13 · 2026-03-13 is NEA's own last-refresh stamp (FMEL_UPD_D) on the freshest row in this registry extract, not a survey date. A measured zero is only as current as the census behind it, and this is that census's date

Household spend: the bridge
Household spend
withheld at source

suppressed_at_source: withheld or not published at source. GHS publishes no usable dwelling mix for this subzone, so the bridge has no weights: a dash that means nil OR suppressed, and a bridge without weights would be the national number wearing a subzone's name. What is withheld is the dwelling MIX: a resident population may still publish above

What households earn: SingStat’s bands, at planning-area grain
Median earning household, monthly income from work as of 2025-06-30
S$10,000–S$10,999 a band, not a mean
share of households
with no employed person, outside the figure above11%
earning over S$10,00054.7%
earning over S$20,0007.8%

6,400 earning households of 7,300 in this planning area. PLANNING-AREA grain, not this corner, and EMPLOYMENT income only. The middle figure is the BAND the median earning household falls in. No average is computed, because the top band is "$35,000 & Over" and has no upper value to average. Households with no employed person are outside the denominator, which is SingStat's own convention for income from work; their share is published beside it, because a retiree household is not a poor household, it is one this instrument does not see.

singstat.ghs2025.household-income-bands · planningArea grain · as of 2025-06-30

Homes: every published sale price
Home sale price (URA caveats)
not yet published: our gap

not_yet_wired: a gap on OUR side of the pipeline. no home-prices fact, valued or absent, reached this subzone, and an unexplained gap is ours by rule

What stands here: every counted stock row
Counted stock
not yet published: our gap

not_yet_wired: a gap on OUR side of the pipeline. no stock fact, valued or absent, reached this subzone, and an unexplained gap is ours by rule

What the plan permits: the zoning, by use class
Zoned land whose use class can hold a shopfront Master Plan 2025 with amendments, published 2026-09-21
1.7% 13,438 of 788,116 zoned sqm, 29 parcels, mean plot ratio 2.8
largest use classesshare of zoned land
residential39%
park25%
reserve site12%

Counted as shopfront-capable: commercial, commercial & residential, residential with commercial at 1st storey, white, business park - white, hotel.

ZONING IS PERMISSION, NOT SUPPLY. This is the share of this corner's zoned land whose use class can hold a shopfront (COMMERCIAL, COMMERCIAL & RESIDENTIAL, RESIDENTIAL WITH COMMERCIAL AT 1ST STOREY, WHITE, BUSINESS PARK - WHITE, HOTEL) under the Master Plan 2025 with amendments. Not floor space that exists, not units for rent, and not a promise any particular unit is licensed for your trade. A low share means the plan gives a shopfront little room here; a high share does not mean anything is built. Each parcel is counted whole in the subzone holding its centroid.

ura.masterplan2025.landuse · subzone grain · published 2026-09-21 · 2026-09-21 is the day URA published this layer on data.gov.sg (Amendment to Master Plan 2025 Land Use Layer, d_7a03324bed531cdff76a16239b0e84e1, URA's stamp 2026-09-21T13:51:24+08:00): the Master Plan 2025, gazetted on 2025-12-01, with URA's amendments in it. A zone URA changes after this date is not in this figure until URA publishes the layer again and this figure is rebuilt

Competitors: every register that reaches here
All licensed food premises (container) carried as of 2026-08-17
0 premises n=1

a census: all 1 sources known in this subzone answered

sfa.trackrecord.by-postal:carried · subzone grain · 2026-08-17 is the night SFA's register was read: the crawl receipt where one was written, else the observation stamp a snapshot froze from the file's write time. Not a date SFA gives; a carried total wears the newest night among its postals

What was withheld or unreachable here: the ledger
quantitycodesiderows
people.countsuppressed_at_sourcetheirs59
householdSpend.monthlysuppressed_at_sourcetheirs513

Every absent fact carries a reason and a side. "Ours" is our pipeline's backlog; "theirs" is the publisher withholding. Only one of them is fixable by us.