Why this exists

The reasoning

Ledgers look backward

Budgeting software is almost universally retrospective: it answers "where did the money go?" long after the answer could change anything.

A monthly total can look safe while the month itself is not. Income lands late, bills cluster early and a payment that is affordable at month end is impossible on the day it actually falls.

ClearBudget looks forward

It asks: will the month survive? The balance is projected day by day, bill by bill and card by card, with credit cards treated as pressure systems rather than static balances.

The headline is the most actionable form that answer takes: Safe to Spend Today, the most you could spend right now without any projected day dropping below your chosen buffer.

When a month ahead cannot hold, the Recommendations view says what would make it survivable: retime what can move, then find what no timing replaces, every figure measured against the same projection. It suggests and never applies; the app follows reality rather than leading it.

Checkable, not taken on trust

The same projection can be read as a graph or exported as a self-contained page whose table adds up row by row, so a claim about your money can be checked against a bank statement.

One deliberate exception: the current month opens from the balance you actually recorded, not the previous month's projected close. The recorded balance is the only figure that is a fact; the gap between the two is exactly the drift the report exists to show you.

Dogfood

This is the application I open to decide whether my own month holds together, which is the surest way I know to keep a solvency tool honest.

The same standard applies to using it: one keyboard path through every screen, one place a colour can come from, one meaning for a ring around a control.

Built like the apps I trust

When software is telling you whether the balance survives the month, approximately right is wrong. So the projection logic sits in a pure domain that no UI event or database write can reach into, inside a four-layer architecture with every dependency pointing inward. Structural tests, 100% line and branch coverage and a 400-line file limit hold the line on every run, over the setup program as well as the application, with a no-magic-numbers rule the code is written and reviewed against.

ClearBudget clean architecture diagram: UI, Application, Domain and Infrastructure layers with dependencies pointing inward to a pure Domain, plus cross-cutting Auth and Shared layers