WWebBuddyMarketplace
Using Subsweep

Adding and detecting subscriptions

Every way to get subscriptions into Subsweep, how the detection engine groups, scores and flags charges, and how to review what it finds.

7 min readUpdated Oct 17, 2026Applies to Subsweep 0.1.0

On this page

A workspace's list is built from sources. Some sources create subscriptions directly (manual add, quick add, UPI mandates). Others bring in charges, which the detection engine turns into subscriptions (statements, bank feeds, email receipts).

Sources at a glance

Source Plan What it does
Add by hand All One subscription with vendor, amount, currency, cycle, next charge, payment method, owner and notes
Quick-add checklist All Tick from 48 common tools with default monthly prices you can edit first
UPI Autopay mandate All A form for copying a mandate from a UPI app: payee, amount, frequency, next debit date
Statement upload All CSV, TXT, XLSX or text-layer PDF, up to 10 MB, one file at a time
Bank feed Pro Plaid for US and Canadian workspaces; see Integrations for the UK, EU and India
Email receipts Pro Gmail or Outlook, read-only

The Sources screen shows each connected source with its status and last sync, and lets Editors disconnect it. The cards offered depend on the workspace country: a workspace in India sees statements, email and manual add (with a UPI link) rather than a bank card.

On the Free plan, adding by hand or with quick add stops at 10 subscriptions. See Plans.

Adding by hand

Add subscription opens a form with:

  • Vendor, with suggestions from the 48 quick-add tools (free text is fine for anything else). A name that matches the vendor catalogue picks up its logo, category and cancel link.
  • Amount and currency (USD, CAD, GBP, EUR or INR).
  • Cycle: weekly, monthly, quarterly, yearly or a custom number of days.
  • Next charge date (one cycle from today if you leave it), payment method, owner and notes.

Hand-added subscriptions show a Manual source badge, get renewal reminders, and a day after each expected charge the hourly job asks "Did this vendor charge you?" (see Renewals and alerts).

Statement upload

Upload from Sources or the scanning screen. Accepted:

Format Notes
CSV or TXT Columns are recognised automatically when they can be. Otherwise a column mapper asks which columns hold the date, description, amount and currency.
XLSX Read by a built-in reader and treated like CSV.
PDF Must have a text layer. Scanned image PDFs are refused with a message asking for a CSV; there is no OCR. Password-protected PDFs prompt for the password, which is used for that request only and never stored.

Statements from HDFC, ICICI, SBI, Axis, Kotak and Yes Bank are recognised, and Relay PDF statements have a dedicated parser. Other banks go through the generic parsers.

Each row is fingerprinted (description, amount and date), so uploading the same month twice does not duplicate anything. A statement with no transactions in it gets a clear message rather than an empty result.

Bank feeds

With Plaid configured, Connect bank opens Plaid Link. On success, Subsweep imports up to 12 months of transactions, runs detection and shows the scanning screen. After that, the hourly job pulls the last 48 hours for every active bank source and re-runs detection.

If a sync fails, the source is marked Needs to be reconnected and shows a Reconnect button.

Disconnecting a bank or email source deletes the transactions it brought in, wipes its stored credentials, and marks the subscriptions it created as source removed with reminders off. Subscriptions you added by hand are kept. Disconnecting the same source a second time removes it from the list. Disconnecting a statement removes it straight away.

Email receipts

Scan email connects Gmail or Outlook with read-only access, then reads receipts straight away:

  • Gmail searches subjects such as receipt, invoice, tax invoice, GST, renewal, your subscription, pre-debit, autopay, mandate and payment confirmation from the last 365 days, and reads up to 80 of the newest matches.
  • Outlook runs a similar keyword search and reads up to 80 results.

For each message, the vendor is found from the sender's domain or the catalogue, and the amount from the text near "total", "amount" or "charged". Each receipt becomes a charge, and the detection engine does the rest. Email is scanned when you connect or press scan again, not by the hourly job.

Note

Not in this version yet: automatic re-scans, and token refresh. A scan more than about an hour after connecting quietly finds nothing new, because the stored access token has expired; reconnect the mailbox to scan again. See Known limitations.

