Engineering notes
How Horizon forecasts (and why it isn't a rolling average)
Every forecasting app gets the same question: is this just a rolling average with a nicer font? Fair. Here's what actually happens, in order.
1. A deterministic paycheck arc
Horizon starts from the paycheck, not the spending. It walks day by day through your pay cadence, splits, and bills, and computes the exact balance for every date. Same inputs, same arc. No sampling.
2. Weekend-safe bill timing
Bills due on the 1st don't always land on the 1st. Horizon resolves weekend-adjacent debits the way your bank does. A lowest-balance warning is only useful on the right day.
3. Learned drift, not phantom drift
When a real balance doesn't match the projection, Horizon records the gap. Over a few cycles that becomes a per-day buffer — money it can tell is leaving without knowing what for. Capped, decaying, and always shown on Today.
4. Variable-income confidence bands
Shift, gig, commission, benefit and pension income don't collapse to one line. Horizon runs low, typical, and high. So a "yes" means yes even on the low pattern — not yes on average.
5. The comfort line — a threshold, not a limit
You pick one number: the lowest balance that still feels okay. Horizon finds your low point and reads it back in plain language, with the dollar gap, the date, and one thing you could do. Nothing is blocked. Nothing is scored.
6. No black box
Every number traces to a specific input, rule, and date. Settings → Export downloads the whole audit trail as plain JSON. If Horizon can't justify a number, that's a bug.
What Horizon deliberately isn't
Not an AI guessing what you'll spend on Tuesday. Not categorization dressed as advice. Not a rolling 90-day average. A deterministic simulator, a small learned buffer, and honest uncertainty when income moves.
More engineering notes will land here as Horizon ships. If a part of the engine matters to you, tell us.