Lorong Halus
198 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.
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 Lorong Halus 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 issurface written 2026-10-12. Every figure on this page is read from that one file
Lorong Halus: 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.
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
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
GHS 2025: employed RESIDENTS by workplace planning area. Foreign-worker commuters are outside the frame entirely, so this is a FLOOR on true daytime workers; no-fixed-location (201,500) and work-from-home (82,200) sit in categories, not areas. Planning-area grain: the table publishes nothing finer, so every subzone in HOUGANG with premises, taps or residents published at the corner shows this same figure.
singstat.ghs2025.C020148 · planningArea grain
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
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
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
no_instrument_here: not measured at this grain. The publisher holds the figure one grain up. No geocoded postal address falls inside this corner, so there is nothing for URA's sector table to read a district from. The district crosswalk covers 316 of the 332 subzones and this is one of the sixteen it cannot reach. The land here is business 2. A place with no addresses is not a place with cheap rent; it is a place this instrument has no way to describe.
| day | window | mode | dir | taps/day | n |
|---|---|---|---|---|---|
| weekday | am-peak | bus | in | 23 | 69 |
| weekday | am-peak | bus | out | 50 | 69 |
| weekend-holiday | am-peak | bus | in | 12 | 24 |
| weekend-holiday | am-peak | bus | out | 30 | 24 |
| weekday | pm-peak | bus | in | 29 | 69 |
| weekday | pm-peak | bus | out | 11 | 69 |
| weekend-holiday | pm-peak | bus | in | 10 | 24 |
| weekend-holiday | pm-peak | bus | out | 22 | 24 |
| weekday | all-day | bus | in | 87 | 69 |
| weekday | all-day | bus | out | 111 | 69 |
| weekend-holiday | all-day | bus | in | 46 | 24 |
| weekend-holiday | all-day | bus | out | 116 | 24 |
this subzone, all trades: BUS taps only per gazetted day (no rail is counted in this number) a census: all 3 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
| nearest, beyond the serving line | taps/day | from the corner’s edge |
|---|---|---|
| KANGKAR (SE4) | 7,655 | 461m to Exit B |
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
| nearest, outside this corner | stalls | status | distance |
|---|---|---|---|
| Hougang Ave 1 Blk 105 (Hougang 105 Hainanese Village Centre) | 51 | Existing | 1,063m |
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 Hougang Ave 1 Blk 105 (Hougang 105 Hainanese Village Centre), 1063m 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
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
| share of households | |
|---|---|
| with no employed person, outside the figure above | 14.7% |
| earning over S$10,000 | 59.2% |
| earning over S$20,000 | 24.9% |
67,600 earning households of 79,400 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
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
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
| largest use classes | share of zoned land |
|---|---|
| business 2 | 56% |
| road | 24% |
| business 2 - white | 6% |
Counted as shopfront-capable: commercial, commercial & residential, residential with commercial at 1st storey, white, business park - white, hotel.
no parcel in this subzone is zoned for a use a ground-floor trade can occupy. The plan does not permit a shopfront here 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
not_yet_wired: a gap on OUR side of the pipeline. no licensed-premises fact, valued or absent, reached this subzone, and an unexplained gap is ours by rule
PLANNING-AREA grain, not this corner. No geocoded postal address is known at this corner, so SFA's register cannot count anything AT it; the figure is the same postal-grain census rows summed across the 9 corners of HOUGANG that publish one. No share of it is placed here. The area total is real, its placement at this corner is not.
sfa.trackrecord.by-postal:carried · planningArea grain · 2026-08-30 is the newest crawl night among the 9 counted corners of HOUGANG. A planning-area total is dated by its parts, and SFA stamps no date of its own
| quantity | code | side | rows |
|---|---|---|---|
| people.count | suppressed_at_source | theirs | 59 |
| householdSpend.monthly | suppressed_at_source | theirs | 513 |
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.