How detection works

Detection runs after every upload, scan, bank sync and hourly job. It is deterministic rules, with no AI.

1. Clean up merchant names

Each description is matched against the vendor catalogue (534 vendors in 25 categories, each with descriptor patterns) and the workspace's own corrections. Processor prefixes such as PayPal, Square, Google, Amazon, Razorpay, PayU, Cashfree and Paytm are stripped. Everyday consumer spending, transfers and bank fees are ignored. A merchant that is not in the catalogue is only kept when every charge looks like an online service (a domain, a NAME* processor descriptor or a standing instruction).

2. Group and find the cycle

Charges are grouped by vendor (or cleaned name) and split when amounts differ by more than 15% from the group's median, so a monthly plan and one-off purchases from the same vendor stay apart. A tiny or zero charge just before the first full charge is treated as a trial and kept with its plan.

Cycle Median gap between charges
Weekly 6 to 8 days
Monthly 27 to 34 days
Quarterly 85 to 96 days
Yearly 355 to 375 days
Custom Any steady gap (all within 10%) across 3 or more charges

A single charge is only kept when it comes from a catalogue vendor and is no more than 45 days old.

3. Score confidence

Signal Points
Known catalogue vendor +0.4
Not in the catalogue, but looks like an online service +0.3
3 or more charges on a steady cycle +0.3
2 charges on a steady cycle +0.2
Amounts vary by less than 5% +0.1
Charges land on the same day of the month, within 2 days +0.1
Amounts vary by more than 10% -0.2
Score Result
0.7 or more Added as a subscription
0.4 to 0.69 Added and marked Needs review
Below 0.4 Ignored for now, and re-evaluated on the next run

The amount is the latest charge, and the next charge date is the last charge plus one cycle.

4. Raise flags

Flag When Estimated saving
Duplicate Two or more active tools in the same overlap-prone category: video conferencing, note-taking, design, email marketing, CRM, storage, scheduling, project management, password management, e-signature or forms The cheaper tool's monthly cost
Price change The latest charge differs from the one before by more than 5% or more than 2.00 in its currency None for an increase; the difference for a decrease
Trial converted The first charge was at most a tenth of the second, 3 to 35 days earlier The monthly cost

Each flag has a one-sentence explanation. The engine also defines an unused seats flag, but no seat data reaches it in 0.1.0, so it is never raised. The estimated monthly savings figure adds up the flags on active subscriptions that are not tagged Keep, counting each overlapping pair once.

Important

Flags come from charges. A subscription that was only ever added by hand, with no matching charges from a statement, bank or email, is never flagged, even if it overlaps with another tool. Category benchmarks ("businesses your size spend...") are not in this version.

Reviewing the list

The Subscriptions screen has search, Keep / Unsure / Cancel filter chips with counts, a flagged-only filter, owner and category filters, and sorting by next charge, amount or vendor. A progress strip shows how many items have been reviewed. Clicking a row opens the detail panel.

Action What it does
Tag Keep / Unsure / Cancel Every subscription starts as Unsure. Keep removes it from the savings estimate but keeps its flags visible. Cancel moves it to the Actions queue with the cancellation help. Tagging clears Needs review.
Edit amount, cycle or next charge Your values win from then on: later detection runs leave those fields alone.
Dismiss "Not a subscription." It leaves the list and stays dismissed when detection runs again.
Merge Moves one item's charges and flags onto another (the same vendor billed from two cards, for example).
Delete Removes it and its charges, after a confirmation.

There are no bulk actions in this version, and no button to silence a single flag (such as "both tools are needed").

Currencies

Each subscription keeps the currency it is billed in. Totals, the savings figure and charts are converted to the workspace's base currency, using live rates when OPEN_EXCHANGE_RATES_APP_ID is set and fixed fallback rates otherwise. Changing the base currency under Settings → Organization also converts recorded savings. When the workspace shows amounts in INR, the detail panel adds a GST included line calculated as a flat 18% of the amount. It is an estimate, not a figure read from an invoice.