A net-worth trend rarely moves because of one large decision. In the data behind this tracker, it moved because of dozens of small recurring ones nobody remembered making. A storage plan crept up a tier. A trial converted. Two services that do roughly the same job both kept charging, because cancelling either one never quite became today's task.
Individually, each payment looked too minor to matter — a few dollars, low double digits at most. Together, in a typical month reviewed during the build, they were often the difference between a month that saved something and a month that did not. That gap is the whole subject of this post: what happened when recurring payments were treated as a first-class part of the product instead of background noise.
Designing the recurring list
Three choices shaped this part of the build.
First, the recurring list is a list, not a feed. One screen, every recurring charge found on the bank and card statements, sorted by amount, with the renewal date next to it. No charts on this screen. The point is reading, not admiring.
Second, every line gets the same three questions: is this still used, is it used at the tier being paid for, and would it be bought again today at this price? The third question does most of the work. Many payments survive the first two out of habit and fail the third immediately, because a service that was worth starting is not automatically a service worth continuing forever.
Third, the audit is quarterly, not constant. Recurring payments change slowly. New ones arrive a few at a time, and a short review four times a year catches the creep without turning household finance into a second job. A monthly nag to review subscriptions was tested early and ignored within two cycles — the cadence has to match how fast the underlying thing actually changes.
What worked
Making the monthly floor visible changed planning more than any saving did. The floor — the amount that leaves before any choice is made in a month — was a guess for most people who tried the early version. Once it was a known number on the same screen as assets and debts, plans stopped being built on the optimistic version of the month. The saving from cancelling two or three lines was real, but the honest floor was the bigger win.
The "would you buy it again today" question outperformed usage data. A service can be technically used — opened twice, logged into once — and still not be worth its price. Asking about a fresh purchase decision cut through the sunk-cost reasoning that kept dead subscriptions alive, in a way that last-used dates never did.
Quarterly reviews actually happened. That sounds trivial and is not. A review that takes one sitting and ends with a finite list gets finished; an always-on optimisation habit does not. In the builds tested here, completion of a quarterly audit was routine, while a weekly money-review prompt had effectively zero sustained use after the first month.
What broke, or nearly did
The first import tried to detect recurring charges automatically by looking for identical amounts. It missed most of them. Real recurring charges are not identical: streaming prices rise by a dollar, annual plans land once and vanish from a monthly view, and a card charge can change its descriptor when a provider rebrands. Automatic detection gave a confident, incomplete list, which is worse than no list, because people trusted it and stopped looking. The shipped approach is dumber and better: pull every charge from the statements in the review sitting, and let a person mark which ones recur. Slower by ten minutes, right in a way the clever version was not.
Annual payments broke the monthly floor at first. A once-a-year charge counted in the month it landed made that month look reckless and the other eleven look leaner than they were. The fix was to spread annual charges across the year in the floor calculation — not as a prediction, but as an honest average. Purists objected that the money does not actually leave monthly. True, and irrelevant: the floor exists to describe the weight of commitments, and an annual commitment weighs something every month.
There was also a deletion problem. Early versions celebrated cancelled subscriptions with a running "you saved" total that only ever went up. That number became fiction within two quarters, because some cancelled services were legitimately restarted and the counter never subtracted them. A metric that cannot go down will eventually be lying. The counter was removed; the trend line already shows the effect of a leaner recurring list, in the place it actually belongs.
Lessons for builders
Show the floor. People cannot plan around commitments they have never seen added up, and the total is almost always a surprise the first time.
Ask the repurchase question. Usage is a weak test for a recurring charge; a fresh buying decision is a strong one.
Match the review cadence to the rate of change. Quarterly beat monthly here not because quarterly is virtuous, but because subscriptions do not change monthly — and a prompt that fires more often than its subject changes teaches people to ignore it.
Never ship a savings counter that cannot decrease. If a derived number only improves, it is measuring its own design, not the user's money.
The project behind these lessons is Introworth, where assets and debts are tracked together in one monthly view, recurring commitments are reviewed as part of that view, and the trend — not a single month's noise — is the answer the product gives.