New to OtterLedger? Read the Documentation
45 Guides Available Quick Start Guide
Learn AI Categorization View Guide
Have Questions? Check the FAQ
New to OtterLedger? Read the Documentation
45 Guides Available Quick Start Guide
Learn AI Categorization View Guide
Have Questions? Check the FAQ

Subscriptions

Guide 49: Subscription Tracking

Automatically detect and manage your recurring payments


Overview

OtterLedger can automatically scan your transaction history and detect recurring payments like streaming services, gym memberships, insurance premiums, and utility bills. Detected subscriptions appear on your Dashboard and on a dedicated Subscriptions page where you can review, filter, and manage them.

What you'll learn:

  • How subscription detection works
  • Viewing subscriptions on the Dashboard widget
  • Using the dedicated Subscriptions page
  • Understanding subscription statuses and lifecycle
  • Dismissing subscriptions you don't want to track
  • Filtering and sorting your subscriptions

Time required: 2-3 minutes to review detected subscriptions


Prerequisites

  • At least one account with imported transactions (3+ months of history recommended)
  • Transactions should include recurring payments with consistent payee names

How Detection Works

OtterLedger analyzes your last 12 months of transactions looking for recurring patterns. It does not require any AI configuration or cloud services -- the detection is entirely rule-based and runs locally.

What the Algorithm Looks For

Factor How It's Used
Payee name Groups transactions by normalized payee (e.g., "NETFLIX.COM" and "Netflix" are treated as the same)
Amount consistency Identifies fixed-amount subscriptions (within 5% tolerance) and variable-amount subscriptions like utilities (within 50% tolerance)
Date intervals Measures time between charges to determine frequency
Regularity Checks that intervals are consistent -- sporadic charges are filtered out
Minimum occurrences Requires enough data points to confirm a pattern (e.g., 3+ for monthly, 2+ for quarterly)

Detected Frequencies

Frequency Typical Interval
Weekly Every 5-9 days
Bi-weekly Every 12-16 days
Monthly Every 26-35 days
Quarterly Every 80-100 days
Annual Every 340-395 days

Confidence Score

Each detected subscription receives a confidence score from 0 to 100%. Higher scores mean the pattern is more reliable. Subscriptions with very low confidence (below 50%) are not shown by default.

The score is based on:

  • Number of occurrences (more = higher confidence)
  • Interval regularity (consistent spacing = higher confidence)
  • Amount consistency (same amount each time = higher confidence)

Dashboard Widget

The Subscriptions widget on your Dashboard gives you a quick overview without leaving the main screen.

What It Shows

  • Monthly total -- estimated total of all active subscriptions per month
  • Active count -- how many active subscriptions were detected
  • Top 5 subscriptions -- your most notable recurring charges

Status Indicators

Indicator Meaning
Green Active -- charges are arriving on schedule
Yellow Variable amount -- the subscription amount fluctuates (like a utility bill)
Red Overdue -- a charge was expected but hasn't appeared yet

Actions

  • View All -- opens the full Subscriptions page
  • Dismiss (per subscription) -- hides the subscription from the widget

Subscriptions Page

For a complete view, navigate to the Subscriptions page from the sidebar under Planning.

Accessing the Page

  1. Click Planning in the sidebar navigation
  2. Select Subscriptions

The page automatically runs detection when you open it, ensuring results are current.

Summary Section

At the top of the page you'll see:

Statistic Description
Active Number of subscriptions currently being charged
Paused Subscriptions where a charge was expected but is late
Cancelled Subscriptions that appear to have stopped
Monthly Total Estimated monthly cost of all active subscriptions
Annual Total Estimated yearly cost (monthly total x 12, adjusted for non-monthly frequencies)

Subscription List

Each row in the list shows:

Column Description
Payee The normalized merchant/service name
Amount The typical charge amount (or range for variable subscriptions)
Frequency How often the charge occurs (Monthly, Quarterly, etc.)
Next Expected When the next charge is predicted
Status Active, Paused, or Cancelled
Confidence How confident the detection is in this pattern

Filtering

Use the filter controls at the top of the list:

Filter Options
Status All, Active, Paused, Cancelled
Frequency All, Weekly, Bi-weekly, Monthly, Quarterly, Annual
Type All, Business, Personal

Manual Detection

Click the Detect Now button to force a fresh detection scan. This is useful if you just imported new transactions and want updated results immediately.


Subscription Lifecycle

