# Subscription Tracker That Catches Charges After You Cancel

*Published: 2026-03-10 | Author: Jason Ratzlaff*

A subscription tracker finds the recurring charges hiding in your bank data, tells you what each one costs per month and per year, and warns you before the next one lands. The subscription tracker in [SpendifiAI](https://www.parkktech.com/spendifiai-ai-personal-finance-platform/) goes two steps further: when you cancel something it keeps watching that merchant and flags any charge that arrives after the cancellation, and its dashboard carousel lines up every upcoming bill by due date, with the total for the next seven days on top.

**121**cancellation providers seeded*each with statement aliases and a cancel URL*

**6 mo**of transactions scanned*on every detection run*

**2 or 3**charges to confirm a pattern*2 for known providers, 3 for unknown*

**48 days**before a silent monthly sub*moves to Cancelled on its own*



This article explains how that works in the shipped code: how charges become subscriptions, how the Cancelled list proves a cancellation actually stuck, when a subscription that stops billing is treated as gone, and how the upcoming payments carousel decides what to show. Every number here comes from the SpendifiAI source (`SubscriptionDetectorService`, `SubscriptionController`, `Dashboard.tsx`), not from a marketing sheet.

What Is a Subscription Tracker?
-------------------------------

A subscription tracker is software that reads your transaction history, groups charges by merchant, and recognizes the ones that repeat on a schedule: streaming, software licenses, hosting, phone, insurance, gym. It turns a year of statement lines into a short list: who bills you, how much, how often, and when the next charge is expected.

The hard part is not listing charges. It is deciding which repeats are subscriptions and which are just habits. Buying coffee at the same shop every Monday repeats. So do credit card autopay, rent and transfers between your own accounts. A useful tracker has to reject all of those while still catching the $9.99 app you signed up for once and forgot.

### Why tracking alone is not enough

Most people who go looking for a subscription tracker have one of three problems: they do not know everything they are paying for, they cancelled something and are not sure it stopped, or a renewal surprised them. A list of active subscriptions only solves the first. SpendifiAI’s subscription work in February, March and April 2026 was aimed squarely at the other two.

How Do Subscription Trackers Work?
----------------------------------

SpendifiAI’s detector runs over transactions from linked bank accounts or [imported PDF and CSV statements](https://www.parkktech.com/spendifiai-pipeline-upgrades-auto-import-resumable-uploads-data-integrity/). The sequence below is the order the code actually runs in.

1. **Pull six months of charges.** Every positive-amount transaction from the last six months, oldest first.
2. **Group by merchant.** Names are normalized, and groups with overlapping prefixes are merged, so a bank that truncates “Relaxed Communications” to “RELAXED COMMUNIC” still lands in one group.
3. **Check the provider directory.** Known companies are matched through their statement aliases. Unknown merchants in hard-excluded categories (bank fees, transfers, loans, ATM, income, rent) are skipped.
4. **Split by exact amount.** Two plans from the same company, such as two Microsoft subscriptions, become two candidates instead of one noisy one.
5. **Test for a real billing cycle.** Amounts must match to the cent, and the gaps between charges must be regular. The median gap sets the frequency: weekly, monthly, quarterly or annual.
6. **Ask the AI about the rest.** Candidates from unknown merchants go to Claude in one batch for a yes or no: fixed recurring service, or repeated purchases that only look like one.
7. **Link, de-duplicate, then check for missed charges.** Subscriptions are linked to cancellation providers, duplicates are merged in three passes, and anything that has gone quiet is flagged.

### How it tells a subscription from a repeat purchase

Two rules do most of the work. First, a true subscription bills the same amount every cycle, so ordinary candidates must match the most common amount within one cent. Second, the timing has to be steady: the coefficient of variation of the gaps between charges must stay at or under 0.25. A merchant that charges $12.99 on the 3rd of every month passes. A grocery store where you happened to spend $40 three times does not.

Frequency comes from the median gap, which resists one early or late charge. With three or more charges, a median up to 10 days is weekly, up to 40 is monthly, up to 120 is quarterly and up to 380 is annual. With only two charges the monthly and quarterly bands widen to 62 and 150 days, because a single gap is noisy. The next expected date is the last charge plus one cycle, and it drives the carousel described below.

### Why API usage is not a subscription

Companies like OpenAI, Anthropic, Google Cloud and AWS sell both flat plans and pay-as-you-go usage. If one of those merchants shows amounts that differ by more than a dollar, every group from that merchant goes to AI validation instead of being accepted automatically. The prompt spells out the difference with the example the code was built around: a fixed ChatGPT Plus plan is a subscription, varying API bills are not.

### Essential bills with amounts that change

Utilities, insurance and phone bills repeat but rarely match to the cent. For known essential providers the detector drops the amount check and allows a looser timing spread (coefficient of variation up to 0.60), so a power bill that swings with the season is still recognized as a bill. Categories such as housing, utilities and insurance are marked essential automatically, and users can toggle essential on any subscription card.

![Person using laptop computer holding card](https://images.unsplash.com/photo-1563013544-824ae1b704d3?ixid=M3w4ODMzNjJ8MHwxfHNlYXJjaHwxfHxjcmVkaXQlMjBjYXJkJTIwb25saW5lJTIwcGF5bWVudCUyMGxhcHRvcHxlbnwxfDB8fHwxNzkwNjY5MDM2fDA&ixlib=rb-4.1.0&w=1520&q=80&fm=jpg&fit=crop&ar=16:9)Photo by [rupixen](https://unsplash.com/@rupixen?utm_source=parkk_blog&utm_medium=referral) on [Unsplash](https://unsplash.com/?utm_source=parkk_blog&utm_medium=referral)How to Track and Cancel Subscriptions in One Place
--------------------------------------------------

Finding a subscription is half the job. The other half is getting out of it, and then knowing whether you got out. Each subscription card in SpendifiAI takes one of three responses: **cancelled**, **reduced** (you moved to a cheaper plan and enter the new amount) or **kept** (with an optional reason, which also marks it essential). Cancelled and reduced responses record the monthly savings in a savings ledger, so the number on the dashboard is money you acted on, not a projection.

![Bar chart of the 121 cancellation providers seeded in SpendifiAI by category: Software 27, Streaming 18, Hosting 12, Music 8, then Phone, Internet, Insurance and Finance at 6 each](https://www.parkktech.com/wp-content/uploads/2026/09/spendifiai-cancellation-providers-by-category.png)The seeded provider directory by category. Counts from `CancellationProviderSeeder.php`.### The cancellation provider directory

SpendifiAI ships with 121 cancellation providers across 17 categories, from Netflix and Spotify to hosting companies, phone carriers and insurers. Each record carries the aliases the company uses on bank statements (Netflix alone is matched as NETFLIX, NETFLIX.COM and NETFLIX INC), the direct cancel or account page, and a difficulty rating. Of the 121, 68 are rated easy, 37 medium and 16 hard. The aliases matter twice: they let the detector accept a known provider after two charges instead of three, and they tie the subscription to the right cancel link.

### Keeping cancel links current

Cancel pages move. The admin panel lets the directory be edited like any other data, and for a provider without a good link an admin can run `CancellationLinkFinderService`, which asks Claude for the most direct cancellation URL, a support phone number, two or three sentences of instructions and a difficulty rating, then saves the answer to that provider. The prompt allows a best guess when the model is unsure, so the seeded entries remain the ones flagged as verified.

**A cancellation is only real when the charges stop.**Marking a subscription cancelled in SpendifiAI does not end the billing, the merchant does. What the app adds is proof: it keeps matching new charges against the cancelled record and tells you if the merchant bills you again.



Cancelled Subscription Still Charged? How SpendifiAI Catches It
---------------------------------------------------------------

This is the problem behind the Cancelled tab. Before February 26, 2026, a subscription you cancelled stayed mixed in with the active ones. The first fix (`fc98488`) moved cancelled subscriptions onto their own tab so the active list only showed what you were still paying for.

The April 28 lifecycle overhaul (`77d47bd`) changed what happens next, and it is the part that answers the search question. When the detector finds a new charge from a merchant you cancelled, it no longer resets the subscription to active. The first version did exactly that, which quietly put the subscription back on your active list and hid the fact that you had been charged again. Now it checks whether the charge is dated after the moment you cancelled. If it is, the record gets a `recharged_at` date and the amount charged, and the Subscriptions page raises an alert: “N subscriptions charged after you cancelled”. The cancelled status itself is never overwritten.

First version

February and March 2026

Where cancelled subs liveTheir own Cancelled tab

New charge after cancellingDetector reactivates the sub as active

Cancelled subs in the carouselStruck through until 14 days past due



After the lifecycle overhaul

April 28, 2026

Where cancelled subs liveCollapsible Cancelled section with count and savings

New charge after cancellingFlagged with date and amount, status stays cancelled

Cancelled subs in the carouselLeft out; only truly active bills





### Confirmed savings, not hoped-for savings

The savings figure on the Cancelled section is built from cancelled subscriptions that have a response date and no charge after it. A cancellation that got charged again drops out of the total until you deal with it. The page shows the result per month and per year, so “confirmed savings” means exactly that.

### From a tab to a section

The April redesign turned the Cancelled tab into a collapsible section at the bottom of the Subscriptions page, headed by the number of cancelled subscriptions and the monthly savings. The top of the page became a spending summary with an essential versus non-essential bar and clickable filters. The job of the original tab, keeping cancelled items out of the active list while keeping their history, did not change.

What Happens When a Subscription Stops Billing?
-----------------------------------------------

Many subscriptions end without anyone pressing cancel: a card expires, a free tier kicks in, a service shuts down. A tracker that never notices will keep counting that money as committed. SpendifiAI computes two thresholds for each active subscription from its own charge history rather than fixed calendar rules.

![Bar chart: SpendifiAI flags a subscription as missed 3 days past its typical interval and moves it to Cancelled at 1.5 times the interval plus 3 days (weekly 10 and 14, monthly 33 and 48, quarterly 93 and 138 days)](https://www.parkktech.com/wp-content/uploads/2026/09/spendifiai-subscription-missed-thresholds.png)Grace and auto-cancel thresholds for a subscription with three or more charges on file. Formula from `computeBillingThresholds()`.The typical interval is the median gap between charges after outliers are dropped. Past that interval plus three days, the subscription is flagged as missed and shown with an overdue note on the Subscriptions page (“may no longer be active”). Past 1.5 intervals plus three days, it is moved to Cancelled on its own. If a new charge arrives while it is flagged, the flag clears. With fewer than three charges on file, the buffer is five days instead of three.

### Price changes are not cancellations

Before auto-cancelling, the detector checks whether the same merchant has billed you recently at a different amount. If it has, the subscription is updated to the new price and its annual cost is recalculated instead of being cancelled, so a phone plan that went from one price to another stays on your list. Only when another subscription already tracks that merchant at the new amount is the old record retired.

CycleGap (days)Missed afterCancelled afterWeekly71014Monthly303348Quarterly9093138Annual365368551![Open monthly planner on wooden desk](https://images.unsplash.com/photo-1435527173128-983b87201f4d?ixid=M3w4ODMzNjJ8MHwxfHNlYXJjaHwxfHxjYWxlbmRhciUyMHBsYW5uZXIlMjBiaWxsc3xlbnwxfDB8fHwxNzkwNjY5MDM3fDA&ixlib=rb-4.1.0&w=1520&q=80&fm=jpg&fit=crop&ar=16:9)Photo by [Eric Rothermel](https://unsplash.com/@erothermel?utm_source=parkk_blog&utm_medium=referral) on [Unsplash](https://unsplash.com/?utm_source=parkk_blog&utm_medium=referral)Upcoming Bills: The Upcoming Payments Carousel
----------------------------------------------

The second feature from February 26 (`a8d45f5`) answers the other question people bring to a subscription tracker: what is about to hit my account? The dashboard now opens with an Upcoming Payments strip, a horizontal carousel of cards sorted by next due date. The header shows how many charges are scheduled and the total due in the next seven days. Arrow buttons scroll two cards at a time, and each card’s left edge is colored for essential (green) or non-essential (amber), so you can see at a glance how much of the coming week is optional.

![Timeline showing SpendifiAI upcoming payments carousel badges: Expected any day when past the predicted date, Due today, In 1d to 3d, In 4d to 7d, and no badge beyond a week](https://www.parkktech.com/wp-content/uploads/2026/09/spendifiai-upcoming-payments-carousel-badges.png)Badge rules in the carousel. Thresholds from `getDueBadge()` in `Dashboard.tsx`.### “Expected any day” instead of “Overdue”

The first version labelled a bill whose predicted date had passed as Overdue. That was wrong in tone and often wrong in fact: the prediction is last charge plus one cycle, and real merchants bill a day or two late all the time. On March 9 (`477bf05`) the badge became “Expected any day” in violet. The same change dropped cards whose payment had already cleared, meaning the last charge date had reached the expected date.

### Only bills you will actually pay

The March change also showed cancelled subscriptions in the carousel, struck through, until 14 days past their expected date, as a visual check that no charge came. The April overhaul replaced that with a stricter rule used across the whole dashboard: only “truly active” subscriptions count, meaning active and not flagged as missed. The carousel, the monthly bills total, the essential and non-essential split and the free-to-spend figure all read from that same set, so they cannot disagree with each other. Charges after cancellation are handled on the Subscriptions page instead, where they belong.

DateCommitWhat changedFeb 26, 2026`fc98488`Cancelled subscriptions move to their own tabFeb 26, 2026`a8d45f5`Upcoming payments carousel with urgency badges and a 7-day totalMar 9, 2026`477bf05`“Expected any day” replaces Overdue; cleared payments drop offApr 28, 2026`77d47bd`Lifecycle overhaul: charge-after-cancel alerts, confirmed savings, history-based thresholds, one “truly active” set for the dashboardSubscription Tracker vs Spreadsheet: Which Works Better?
--------------------------------------------------------

You can track subscriptions by hand, and for five or six services a spreadsheet works. It stops working when the list grows, when a merchant bills under a name you do not recognize, or when the thing you need to know is whether a charge stopped. Here is how the two approaches compare on the jobs this article covers.

Spreadsheet or memory

manual

Finding subscriptionsRead statements line by line

Unrecognized merchant namesSearch each one yourself

Next due dateTyped in and kept current by hand

Charge after cancellingNoticed only if you check



SpendifiAI subscription tracker

automatic

Finding subscriptionsSix months scanned per run

Unrecognized merchant namesAliases for 121 providers, AI check for the rest

Next due datePredicted from the billing cycle

Charge after cancellingFlagged with date and amount





**Limits worth knowing**Detection needs history: two matching charges for a known provider and three for anyone else, all within the six-month window, so a brand-new or annual subscription may not appear right away. Predictions only see what reaches your linked accounts or imported statements; charges on a card you have not connected are invisible. Cancel links for providers updated by the AI lookup are best guesses until someone checks them.



Frequently Asked Questions
--------------------------

How do subscription trackers work?They read your transaction history, group charges by merchant and look for charges that repeat on a regular cycle. SpendifiAI scans six months of transactions, requires matching amounts and steady timing, sets the frequency from the median gap between charges, and asks an AI model to confirm merchants it does not already know. The result is a list of subscriptions with amounts, frequency and the next expected charge date.

What is the best way to track and cancel subscriptions?Track them from your actual bank data rather than memory, cancel directly with the merchant, and then confirm that the charges stopped. SpendifiAI links each subscription to a cancel page from its directory of 121 providers, records your response, and keeps watching the merchant so a charge after the cancellation is flagged instead of slipping through.

How do I find all my subscriptions?Start with every account that pays for things: bank accounts and every credit card. A subscription tracker connected to those accounts, or fed their statements, will surface recurring charges you have forgotten. In SpendifiAI you can link accounts or import PDF and CSV statements, and detection runs across all of them.

Why was I still charged after cancelling a subscription?Common reasons are that the cancellation did not complete, the plan was only paused or downgraded, a second account or family member kept it active, or the charge covers a period that started before you cancelled. SpendifiAI flags any charge from a cancelled merchant dated after your cancellation so you can take it up with the company quickly.

Do you still have to pay if you cancel a subscription?Usually you have already paid for the current period, and cancelling stops the next renewal rather than refunding the one in progress. Terms vary by company, so check the merchant’s cancellation policy. What should not happen is a new charge after the renewal date you cancelled before, and that is what a charge-after-cancel alert catches.

How does SpendifiAI know when my next subscription payment is due?It adds one billing cycle to the last charge: a week, a month, three months or a year, depending on the frequency it detected. The upcoming payments carousel sorts those dates, labels bills due within a week, and shows “Expected any day” when a date has passed but the charge has not arrived yet.

What happens to a subscription that stops charging?SpendifiAI flags it as missed once it passes its typical billing interval plus three days, and moves it to Cancelled after one and a half intervals plus three days, which is 48 days for a typical monthly plan. If the merchant is still billing at a new price, the subscription is updated instead of cancelled.



Need software that tracks money this carefully?
-----------------------------------------------

SpendifiAI is built by Parkk Technology. If your business needs detection, reconciliation or a dashboard people actually trust, tell us what you are working with.

[Start the conversation](https://www.parkktech.com/contact/)

---

**Parkk Technology** — Custom Software Development, AI Integration, and Equity Partnerships

- Custom Software Development: We build the software your business actually needs — scoped, shipped, supported.
- AI Integration for Existing Businesses: Add AI capabilities to what you already have — without rebuilding everything.
- Equity Partnership: Considered case by case for validated problems. No fixed package.

Contact: https://www.parkktech.com/contact | Author: Jason Ratzlaff, founder of Parkk Technology