This page documents how PSF Insight collects data, calculates metrics, generates AI analysis, and maintains editorial standards. We publish this so users, regulators, and reviewers can scrutinise our work.
Data Collection
Sources
All data on PSF Insight is sourced from official Singapore government APIs and public datasets. We do not scrape third-party sites, fabricate, or estimate beyond clearly labelled derived metrics.
- URA Property Market Information API: Private residential transactions (PMI_Resi_Transaction service, all 4 batches), development pipeline (PMI_Resi_Pipeline), developer sales (PMI_Resi_Developer_Sales), rental median (PMI_Resi_Rental_Median).
- data.gov.sg: HDB resale transactions (dataset d_8b84c4ee58e3cfc0ece0d773c8ca6abc), private residential price index (d_97f8a2e995022d311c6c68cfda6d034c), rental index (d_8e4c50283fb7052a391dfb746a05c853), HDB resale price index (d_f0c768860912d66940efdac9435dc046).
Refresh Cadence
A scheduled GitHub Actions workflow refreshes the data early every Wednesday morning, Singapore time; GitHub can start scheduled runs late. The workflow pulls all sources, archives timestamped snapshots and commits them to the site's repository. It does not modify the production database: the deployment that each data commit triggers imports the new snapshots, adding records and reconciling complete official snapshots without deleting history or account data. URA transaction data typically lags by 3 to 6 weeks from the actual transaction date due to caveat lodging timelines, which is consistent with all Singapore property platforms.
Coverage
Private residential history begins in November 2018 in the portable project snapshot. The complete official HDB registration feed currently begins in January 2017. Source families have separate reporting dates; the Market page shows the selected scope and available dates. Coverage is not a claim to contain every completed transaction.
HDB identity uses the recorded block and street, including letter suffixes. Old marketing labels resolve to a block only when unambiguous; otherwise the site offers recorded address choices. Private identities use source project names, with separate street, property type and area basis for landed groups. These are research identifiers, not land-title or unit identifiers.
Complete official snapshots are compared as multisets so identical source rows are retained. Superseded observations stay in the raw ledger and leave the analytical view. URA reconciliation requires all four successful batches and excludes the earliest potentially partial rolling month. Absence from an incomplete download never proves deletion. Older local database observations absent from the accepted portable snapshot are separately labelled local reconciliation, not proven unit-level corrections.
Calculation Methodology
PSF (Price Per Square Foot)
PSF divides recorded price by the recorded area converted at 10.7639 square feet per square metre. URA land area, URA strata area and HDB floor area remain distinct. An unknown area basis blocks automatic price matching; land and strata denominators are never treated as interchangeable.
Median PSF
For project-level and district-level summaries, we report the median PSF rather than the mean. Median is more robust to outliers (one penthouse sale skewing a project's average). For monthly trend lines, we use the median of all transactions in that month.
Comparable Transactions
Current matching uses the twelve calendar months ending at today, or the selected historical sale date when earlier. Stale transactions are excluded rather than bringing the comparison date backwards. The automatic profile uses the most recorded unit cohort and its median floor area; a supplied size chooses the closest recorded cohort. Exact floor bands and a 10% area tolerance are preferred. Any relaxation to other floors or a 20% area tolerance is shown.
Nearby alternatives need a verified address or recorded project coordinate, the same property type and area basis, compatible tenure, and a straight-line distance within 1.5 km. Leasehold comparables require the same lease length and commencement years within ten years; freehold and 999-year leasehold are kept separate. At least three same-property observations, or eight observations when nearby properties are included, are needed for an automatic sale-price assumption. Layout, orientation, renovation and view are not measured.
Estimated Current Value
The matched median PSF multiplied by the selected size supplies an indicative sale-price scenario only when the sample meets the matching threshold. Breakeven is placed below, within or above the middle half of size-adjusted matched prices. This is neither a valuation nor a probability of achieving a sale. Seller stamp duty follows the dated IRAS schedules and the next anniversary milestone is shown; actual duty uses the higher of sale price or market value. Ownership restrictions and MOP are not inferred from completion year.
Vintage Profitability
For each purchase year, we calculate the average PSF paid that year against the most recent 6 months' average PSF. The percentage difference is the rough capital gain or loss for buyers from that vintage. This is a simplification: it does not account for floor differences, renovation, or specific unit characteristics.
Annual Median Change
The longer-term Market summary compares true median PSF in the latest two available calendar years within the selected filters. The latest year may be incomplete and is labelled year to date when applicable. This is not necessarily a comparison of two full years.
Automatic Briefings and Unit Price Guides
Briefings compare adjacent six-calendar-month transaction samples. Project briefings share the latest month within their HDB or private source family, including months with no sales in a project. Market briefings use the latest month within the selected filters. Price changes are shown only when both periods have at least eight project records or thirty Market records. Changes in housing type, unit size or sale mix are identified as limits on interpretation.
Unit guides use the latest twelve recorded months and show the median price and middle fifty percent for recorded size groups or HDB flat types with at least three records. Resales are preferred within each group when there are enough; otherwise the use of all recorded sale types is labelled. These are descriptive samples, not verified bedroom layouts, individual-unit valuations or realised owner returns.
Sample-depth labels describe the number of records, not a calibrated probability that a valuation is correct. A project with old transactions does not receive a deep recent sample by moving the shared comparison window backwards.
Where recent private-project rental and resale evidence exists, an indicative gross yield uses annualised median rent per square foot divided by recent median sale PSF. These samples may contain different units and exclude vacancy, fees, tax and financing. Private URA rental series are not applied to HDB groups.
Verified Property Context
HDB property information supplies recorded completion years and dwelling counts. The MOE directory supplies school names and addresses; SLA OneMap supplies exactly matched address points and mapped rail locations. URA project coordinates are transformed locally from SVY21. Remaining lease is approximate to the recorded commencement year. A private completion year remains unknown without separate authoritative evidence.
Reference coverage is partial. A search result must match the official block and street or school postal address before its point is used. Straight-line point distances are not walking routes, MOE home-school boundary distances, admissions eligibility, or independent confirmation that a mapped station is operating. Sources and retrieval dates are visible on each property. Reference files are refreshed explicitly; browsing a property does not call a third-party geocoder.
Net Rental Scenarios and Watchlists
Rental scenarios use recent compatible private-project rental PSF and a recorded area profile, or a clearly labelled optional rent assumption. Base assumptions include half a month vacant each year, S$350 monthly maintenance, 5% of collected rent for repairs, one month of leasing commission plus 9% GST every 24 months, and non-owner-occupier residential property tax. Annual gross rent is a visible proxy for IRAS Annual Value unless the actual Annual Value is supplied. Mortgage payments, personal income tax and acquisition costs are excluded. HDB rent is never inferred from private rental series.
Watchlists stay on the browser for visitors who are not signed in; a signed-in visitor's watchlist is also kept in their account unless they turn that off. Watchlists compare public evidence with the last acknowledged review. An account copy merges by time: the most recent save, review or removal of each property wins, and a property missing from one device's list is not treated as removed. They distinguish added or superseded source observations, changed rental evidence, reference updates and rolling-period changes. A rebuilt database requires a new baseline. These changes do not establish matched-unit capital gains or investment returns.
AI Analysis
Model
Optional AI analysis uses a configured Claude-family model. The application supports Amazon Bedrock and a direct Anthropic API configuration; the production operator must ensure provider and privacy disclosures match the deployed configuration. The automatic transaction briefings are deterministic calculations and do not require an AI call or sign-in.
Inputs Provided to the Model
Each AI analysis call passes the following structured context to the model:
- The user's input data (project, price, size, floor, purchase date)
- Calculated metrics (PSF, estimated value, P&L, return percentage)
- Up to 10 matched comparable transactions, with their scope and recorded dates
- The project's monthly PSF trend (last 12 months)
- District pipeline data, price index, and rental index
How AI Interprets the Evidence
The system prompt asks the model to distinguish recorded facts, scenario assumptions and missing evidence. Analysis should compare relevant size groups, sale types, sample periods, ownership costs and verified tenure context. It must not invent MRT distances, school catchments, building age, MOP dates or rental yields.
Unmatched transaction records do not establish a realised profitable-transaction ratio. We do not apply a universal dollar-per-year appreciation target, assume larger bedrooms always outperform, or infer selling time from transaction counts. Buyer output is a research shortlist based on supplied records, with no required number of recommendations when evidence is insufficient.
Limitations
AI analysis is generated each time, which means two calls with the same inputs may produce slightly different outputs. The model can occasionally misread numbers, hallucinate project names, or apply frameworks inappropriately. We mark AI analysis explicitly as such and append a disclaimer to every response.
Important: AI analysis on PSF Insight is informational and educational, not financial advice. We do not guarantee accuracy of every claim made by the model. Always verify important numbers against primary sources and consult qualified professionals before transacting.
Editorial Standards
Article Production
Blog articles on PSF Insight are written and edited by our team. We use AI tooling to assist with research and drafting, but every article is reviewed by a human editor for accuracy, Singapore-specific applicability, and alignment with regulations. We do not publish content without editorial review.
Sourcing
Where articles cite specific numbers (ABSD rates, PSF figures, regulatory thresholds), we link to the primary source where possible: IRAS, MAS, URA, HDB, or government statements. Real project examples are based on publicly disclosed transactions.
Updates
Articles are updated when relevant policies change. The "Updated" date on each article reflects the most recent material edit. Cooling measure changes, tax rate revisions, and major regulatory shifts trigger immediate updates.
Conflicts of Interest
We do not accept paid placements, sponsored content, or developer-funded articles. We do not receive commissions from real estate agents. We do not promote specific projects or developers in editorial content. Subscription revenue and advertising are our only income streams, and neither influences article content.
Corrections Policy
If we publish an error, we correct it promptly and note the correction at the bottom of the article. We do not silently edit. Send correction requests to help@northstareducation.io.
User Privacy
We collect minimum data necessary to operate the service. See our Privacy Policy for full details. We do not sell user data, share it with third parties beyond essential infrastructure providers (Google for OAuth, Stripe for payments, AWS for AI), or use it for marketing without consent.
Open to Scrutiny
If you find an error, a methodology question, or a process you think we should improve, we genuinely want to hear it. Send to help@northstareducation.io. We respond to substantive feedback within 3 business days.