Skip to main content
Subscriptions are the quiet budget-killer of every household. Streaming services nobody watches anymore, a forgotten cloud backup, a free-trial-turned-monthly-charge — they accumulate, and they’re easy to miss because each one is small. Breadbox tracks them under Recurring — the umbrella for any repeating charge, not just subscriptions: mortgage, rent, insurance, utilities, and loans land here too. A series groups the charges from one merchant so you can see the whole thing as one, track what it costs, and act on it in one place. A subscription is just the most familiar kind.
Recurring is in Beta. Find it in the admin dashboard under Recurring (the old /subscriptions URL redirects there), plus the REST API and MCP. The shapes below are stable, but expect the surface to keep growing.

What a series is

A series is a recurring charge pattern. Each one carries:
  • Cadenceweekly, biweekly, monthly, quarterly, semiannual, or annual (plus irregular / unknown for charges that don’t snap cleanly).
  • Expected amount and its iso_currency_code, with an amount tolerance — so a 10.99planthatticksupto10.99 plan that ticks up to 11.99 stays the same series. Never sum expected amounts across currencies.
  • Next expected date — when the next charge is due.
  • Statuscandidate, active, paused, or cancelled.
  • Occurrence count and the detection signals behind it.
Every charge that belongs to the series is linked to it, so the series detail page shows the full history of that subscription at a glance.

Automatic detection

You don’t have to hand-build your subscription list. On each sync, Breadbox’s detector looks for charges that repeat from the same merchant at a regular cadence and proposes them as candidate series. It normalizes merchant names to a stable signature and ignores generic descriptors — transfers, ACH, Venmo/Zelle, bill-pay, refunds, and the like — so one-off payments don’t masquerade as subscriptions. Candidates wait for a verdict. From the Recurring page you can:
  • Confirm — yes, this is a subscription. The series becomes active.
  • Reject (shown as Not recurring) — the rejection is sticky: the detector won’t re-propose it at the same amount band.
  • Pause or Cancel — for subscriptions you’ve stopped or are putting on hold.
A person’s verdict outranks an agent’s. If you confirm a series, a later agent run can’t quietly reject it.

Tag a whole subscription at once

A series can carry its own tags, and every linked charge inherits them automatically — including charges that join later. Tag a series streaming once and all of its past and future transactions pick up that tag, no per-row tagging required. Removing a tag from the series strips only the copies it added; a tag you put on an individual charge by hand survives.

Auto-join future charges with a rule

To make every future charge from a merchant join a series on sync, use the assign_series rule action:
{
  "name": "Spotify → subscription series",
  "conditions": {
    "and": [
      { "field": "merchant_name", "op": "contains", "value": "Spotify" },
      { "field": "amount", "op": "gt", "value": 0 }
    ]
  },
  "actions": [
    { "type": "assign_series", "merchant_key": "spotify", "create_if_missing": true }
  ],
  "trigger": "on_create",
  "stage": "standard"
}
create_if_missing mints the series the first time a matching charge appears; after that, every future charge joins it. Provide series_short_id instead to target a series that already exists.
Applying the subscription rule by itself back-fills your existing charges into the series, not just future ones (see applying a rule retroactively). The bulk “apply all rules” pass doesn’t link series yet, so apply this rule on its own. You can also link a charge by hand or with the assign_series MCP tool.

Working with series from an agent

The same surface is available over MCP, which is how a scheduled reviewer agent can keep your subscription list tidy:
  • list_series (optionally status=candidate) to find series awaiting a verdict, then review_series to confirm, reject, pause, or cancel.
  • get_series to inspect one series and the evidence behind it.
  • assign_series to create a series detection missed, or back-link charges to an existing one.
  • add_series_tag / remove_series_tag to tag a subscription and its members.
See the MCP tools page for the agent-facing summary.

Auditing what you spend

Once your subscriptions are series:
  • See the portfolio. The Recurring page lists every active series with its cadence and expected amount.
  • Total the outflow. Sum the expected amounts of your active monthly series (keep each iso_currency_code separate — don’t mix currencies).
  • Spot creep. A series tracks its last amount against the expected one, so a plan that quietly raised its price stands out.

Deleting a series

Removing a series is non-destructive — its transactions stay exactly where they are and simply lose the series link. Your history is never deleted.
  • Rules — the assign_series action and the full rule DSL.
  • MCP tools — the series tools an agent can call.
  • On-demand analysis — ask Claude “which of my subscriptions are underused?” once they’re tracked.
Last modified on May 31, 2026