Subscriptions

Every recurring charge, in one honest list.

Subscriptions are designed to be invisible. Small enough to ignore on a statement, automatic enough to survive years of neglect, and spread across enough merchants that nobody adds them up. So we add them up: every recurring charge, what it costs a month, what it costs a year, and which ones look like money you are no longer getting anything for.

What we do not do is cancel anything for you. That one is worth explaining properly, and it is further down this page.

  • Detected from your transactions
  • Monthly and annual totals
  • Never cancels on your behalf

how detection works

Two questions: does it arrive on a rhythm, and is the amount stable?

No merchant blocklist, no brand database to fall out of date. A charge is recurring because it behaves like one.

Detecting subscriptions by name would mean maintaining a list of every subscription business on earth, which is both impossible and guaranteed to miss the small local gym that is quietly billing you every month. So the detector ignores names almost entirely and looks at behaviour instead.

Charges are first grouped by normalized merchant and direction — the same descriptor cleanup described on the expense tracker page, so that a rotating store number cannot split one merchant into six. Multiple charges on the same day collapse into one, because an intra-day repeat should not be mistaken for a rhythm. Then two gates:

Gate one: cadence

The median gap between charges must land inside a known window — roughly weekly, biweekly, monthly, quarterly or annual. Median rather than mean, because a single late payment should not drag the whole judgement. Then a regularity check: at least sixty percent of the individual gaps must sit within that cadence's tolerance, which is how genuinely periodic charges are separated from ones that merely average out to a period by coincidence.

Gate two: amount stability

The variation in charge amounts — the standard deviation relative to the average — must stay below a ceiling. Above 0.45, the stream is rejected as recurring at all: that is a merchant you visit often, not a commitment that bills you. For something to be called a subscription rather than a bill, the bar is much tighter at 0.15, because subscriptions have prices and shopping has baskets.

A price rise does not break detection. Five months at one price and a sixth slightly higher still reads as the same subscription, and the average used for your totals moves with it — so the figure you see reflects what the merchant charges now, not what it charged when you signed up.

Example

Two merchants through both gates

Streamly

Recurring
Charges
6
Gaps (days)
28, 31, 30, 31, 30
Median gap
30.0
Amount variation
0.05

Median gap lands in the monthly window, five of five gaps sit within the ±7-day tolerance, and the amounts barely move — recurring, and stable enough to call a subscription.

Whole Harvest Market

Not recurring
Charges
6
Gaps (days)
6, 8, 5, 9, 7
Median gap
7.0
Amount variation
0.55

Roughly weekly, but the basket size swings far too much: variation above the 0.45 ceiling means this is a shopping habit, not a recurring charge.

Illustrative charge histories. The gap, median and variation figures are computed on this page with the same formulas the detector uses — one merchant clears both gates, the other fails on stability.

subscriptions vs bills

A gym membership and a mortgage are not the same problem

Once a stream is recognized, it is sorted into one of three groups. Money coming in is income — your paycheck is a recurring stream too, and recognizing it is how the app knows your cadence and stability. Recurring outflows in Housing, Utilities, Transport, Health & Fitness and Fees are bills: real, fixed, and worth seeing, but not things a list of “cancel these” suggestions should ever contain. Everything else — Subscriptions and Entertainment categories, plus small unclassified recurring outflows — is a subscription.

The distinction matters because the advice attached to each is completely different. You do not cancel your rent; you might renegotiate it. You can cancel a streaming service this afternoon. Mixing the two into one list produces a number that looks alarming and suggests nothing you can act on, which is the least useful kind of insight there is.

Cadence windows
Weekly 5.5–9.5 days, biweekly 11–17.5, monthly 24.5–35.5, quarterly 75–106, annual 330–400 — measured on the median gap between charges.
Regularity gate
At least 60% of the gaps must fall within the tolerance for that cadence — ±3 days weekly, ±7 monthly, ±31 annually.
Stability gate
Amount variation above 0.45 is rejected as recurring entirely; a subscription needs variation at or below 0.15.
Minimum evidence
Three charges for weekly, biweekly and monthly streams; two for quarterly and annual.

