Skip to main content
Skip to content
← All articles

Budgeting & Features

How Compound Detects Subscriptions

The Subscriptions page shows every charge that repeats on a rhythm — streaming services, gym memberships, insurance, domain renewals. Compound finds them by pattern, not by a fixed merchant list.

What Gets Detected

  • Monthly — a merchant that appears in 3 or more of the last 6 months. Amount can drift (Netflix bumping $14.99 → $15.49 still counts).
  • Quarterly — a merchant with the same dollar amount appearing in two months that are 2–4 months apart. Catches Costco renewals, insurance, domain bills.
  • Weekly / biweekly — when you mark a merchant as recurring manually with a sub-monthly cadence.

Detection needs at least 3 months of transaction history to spot most patterns. If you just connected a bank, expect the list to fill in over a few weeks.

Sharper Detection on Compound Plus

On Compound Plus, Compound additionally reads your bank's own recurring-payments stream through Plaid — exact next-charge dates and amounts, first-charge catches for brand-new subscriptions, and bank-confirmed cancellation signals — layered on top of the pattern engine described above. Base plans use the pattern engine alone.

Price-Hike Flagging

When the most recent month's average charge for a subscription is 10% AND $1+ above the median of the prior five months, the row gets a price-change badge so you can decide to downgrade, cancel, or accept it. The top of the page rolls these up into a “Found money” total.

“Possibly cancelled” flagging

If a subscription hasn't charged within roughly 1.5× its normal cadence, Compound marks it stale — likely cancelled. Stale subs are excluded from your monthly total but stay on the list so you can restore them if they were just delayed.

Fixing Detection

  • Wrong merchant flagged? Hit Exclude to remove it from the list permanently.
  • Real subscription missing? Find it under “Other recent merchants” and hit Include.
  • Wrong cadence? Use the frequency dropdown on each row — your override sticks across future re-detection runs.

More in Budgeting & Features

Didn't answer your question?

Contact support →