HomeCompareSwitzerland · place decisions
Back

Methodology · schema v1

A small deterministic model with visible limits

The same inputs and source snapshot produce the same calculation. Templated report wording is used; no client data is sent to an LLM.

1. Identity before calculation

Each selected building address is resolved through swisstopo to an official address feature, coordinates and BFS municipality number. The comparison server resolves the official record again and rejects inconsistent municipality, canton, postcode or coordinates; a browser flag is not proof of identity. Homes and workplaces may be anywhere in Switzerland. A postcode is never treated as a municipality identifier.

2. Known monthly-cost range

actual rent + entered childcare + insurance value or Priminfo P25–P75 tariff range

Consumer cards show an indicative midpoint, not an expected bill; the full range remains available under “Range & assumptions.” The highlighted rent difference uses only the two entered rents and is not total savings. Professional PDFs and share cards retain their existing range-based calculation.

  • Actual rent is mandatory for both places.
  • If actual insurance is absent, HomeCompare sums the 25th and 75th percentiles of matching approved 2026 tariffs for each age group, region, deductible, model and accident-cover selection. These are indicative derived bands, not an officially approved household range, a calibrated confidence interval or a personal quote.
  • Blank childcare, taxes, utilities, deposits, moving costs and unentered expenses are excluded. They are not filled with synthetic estimates.

The optional spending planner is separate from this known-cost range. It uses your own grocery, meal, utility, transport, ESTV tax, fitness and swimming budgets, not a retailer, gym or restaurant feed. Weekly groceries and whole-household person-meals use 52/12 weeks per average month; monthly categories are added without converting travel time to money. Displayed bounds are rounded outward to whole francs. A blank or invalid bound blocks that home’s planning total, and a difference is shown only when both homes have all selected categories and matching base childcare inclusion. Unknown costs are never silently zero.

An optional grocery starter uses the FSO Household Budget Survey 2023 national mean: CHF 637.755 per household per month for food and non-alcoholic drinks (about CHF 638). It covers all household sizes together, not one person or a particular family. The table was published 17 November 2025 and checked 10 September 2026. Source: FSO, detailed household expenditure by year, open use with attribution. This is a historical reference, not 2026 retailer prices. Your selected 50–200% multiplier and ±20% planning allowance are explicit HomeCompare sensitivity assumptions, not statistical bounds or a prediction. The seed is identical for both homes; no regional or automatic household-size adjustment is made. Applying it never overwrites existing budgets, and the separate text download retains its provenance.

The planner shows a partial scenario, not a new recommendation, statistical confidence interval, full cost of living or take-home income. Midpoint bars are illustrations of the displayed planning ranges on one common scale. It does not alter the core preference, professional PDF or share card. Moving costs, deposits and unentered expenses remain excluded; check utility/parking charges are not already in rent. Income tax in the planner is your ESTV paste, not a HomeCompare tax calculation. Its separate private text download contains your budgets. No planner inputs are sent to the server or retained on refresh.

The optional energy/water worksheet uses user-entered annual bills, or annual billed kWh × all-in Rp/kWh ÷ 100 plus annual fixed CHF (including VAT). Annual amounts are rounded to cents, summed and divided by 12. Water uses a bill/budget, not a national tariff. Already-included or explicitly unused items add nothing; unknown inputs block the worksheet total. Applying it copies a snapshot into the utility budgets without overwriting existing inputs; its original assumptions appear in the private download. Internet and other unentered costs are not covered. User-reported GEAK building-envelope and overall-energy classes are separate context, never inferred from an address or converted into bills, savings or a score. GEAK explains the building classes. An automatic, supplier-specific electricity tariff adapter is not implemented; ElCom provides official tariff data.

