Monthly-only path
Headline × months, with escalation applied at each annual anniversary, plus admin fee, plus insurance for the full stay.
Self-storage listings show a one-month headline. Real stays average 20 months, facilities raise rates ~10%/yr on existing customers, and most quotes don't include insurance and admin fees. Plug in your numbers and see all three paths side by side.
What renters mentally budget — ignores fees and hikes.
Annual escalation + admin + insurance.
Year 1 prepaid at discount, then monthly with hikes.
Headline held for the lock period, escalation after.
The renter expected the headline × months figure. Real month-to-month is $420 higher — that's fees plus rate hikes. A real rate-lock facility saves you $107 vs. the month-to-month path over your stay.
Headline × months, with escalation applied at each annual anniversary, plus admin fee, plus insurance for the full stay.
Year 1 paid up front at the discount; remaining months at the escalated rate. If your stay is ≤ 12 months, the whole stay is prepaid.
Headline held for the lock duration; escalation starts at the first month after the lock expires.
When climate control is on and the facility doesn't expose a separate climate-controlled rate, we apply a composite +35% to the headline rent — sourced from public REIT disclosures.
All four functions live in shared/calculator-math.ts as pure (no I/O,
no DOM) TypeScript. The same module pre-computes the "12-month cost" column on
every facility page.