Skip to content
All articles

Household money

Find recurring subscriptions in bank statements, including annual charges

An annual renewal or a trial that turned paid can slip past a monthly statement review. Look through at least 13 continuous months for possible subscriptions, then check receipts and the subscription account: repeated charges alone don't tell you what you signed up for.

By AnyStatement

Published , 9 min read

Contents
  1. Your bank may have already made a starting list
  2. Twelve statements can still miss the annual pattern
  3. Group the business, but keep what the statement actually said
  4. Try it with these eight fictional charges
  5. Let formulas flag the timing, not make the decision
  6. Check changing prices and charges that appear only once
  7. A cancellation request needs a follow-up date
  8. Keep a short list of decisions and open questions

If your bank already shows recurring charges, use that as a starting list. The worksheet below helps you find other patterns and follow up on cancellations; it doesn't decide whether a charge was authorized, whether a contract ended, or whether you're owed a refund. Take those questions to the merchant or your bank or card issuer. The consumer-rights guidance below is for the United States.

Your bank may have already made a starting list

Before assembling a spreadsheet, look in your bank or card app for recurring payments or stored cards. As one example, the undated Chase for Business Stored cards instructions say to select your credit card in the Chase Mobile app, go to Account Services, and tap Stored cards. Select a business to review repeating charges or changes to your normal charge. This documents one bank's feature, not availability for every Chase card or every bank.

Use the list alongside transaction history rather than treating it as your entire household's subscriptions. Chase's page describes a view for the selected card; it doesn't promise a complete inventory across your accounts. Check the other cards and bank accounts you actually use, too. You don't need to connect them to another service to do this review.

Twelve statements can still miss the annual pattern

A January-to-December export contains only one January renewal. To compare it with the next one, you need history extending into the following January. Aim for at least 13 continuous months, and use a wider window when available so charges near the boundaries aren't your only evidence. This is a practical review window, not a guarantee that every subscription will appear twice.

Record each account's actual start and end dates before combining files. The statement coverage checker can help you inspect that list for gaps and overlaps. Don't fill a missing month with a copy of the previous charge: that would turn an expectation into a transaction that never appeared in your evidence.

Keep an untouched export and make a working sheet of posted purchases and withdrawals. Leave refunds, reversals, transfers, and credit-card bill payments separately identified so they don't become subscription candidates. Compare the working rows with the originals before removing any overlap. Keep totals separate by account and currency; adding USD and EUR amounts produces a number with no useful meaning here.

Group the business, but keep what the statement actually said

Your working sheet needs the posted date, an account alias, currency, original description, charge amount, a review group, and a source reference. Use positive amounts for the charges in this worksheet, after checking how your export represents money out. Leave the original signed amounts in the untouched file.

Give descriptions the same group only after you've checked receipts or the merchant account. A shared payment-processor name isn't enough to combine two purchases. Conversely, when receipts connect two different descriptions to the same subscription, you can give them one group without overwriting either description. Use plain labels such as MUSIC or ARCHIVE, and split distinct subscriptions at the same merchant if your invoices distinguish them.

Keep the amount out of the group key. Otherwise, a price change would split one service into two groups and hide the sequence you're trying to inspect. If you can't identify a charge, leave it unresolved rather than assigning it to a familiar business because the price happens to match.

If you requested cancellation, enter that date in CancelRequested on every row for the service, including later charges you add to the sheet. The check below reads each row's request date; a blank cell won't flag a later charge. Keep the merchant's confirmation and any effective end date in your notes, separate from the request date.

Try it with these eight fictional charges

This is a synthetic example, not customer data or a complete account statement. It contains selected charges from January 2025 through March 2026. In this fictional review, receipts connect both music descriptions to one service, and a cancellation request was recorded on February 20, 2026. The request date is not a confirmed contract-end date.

