How AI Reads Your Bank Statements to Find Hidden Subscriptions
Not all recurring charges look the same. Here's the pattern-matching logic behind Winnowfi's auto-detection engine — and why it catches what spreadsheets miss.
Why "just check your bank" isn't enough
The traditional advice for finding subscriptions is simple: review your bank statements. But modern subscription charges are deliberately obfuscated. A Netflix charge might appear as "NFLX*XXXX" or "Netflix.com" depending on the card network. A gym membership might show up as the parent company's name rather than the gym brand you know.
Winnowfi's detection engine was built to handle this messy reality.
The three pillars of subscription detection
1. Temporal pattern recognition
The first signal is time. A genuine subscription charge appears on a predictable interval — daily (rare), weekly, monthly, quarterly, semi-annually, or annually. The engine builds a statistical model of your transaction history and flags charges that repeat within a ±3-day variance window. This catches most legitimate subscriptions even when billing dates drift slightly.
2. Merchant normalization
Bank transaction descriptions are notoriously inconsistent. "SPOTIFY USA" and "SPOTIFY*PREMIUM" are the same charge, but a simple string match would miss the relationship. Winnowfi maintains a merchant normalization table that maps thousands of raw bank descriptor variants to canonical service names — so you see "Spotify" rather than "SP*SPOTIFYUSA877."
3. Amount clustering
Subscription prices occasionally change. When a service raises its price by $2, a naive detector would treat the new charge as a separate transaction. Winnowfi uses amount clustering to track charges within a ±15% band over time, recognizing price evolution as continuity rather than a new event.
What makes it hard
The trickiest charges to detect are:
- Annual subscriptions — appearing only once, they look like one-off purchases until a second charge confirms the pattern.
- Usage-based bills — cloud services like AWS or Google Cloud have variable amounts; distinguishing these from true subscriptions requires additional signals.
- Marketplace bundles — when an Amazon or Apple charge contains multiple underlying subscriptions, the engine needs to disaggregate them.
How Winnowfi handles false positives
Not every recurring charge is a subscription you want to track — rent, utilities, and loan payments are also periodic. The engine uses a curated exclusion list of known non-subscription merchants, combined with a confidence score. Charges below the confidence threshold are surfaced as "possible subscriptions" for you to confirm, rather than added automatically.
Privacy first
Winnowfi connects to your bank via Plaid, which uses read-only access — we can see transactions but cannot move money. All transaction data is encrypted at rest and in transit. We never sell your financial data to third parties. Full details are in our Privacy Policy.
David Miranda
Founder & CEO
David built WinnowFi to solve a problem he lived — hidden subscriptions, surprise charges, and budget chaos. 20% of every dollar WinnowFi earns goes to autism research. Learn more →
Stop paying for subscriptions you forgot about.
WinnowFi automatically finds every recurring charge in your bank account — free to start, no credit card required.
More from the blog
The Complete Guide to Canceling Subscriptions (Without Getting Trapped)
March 28, 2026 · 8 min read
The $273-a-Month Problem: How Subscription Fatigue Is Draining Americans
May 20, 2026 · 6 min read
10 Subscriptions You've Probably Forgotten About (And How to Cancel Each)
May 8, 2026 · 8 min read