the number

What this actually costs you, per month and per year

Every cadence normalized to a monthly figure, then the honest annual multiple.

The headline totals are deliberately simple. Each subscription is converted to a monthly equivalent — annual divided by twelve, quarterly by three, weekly multiplied by 52/12 — and summed. Anything you have marked as canceled drops out immediately. The annual figure is that monthly total times twelve, computed in integer cents so it agrees with itself to the penny.

Alongside that sits the reclaim figure: what the currently flagged subscriptions would give back if you canceled them. That is deliberately narrower than the total. It would be easy to show a huge number by implying you should cancel everything, but you should not cancel everything, and a number you would never act on is just theatre. The reclaim figure is only the ones with a specific reason attached.

And once you do cancel something, the amount you have already reclaimed keeps its own running total — because the point of the exercise is not the horror of the annual figure, it is watching it come down.

Example

Six subscriptions, totalled and flagged

Per month

$66.90

6 subscriptions, every cadence normalized to monthly

Per year

$803

The number nobody adds up on their own

Flagged to reclaim

$21.49/mo

$258 a year if you cancel both

  • Streamlymonthly$17.99
  • Reelhousemonthly$11.50Overlaps Streamly — you pay for two Entertainment services.
  • CloudVaultmonthly$9.99No charge from CloudVault in 61 days — it may already be lapsed or forgotten.
  • Nimbus Notesmonthly$12.00
  • Sable Audiobooksannual$89.00
  • Copperline Coffee Clubquarterly$24.00
Illustrative subscriptions summed by the same savingsIfCanceled() and monthlyRecurringTotal() functions the app uses, including the cadence normalization. The flag wording is the app's real wording.

what gets flagged

Four signals, each with its reason written out

No charge in 45 days

For weekly, biweekly and monthly streams, a gap of 45 days or more since the last matching charge means the subscription may already have lapsed — or is about to bill you for something you stopped using.

Two services doing one job

When two active subscriptions share a category, the cheaper one is flagged as the likely duplicate. It is a prompt to choose, not an instruction — plenty of people knowingly keep two.

A renewal about to land

Upcoming renewals and bills within the next fortnight appear as notifications, so the decision happens before the charge instead of after it.

Nothing you did not ask for

Flags are suggestions with reasons attached. Keep silences one permanently; marking something canceled removes it from your totals. Nothing is ever actioned automatically.

Every flag carries the sentence that produced it — the number of days since the last charge, the name of the overlapping service — rather than an unexplained badge. If a flag is wrong, the reason tells you immediately why it fired, which is usually more useful than the flag itself.

canceling

We show you the door. You walk through it.

There is no code path in feels.money that can act on your accounts, and that is on purpose.

A number of subscription apps offer to cancel on your behalf. Doing that requires either write access to your accounts or a service impersonating you with the merchant, and we are not willing to build either. The connection to your bank is read-only by design: we can read balances and transactions, and there is no mechanism — not a disabled setting, an architectural absence — by which anything here could move your money or end a contract in your name.

What the app does instead is remove every excuse not to do it yourself. When you open the cancel helper for a subscription you get the annual cost stated plainly, a direct link to that merchant's billing page for around thirty commonly recognized services, and four steps that work almost everywhere:

  1. Sign in on the merchant's website or app — cancellation almost never works from the mobile store listing.
  2. Open Account, Membership or Billing settings and look for a manage plan option.
  3. Choose cancel rather than pause, unless pausing is what you want, and screenshot the confirmation.
  4. Check your next statement — if a charge sneaks through, the screenshot is what gets it refunded.

Then you tell the app you canceled it, and it stops counting the charge, adds the amount to what you have reclaimed, and leaves the record in place so the history stays truthful. If a charge somehow appears afterwards, you will see it — which is exactly why step four matters.

This takes about two minutes per subscription. The two minutes are the entire product: the hard part was never the cancellation, it was knowing what you were paying for in the first place.

questions

The things people ask

Find out what you are actually paying for.

Connect one account free and the recurring charges surface on the first sync — with the annual figure attached, which is usually the part that gets people moving.