Copy the CSV into a text file and import it into Excel starting at A1. Columns A and G must contain real spreadsheet dates, column E numeric amounts, and the empty cancellation cells must stay empty. If the import leaves dates as text, fix that before calculating: date formatting alone isn't a conversion. Keep the source references when using your own data so you can return to the statement row.

PostedDate,Account,Currency,OriginalDescription,Charge,Group,CancelRequested,Source
2025-01-10,CardA,USD,FICTIONAL ARCHIVE,99.00,ARCHIVE,,2025-01 p2 r1
2026-01-10,CardA,USD,FICTIONAL ARCHIVE,99.00,ARCHIVE,,2026-01 p2 r3
2026-01-07,CardA,USD,FICTIONAL GROCER,46.25,GROCER,,2026-01 p2 r2
2026-01-20,CardA,USD,FICTIONAL GROCER,63.80,GROCER,,2026-01 p2 r4
2026-03-09,CardA,USD,FICTIONAL GROCER,28.15,GROCER,,2026-03 p2 r2
2026-01-05,CardA,USD,FICTIONAL MUSIC,12.00,MUSIC,2026-02-20,2026-01 p2 r1
2026-02-05,CardA,USD,FICTIONAL MUSIC MONTHLY,12.00,MUSIC,2026-02-20,2026-02 p2 r1
2026-03-05,CardA,USD,FICTIONAL MUSIC,12.00,MUSIC,2026-02-20,2026-03 p2 r1
Verified totals and timing for the fictional USD charges
GroupChargesGapsReview result
ARCHIVE2 × $99 = $198365 daysAnnual candidate
GROCER$46.25 + $63.80 + $28.15 = $138.2013, 48 daysNot confirmed as a subscription
MUSIC3 × $12 = $3631, 28 daysMonthly candidate; March charge needs follow-up
CardA / USD total$372.20Selected rows onlyNot a savings estimate

Two annual charges establish only that two charges occurred a year apart. They might represent automatic renewals, separately authorized purchases, or a subscription since canceled. You still need the account's current renewal setting and supporting receipts. The three grocery purchases also repeat at one business, but repetition alone doesn't tell you how the purchases were arranged.

Let formulas flag the timing, not make the decision

Sort the whole data range by Account, Currency, Group, then PostedDate from oldest to newest. The example is already in that order. Sorting only the date column would detach dates from their charges, so include every column. These formulas compare adjacent rows within a group and depend on that order.

Add the headings Count, GapDays, Timing, and CancellationCheck in I1 through L1. Enter each formula below in its named cell, then fill I2:L2 down through row 9. For a longer file, replace every $9 in the count formula with the last data-row number before filling down.

I2
=COUNTIFS($B$2:$B$9,B2,$C$2:$C$9,C2,$F$2:$F$9,F2)

J2
=IF(AND(B2=B1,C2=C1,F2=F1),A2-A1,"")

K2
=IF(J2="","First seen",IF(AND(J2>=26,J2<=35),"Monthly candidate",IF(AND(J2>=350,J2<=380),"Annual candidate","Review timing")))

L2
=IF(AND(ISNUMBER(G2),A2>G2),"After cancellation request","")

Microsoft documents COUNTIFS as counting rows where all the supplied criteria match. Here those criteria are account, currency, and group, not amount. Give every row a nonblank account, currency, and group. Use plain alphanumeric account and group labels because COUNTIFS treats asterisks and question marks as wildcards. Keep those characters in the original description, where they belong.

The 26-to-35-day and 350-to-380-day windows are deliberately loose review choices, not bank rules. In this example, J8 and J9 return 31 and 28; J3 returns 365. K8 and K9 say Monthly candidate, K3 says Annual candidate, and only L9 says After cancellation request. Same-day cancellation and charge activity needs manual review because this date-only check flags strictly later dates.

Filter for the candidates, but also look at First seen and Review timing. A weekly or quarterly service won't fit these windows, and neither will every delayed or skipped payment. If you moved a subscription to another card, review both account groups together: these formulas deliberately keep them separate. They reduce the reading, not the need to check.