Subscriptions move through statuses automatically based on whether charges continue arriving:

Active  -->  Paused  -->  Cancelled
  ^            |
  |            v
  +-- (charge arrives) --+

Status Definitions

Status Condition What It Means
Active Charges arriving on schedule The subscription is being billed normally
Paused No charge for 1.5x the expected interval The subscription may have been paused or the charge is late
Cancelled No charge for 3x the expected interval The subscription appears to have been cancelled
Dismissed User chose to dismiss Hidden from all views; will not reappear

Automatic Transitions

  • If a Paused subscription receives a new matching charge, it automatically returns to Active
  • If a Paused subscription goes long enough without a charge (3x the interval), it transitions to Cancelled
  • Dismissed subscriptions never change status -- they stay dismissed permanently

Dismissing Subscriptions

If OtterLedger detects a pattern that isn't actually a subscription (for example, regular grocery trips to the same store), you can dismiss it.

How to Dismiss

  1. Find the subscription on the Dashboard widget or Subscriptions page
  2. Click the Dismiss button on that row
  3. The subscription is immediately hidden

What Dismissal Does

  • The subscription is marked as Dismissed in the database
  • It no longer appears on the Dashboard widget or Subscriptions page
  • Future detection runs will not recreate it (the dismissed record prevents re-detection)
  • Past transactions are not affected

Note: Dismissal is permanent. There is no undo. If you dismiss a subscription by mistake, it will need to be manually removed from the database.


Subscriptions vs. Scheduled Transactions

OtterLedger has two related but distinct features for recurring payments:

Feature Subscriptions Scheduled Transactions
Created by Automatic detection from transaction history Manual setup by user
Purpose Visibility into what you're paying for Automated transaction entry
Action Passive tracking and forecasting Creates transactions on schedule
Amount changes Automatically updates when amounts change Requires manual update
New services Detected automatically after 2-3 charges Must be set up manually

Use Subscriptions to see what recurring charges you have. Use Scheduled Transactions to automate the entry of charges you expect.


When Detection Runs

Trigger What Happens
Open Subscriptions page Auto-runs detection to show current results
After bank import Detection runs to pick up any new patterns from imported transactions
Click "Detect Now" Manual trigger for on-demand refresh
Dashboard widget loads Uses results from last detection run (does not re-run)

Detection typically completes in under a second, even with thousands of transactions.


Tips & Best Practices

  1. Import regularly -- The more transaction history OtterLedger has, the better it can detect patterns. Three months is the minimum for reliable monthly subscription detection.

  2. Review after import -- Check the Subscriptions page after importing new bank data to see if any new subscriptions were detected.

  3. Dismiss non-subscriptions promptly -- If the algorithm picks up a pattern that isn't a subscription (like weekly grocery runs), dismiss it so it doesn't clutter your view.

  4. Use the annual total for budgeting -- The annual total gives you a quick picture of your total subscription spend. Compare this against your budget to see if any services should be cancelled.

  5. Check overdue items -- Red indicators on the dashboard widget highlight subscriptions where a charge was expected but hasn't arrived. This could mean the service was cancelled, or a payment failed.

  6. Variable amounts are normal -- Utility bills, phone bills, and metered services show as variable-amount subscriptions. The amount range shown reflects the min/max of recent charges.


Troubleshooting

Q: No subscriptions detected even though I have recurring charges

A: Check that:

  • You have at least 3 months of transaction history for the account
  • Payee names are reasonably consistent (the algorithm normalizes common variations, but very different names won't match)
  • The charges occur at a regular interval (sporadic charges are filtered out)

Q: A subscription shows the wrong amount

A: The amount shown is based on the most recent charges. If a subscription's price recently changed, the new amount will appear after the next detection run following the new charge.

Q: A subscription is marked as Cancelled but I'm still being charged

A: This can happen if:

  • The payee name changed (e.g., the company rebranded)
  • The charge interval changed (e.g., switched from monthly to annual)
  • Detection hasn't run since the latest charge -- click Detect Now

Q: I see duplicate subscriptions for the same service

A: This can occur if the payee name varies significantly between charges (e.g., "SPOTIFY" vs "Spotify Premium USA"). The normalization catches most variations, but unusual naming can cause splits.

Q: Can I manually add a subscription?

A: Currently, subscriptions are detection-only. To track a recurring payment manually, use Scheduled Transactions (Guide 20).


What's Next?


Need help? Visit the OtterLedger community at github.com/openledger or check the FAQ.