Privacy
How we process your data
When you choose a bank statement, this tab has to read it. That's the whole privacy question.
Detection runs in your browser with a fixed set of rules. The CSV is never uploaded, never stored, and never sent to an AI. Only subscriptions you choose to track are saved.
- Never uploaded
- Runs in this browser
- You review every suggestion
statement.csv to suggestions you review. It runs in this tab. Click to enlarge.What happens to the file
You select a CSV on this device and tell the app which columns are the date, the description, and the amount. The browser reads the file and runs detection in this tab. The statement is never sent to Subscription Pilot, stored, or logged.
Saving tracked subscriptions to your dashboard still needs a connection. Those are only the names, amounts, and billing cycles you chose to keep. The original statement is not among them.
Finding subscriptions without AI
Rows we can't parse, like bad dates or unreadable amounts, are dropped. Descriptions are then cleaned so the same merchant still looks like the same merchant. We lowercase the text, fold accents, strip numbers and punctuation, and keep letters from any language. That's why NETFLIX*1234 POS and Netflix 5678 can be grouped as one vendor.
Similar labels are clustered with string similarity. If two descriptions are nearly identical, they become one group. We then match those groups against a list of more than a thousand known subscription vendors, as whole words, so a name like “chase” doesn't fire inside “purchase.”
The rest of the noise is filtered with pattern rules: ATM withdrawals, transfers, loan payments, fees, refunds, and one-off purchases. That work is deterministic. The same file, run twice, produces the same candidates.
Recurring or not
For each group we look at the gaps between charges. Average gaps that land in a weekly, biweekly, monthly, quarterly, or yearly window get that cycle. If the gaps jump around too much (the variance is high relative to the average), we mark the pattern as inconsistent instead of calling it a stable subscription.
Charges that don't recur are not treated as subscriptions. New or unrecognized vendors still show up for you to review. We don't hide them, and we don't invent a name for them with AI.
You decide what gets saved
Nothing from the import is added to your dashboard until you review it. You can edit or skip every suggestion. Analysis stays in this browser, so a bank statement never has to leave this device.
Try it
Airplane mode, then drop in a CSV. Detection still runs. Saving to your dashboard is the only part that wants Wi-Fi.
Was this useful?