If you'd rather start with a candidate list than build the formulas, try the recurring charge finder. Keep the same receipt and account checks; a timing match still isn't a confirmed subscription.

Check changing prices and charges that appear only once

Within each group, compare amounts beside the dates. If a charge changes but the receipts still identify the same service, keep the sequence together and check the invoice for the explanation. Don't automatically treat the difference as an error, and don't discard it just because the timing looks regular.

A trial that has just become paid may have only one charge, so it needs a different clue: the signup email, the trial-end date, or the subscription account. The FTC's March 24, 2026 explanation of negative options includes free trials that automatically convert to paid subscriptions. Search your records for the offer and compare its terms with the charge; don't invent a zero-dollar transaction to represent a free period missing from the statement.

Give every reviewed group a plain outcome: confirmed subscription, other regular bill, ordinary purchases, or unresolved. Use the invoice or agreement to distinguish a utility bill or installment purchase from a subscription you're considering canceling. A monthly payment schedule doesn't tell you which it is. Record what you want to keep as well as what you want to cancel; finding a charge isn't a reason to stop a service you use.

A cancellation request needs a follow-up date

When you cancel, save the request, confirmation, any stated effective date, and the next renewal date shown by the merchant. The FTC's guidance on stopping unwanted subscriptions recommends following the company's cancellation instructions, keeping a copy and conversation notes, and watching later bank or card statements. A statement review log gives you somewhere to keep the unresolved charge and the next action together.

In the example, the March 5 charge is $12 and falls after the February 20 request. Keep it as an exception to investigate with the merchant or issuer, not proof of wrongdoing. Ask which billing period it covers and compare the response with the confirmation. If the merchant promises a refund, keep that separate from a credit that has actually posted.

To check whether cancellation worked, revisit the merchant account and examine activity through the expected next billing date and the statement that includes it. Record the last date you checked and whether another charge appeared. For an annual plan, a quiet month tells you little about the next annual renewal. Even a clean follow-up statement supports only “no further charge observed through this date,” not a guarantee about the future.

If charges continue after you tried to cancel, the FTC guidance directs you to dispute them with your card issuer and follow up in writing. Don't wait for this annual audit if you spot a possible billing error now. For US credit-card billing errors, the FTC's May 2022 dispute guide says your written notice must reach the billing-inquiries address within 60 days after the first bill containing the error was sent to you to use that federal process. That isn't a universal debit-card deadline. Contact your issuer promptly for the process that applies to your payment method; suspected unauthorized activity shouldn't wait for another statement.

Be careful with old “click-to-cancel” headlines. The FTC's February 12, 2026 final rule says it restored the pre-2024 Negative Option Rule, effective February 12, 2026, after the court vacated the 2024 amendments. The FTC's March 24, 2026 post described an inquiry into possible amendments, not a replacement final rule. These dated sources don't establish which cancellation rules apply to your subscription today.

Keep a short list of decisions and open questions

For each service, write down whether you'll keep it, check the account, request cancellation, or follow up on a later charge. Add a date to check again so an unresolved charge doesn't disappear into the spreadsheet. If you're helping a parent or partner, share that short list rather than their entire transaction history. Use account aliases and leave full account numbers out of the shared copy.

Native CSV exports are the first choice for a longer review. If older history exists only as PDFs, you can combine suitable statement tables in Excel or use AnyStatement to convert the PDFs. Either way, check the extracted rows against the originals before running the formulas. Conversion gets you rows, not a verified subscription list.

We checked the linked FTC, Chase, and Microsoft sources on October 17, 2026. We verified the fictional amounts with Python Decimal and tested equivalent logic for the formulas, including timing boundaries and separate accounts and currencies. We didn't run the sheet in Excel, sign in to a live Chase account, or test a real cancellation. The $372.20 is simply the total of the eight selected charges, not money this review promises to recover or save.