Optional home-map overlays reproduce BAKOM’s official 4G/5G and FTTB/FTTH fibre coverage tiles and legend. Mobile coverage models count outdoor operators in 100 m cells; fixed fibre coverage represents shares of residential/business building entrances in 250 m cells. They do not establish indoor reception, speeds, provider offers or fibre-to-the-flat. Participation is voluntary. Source legends checked 10 September 2026 show data status 30 April 2026; the provider’s live tiles may update sooner than our next review. 5G tiles stop at native zoom 14 and are enlarged at closer zooms, without adding detail. Optional antenna-site tiles show station locations, not coverage; BAKOM does not guarantee correctness. FOEN PM2.5 is the default overlay on the home street map after an official address is chosen; NO2 remains a dropdown choice. Both are modelled annual means (WMTS year 2024, native zoom 13). FOEN states that individual pixels must not evaluate individual locations; HomeCompare does not extract µg/m³ at the pin. Optional MeteoSwiss climate WMTS overlays show the same 1991–2020 normals as maps; they do not replace the 1 km numeric panel. Colours are not converted to scores, costs or personal safety. Blank/failed tiles are unknown. Street-map tiles come from OpenStreetMap (SOSM Swiss style). Overlay tiles come from geo.admin.ch, which receives your IP and viewed map area. Provider attribution remains visible.

3. Commute stays a separate dimension

The comparison requests address-to-address public-transport journeys for the selected arrival context. OJP 2.0 is primary. The community timetable fallback is disabled unless explicitly enabled; if used, it is labelled in the result and PDF. Otherwise unavailable journeys stay unavailable. With two workplaces, each place’s commute dimension is the arithmetic mean of its two journey times only when every requested home/workplace pair is available exactly once. Partial journeys remain visible but do not produce comparative averages or time-saving claims. Minutes are never converted into francs.

If you explicitly select “No commute needed”, no destinations, arrival time or journey requests are used. Commute weight is 0% and travel time remains unmeasured, not zero. Cost and nearby still share 100%. Returning to commute comparison restores a commute share; a failed journey is never silently converted into this mode.

4. Transparent pair-relative weighting

Cost, commute and the optional nearby-place match receive the exact percentage shares shown by the user, which always add up to 100%. Each dimension is scored only relative to the two selected places: the lower value scores above 50 and the higher value below 50, with extreme spread capped at 50 points. The resulting Home A/Home B score is a personal comparison aid, not an absolute quality-of-life score or a municipality ranking.

The optional personal-fit index is independent. It never appears in the professional PDF or share card. Optional 1991–2020 climate normals are 1 km grid values around each home. Optional municipality population is the FSO STATPOP permanent resident total on 31 December 2025, joined on the official BFS number. Optional police-recorded offence rates are FSO PKS 2025 Swiss Criminal Code totals by canton, per 1,000 STATPOP residents on 31 December 2024. Official air-quality, broadband, Kita, school and ESTV pages are offered as labelled checks or overlays. None of these is converted into a HomeCompare score.

Decision rule: a preference is declared only when the known monthly-cost ranges do not overlap, every weighted dimension is available, cost coverage is like-for-like when cost has weight, and the final weighted scores differ by at least eight points. Childcare quoted for only one home cannot justify a cost-weighted preference. Otherwise the result is “Too close to call.” Missing expenses can still change an apparent preference; the result is not certainty about the best home.

The optional personal workspace separately distinguishes preferences from must-haves. A failed or unchecked must-have stays visible even if a home has a cost advantage. These are your viewing observations, not independently verified facts; they do not change the numerical result or appear in the professional PDF or share card. Completing an action does not prove a requirement has been met.

Nearby preference match · a separate personal index

Select mapped place categories, a target straight-line distance (0.5–5 km) and an importance weight (1–5, equal by default). Each criterion scores 100 inside its target, then falls linearly to 0 at three times that distance. The headline is the weighted mean only when every selected criterion has a mapped match within the 10 km search boundary. Otherwise it is withheld, and matched-weight coverage is shown separately. Coverage is not a claim that OpenStreetMap is complete.

This is a HYBRID proximity measure, not an objective quality-of-life score. Missing mapping is not absence. School level comes only from explicit source tags; school assignment/quality, pool access, Kita fees/vacancies and ELCH drop-off services must be checked. ELCH is named only for Stadt Zürich as one local provider, not a national network. Bus-stop or station proximity is not service frequency, reliability or a walking route. Posts may have limited opening hours. Personal settings remain local and do not change the existing cost/commute engine, PDF or share card.

