The most expensive subscriptions are the ones you forgot about. A streaming trial that quietly converted, an app you used twice, a "premium" tier you meant to cancel last spring: individually small, collectively a real number, and invisible because they blend into a long list of transactions.
This tool reads a year of statement data and pulls the repeaters to the surface, grouping each merchant-and-amount that shows up more than once so you can decide what stays and what goes.
Your data never reaches us
Nifty Utilities has no backend server, database, user accounts, or endpoint capable of receiving your tool inputs. Files and entries are processed inside your browser. We cannot view, capture, or store them.
Normalizing merchant names before grouping
Recurring charges rarely appear with identical descriptions. The same service might post as a clean brand name one month and as that name trailed by an authorization code the next. Before anything can be grouped, the tool normalizes each description, stripping the transaction-type prefixes and trailing numbers that would otherwise scatter one merchant across a dozen distinct-looking rows. Only after that cleanup can identical charges actually line up next to each other.
Grouping by merchant and amount
The finder keys on two things together: the normalized merchant and the exact charge amount. Any combination that occurs two or more times is reported with the merchant name, the typical amount, the number of times it appeared, and the dates it landed on. Pairing merchant with amount is deliberate. A subscription that raised its price partway through the year will surface as two separate groups rather than being averaged into one, which is honest about the price change instead of hiding it.
This matters because not every repeating charge is a subscription, and not every subscription repeats on a tidy calendar. A gym that bills on a slightly different day each month, a cloud storage plan, an insurance premium, and a music service all show the same fingerprint: the same payee, the same amount, again and again. The tool flags repetition; you supply the judgment about which repetitions you still want.
Reading the occurrence dates
The list of dates for each group is where you confirm a pattern. Roughly monthly spacing points to a standard subscription. Two charges three days apart at the same amount might be a coincidence or a billing retry rather than a recurring plan. Quarterly or annual spacing tells you to budget for the next one. Charges that occur only once never appear here at all, which keeps the list focused on commitments rather than one-off purchases.
- Free trials that converted to paid plans without an obvious flag in the description.
- Price increases, which split into a separate group at the new amount.
- Annual renewals, which only show up if your file spans more than a year.
- Duplicate app-store charges for services you thought you canceled.
- Shared family plans billed to your account that another person actually uses.
How to use this tool
Select your bank or card statement CSV and the finder processes it entirely in your browser. It normalizes the descriptions, groups the repeaters, and lists each one with its amount, count, and dates. None of your transactions are uploaded or stored; the analysis runs locally and disappears when you leave. If a merchant column is especially noisy with long authorization strings, running the file through the Bank Statement Cleaner first usually tightens the grouping.
Frequently asked questions
How does the tool decide something is recurring?
It flags any normalized merchant-and-amount that appears in at least two transactions. It does not require a perfectly regular calendar schedule, because real billing dates drift by a few days. Repetition at a steady amount is a reliable signal on its own, and the dates let you confirm the rhythm yourself.
Will it catch a subscription that bills once a year?
Only if your file covers more than one year. An annual charge inside a single-year export appears exactly once and will not be flagged. Combine consecutive years of statements before running the finder, and annual renewals will surface alongside the monthly ones.
Why is a charge missing that I know recurs?
The most common reasons are a mid-year price change, which splits it into two below-threshold groups, or merchant descriptions noisy enough that normalization could not align them. Cleaning the descriptions first, or widening the date range, usually brings the missing charge into view.
Does finding a subscription cancel it?
No. This is a read-only analysis tool. It identifies charges so you can act on them through the provider or your bank; it has no connection to your accounts and cannot change anything.
Important
This tool provides estimates and general-purpose documents, not financial, tax, legal, or professional advice. Verify important results before relying on them.
Support
Problem with this tool or suggestions for improvement? Please email support@niftyutilities.com.