Product engineering · Data visualisation · 2026

Affordability starts before the first month’s rent.

Threshold gathers the costs of moving into one scenario: cash needed upfront, monthly spending, and the gap between current savings and a chosen move.

Project
Threshold
Role
Independent product, design, data modelling, and frontend engineering
Stack
React 19 · TypeScript · MapLibre · URLSearchParams · Vitest
Threshold landing page introducing the real cost of moving out
Threshold · Product engineering · Data visualisation
3
city models
2
cost horizons
URL
owns the scenario
Apr ’26
data snapshot

01 / Frame the decision

Monthly affordability can hide the cost that stops a move.

A person may be able to cover the monthly total and still be blocked by a deposit, first month’s rent, moving costs, or furnishing an empty place.

Threshold separates upfront and recurring costs before calculating the savings gap and time to move. Someone can understand the result without having to audit a spreadsheet.

  • Upfront total
  • Monthly total
  • Savings gap
  • Time to move
Threshold calculator with a district map and scenario controls

02 / Make assumptions visible

Every estimate should expose its assumptions.

Each city is a typed configuration of districts, rent bands, transport rules, deposits, utilities, and local charges. London and the Swiss cities can share a calculation engine without pretending their costs work the same way.

Defaults are starting points rather than hidden truth. People can override food, transport, broadband, moving, furniture, health insurance, income, and savings, while the interface keeps the published data date visible.

  • London
  • Basel
  • Zurich
  • Editable defaults
Threshold results showing upfront and monthly cost breakdowns

03 / Let the state travel

The URL saves the whole scenario.

Every meaningful input serialises into URL parameters. Opening the link reconstructs the same district, property, household, lifestyle, and affordability scenario.

This removes account creation and global state from a product that does not need either. It also makes comparisons easy to discuss: the scenario itself can be copied, reviewed, and changed.

  • No account
  • No backend
  • Reproducible scenarios
  • Pure calculations

What stayed with me

Building Threshold changed how I think about transparency in an interface. The assumptions stay visible, the scenario can travel, and uncertain values remain editable.