The separate ODbL derivative, source and ingestion dates are available with the result and data-status page. It is suppressed after 30 days or overdue rights review. Street maps load from OpenStreetMap after an official address is chosen; overlay tiles share IP and tile area with the federal map service. Home markers and proximity matching remain local.

Climate normals · a separate 1 km grid

Optional yearly mean temperature, precipitation and relative sunshine come from MeteoSwiss 1991–2020 spatial climate normals. HomeCompare looks up the 1 km LV95 cell around each official home coordinate from one public derivative. Optional WMTS overlays show the same normals as maps and do not replace those numbers. Relative sunshine is a percentage of possible sunshine, not hours. Missing or nodata cells stay unknown. This is HYBRID context, not today’s weather, apartment daylight, air quality or a ranking, and it does not change the cost/commute engine, PDF or share card.

Municipality population · STATPOP totals

Optional municipality population comes from FSO STATPOP cube px-x-0103010000_201: permanent resident population on 31 December 2025, geography as of 6 April 2025. HomeCompare looks up the official BFS municipality number of each home in one public derivative. Citizenship, place of birth, sex, age and non-permanent counts are not stored. A missing BFS match stays unknown and is not filled from the canton or a neighbour. City registers can use a different definition; the City of Zürich’s own 452,421 figure is not this STATPOP total. Foreign nationality is not an expat count and is not used as desirability or safety. This is HYBRID context, not neighbourhood density or a ranking, and it does not change the cost/commute engine, PDF or share card.

Cantonal police-recorded offences · PKS rates

Optional canton rates come from FSO cube px-x-1903020100_101: 2025 Swiss Criminal Code offence-total, completion-total and detection-total. The rate per 1,000 uses STATPOP permanent residents on 31 December 2024, matching FSO’s published Häufigkeitszahl rule. Homes join on the official canton, never the municipality or the pin. Independent checks: Switzerland 554,963 offences / 61.3 per 1,000; Zürich canton 104,632 / 64.6; Aargau 35,023 / 47.6. FSO warns that reporting, policing and commuters affect geographic comparison. This is HYBRID cantonal context, not neighbourhood risk, victimisation, convictions or a ranking, and it does not change the cost/commute engine, PDF or share card.

5. Tax is context, not liability

When requested, the result shows a verified 2026 municipal multiplier and source where a normalized adapter is available. That coverage currently includes Zürich, Zug and Aargau; other cantons receive a clearly labelled link to the official ESTV calculator. The consumer result states that tax is not in the monthly figure and names both municipalities. Cantonal tax bases differ, so multipliers are not compared directly across cantons and are excluded from the monthly range and score. HomeCompare does not call unofficial ESTV endpoints, invent a URL-prefill, or invent how much tax a household would save in Zürich versus Bern. Optional taxable-income fields stay in page memory for the ESTV checklist and are never sent with Compare.

6. Deliberate exclusions

No school-quality score, neighbourhood-crime score, childcare-fee estimate, live hospital-capacity claim, listing scrape, Comparis republication or current-market rent estimate is used. Canton PKS rates and FOEN air overlays remain labelled context.

The optional supermarket panel uses a separately licensed OpenStreetMap Swiss extract. It shows up to three mapped features within 2 km of each home, ranked by approximate straight-line distance calculated locally with the haversine formula and a mean Earth radius of 6,371.0088 km. Nodes use their mapped point; ways and relations use their bounding-box centre, not a verified entrance. This is HYBRID context: community mapping plus derived proximity, not verified retail coverage, a walking route or a lifestyle score.

Each panel shows the source database and ingestion dates, attribution and the complete downloadable ODbL derivative. Shop observation dates, live trading, stock, prices and accessibility remain unknown. The extract is withheld after 30 days or an overdue source-use review; a refresh of the file alone cannot make an old source current. Empty results do not prove that no shops exist. Other shop types and cross-border stores are excluded; distinct map features can duplicate one business. This context does not change the decision, costs, PDF, share card or viewing plan.