AI-Assisted

By Richard C, AIL Studio

The formulas below were tested in Google Sheets. They were also previously checked in LibreOffice Calc. Excel and spreadsheet UI menu steps were not tested.

Cancelling a subscription is an action. Seeing that the expected charge stopped is a separate check. A confirmation email helps, but it is easy to forget to look at the next statement, especially when the service bills annually.

This small log closes that loop: record when you cancelled, estimate when the next charge would have arrived, then check your statement after a buffer. It does not cancel anything, read your bank account or send alerts. You supply the evidence and decide what needs following up.

1. Give each cancelled service one row

Create a sheet with these headers in row 1:

Column Header What goes here
A Service Your name for the cancelled service
B Cancelled on Date you completed cancellation
C Last charge date Previous charge from your statement
D Cycle Monthly, Yearly or Weekly
E Amount Previous charge amount
F Next charge would have been Formula estimate
G Check on Estimated date plus buffer
H Charged again? Yes/No, entered after checking
I Status Formula
J Confirmation # / notes Reference and what you checked

Keep B and C as real spreadsheet dates, not pasted date-looking text. Format E as currency and F/G as dates. Use a dropdown for D with only the three supported cycles, and another for H with Yes and No; leave H empty until you have checked. Keep confirmation references in J without storing passwords or full payment-card details.

2. Estimate the missed renewal

In F2, enter this formula and fill down:

=IF(C2="","",IF(D2="Monthly",EDATE(C2,1),IF(D2="Yearly",EDATE(C2,12),IF(D2="Weekly",C2+7,"")))) 

Google's EDATE help describes adding months to a starting date and requires a date value or date serial. Monthly means one calendar month, not thirty days; Yearly means twelve months; Weekly adds seven days. A missing last-charge date or unsupported cycle leaves F blank rather than guessing.

This estimates the next date from one previous charge. It is not a prediction of a merchant's actual posting schedule. Check the service's cancellation terms and renewal date, particularly if cancellation takes effect only after a paid period ends.

Put 3 in L1 as an example buffer in days, with “Check buffer (days)” in K1. Pick your own nonnegative whole-number buffer: posting delays vary. In G2, then fill down:

=IF(F2="","",F2+$L$1) 

3. Let the status prompt a manual check

In I2, fill down:

=IF(H2="Yes","Charged after cancel — contact merchant",IF(H2="No","Confirmed stopped",IF(G2="","",IF(TODAY()>=G2,"Check statement now","Waiting")))) 

Google's TODAY documentation says it reflects the current date at the last spreadsheet recalculation. Nothing is pushed to you. Open and review the sheet yourself; this is not a scheduled notification system.

Yes and No take priority over dates. “Confirmed stopped” means you entered No after checking the relevant period; it is not an independent guarantee. An empty H stays Waiting until G arrives, then becomes Check statement now. A blank G leaves the unreviewed status blank: fix missing inputs rather than reading silence as success.

4. Walk through four rows

Example data (not real services or charges). All dates and outcomes below are invented. For this table only, use a fixed as-of date of 2026-11-08 instead of TODAY() so the example stays reproducible. The working formula above still uses TODAY(). L1 is 3.

Service Cancelled on Last charge Cycle Amount F G H I
Example Streaming 2026-10-20 2026-10-01 Monthly 15.00 2026-11-01 2026-11-04 No Confirmed stopped
Example Fitness app 2026-10-25 2026-10-05 Monthly 12.00 2026-11-05 2026-11-08 Yes Charged after cancel — contact merchant
Example Cloud storage 2026-09-20 2025-10-01 Yearly 99.00 2026-10-01 2026-10-04 No Confirmed stopped
Example Meal kit 2026-11-08 2026-11-07 Weekly 9.00 2026-11-14 2026-11-17 blank Waiting

The two No entries represent completed statement checks. The Yes entry needs investigation; the blank entry has not been checked yet. Record the statement period and confirmation reference in J, not just a tick. These example outcomes are not actual cancellation results.

5. Make review dates visible, not automatic

Untested Google Sheets UI instruction, based on Google's linked Help guide (not a verified UI test): Select the status cells, then use Format → Conditional formatting. Add text-equals rules for “Check statement now” and “Charged after cancel — contact merchant”. Use a restrained fill and retain the text so meaning does not depend on color.

Google's formatting guide explains changing a cell's appearance when a condition matches. That is visual formatting when you view the sheet, not a notification. If you want a reminder, manually put G's date into your own calendar. No script or calendar connection is included here.

6. If another charge appears

Check the merchant description, billing period and effective cancellation date first. A final bill, delayed posting or app-store subscription may need a different explanation. Contact the merchant or app store with the confirmation reference and dates, and keep their response in your notes. This log does not promise refunds.

Annual plans, pauses, changing prices and store-managed billing can depart from this estimate. One quiet statement does not prove a service can never charge again. Recheck after a new charge or disputed cancellation; the sheet remains a record, not proof supplied by your bank.

These formulas were tested in Google Sheets with the Example data rows, plus blank-input, unsupported-cycle and status-priority cases. They were also previously checked in LibreOffice Calc with example fixtures, including month-end, blank-input and status-priority cases. Excel was not tested; verify it in your own copy. Some regional settings use semicolons instead of commas between formula arguments and show dates in a different order; adjust the separators and enter dates your spreadsheet recognises as dates. Other regional settings and how a spreadsheet parses typed dates were not tested. Keep the log separate from any ready-made product unless you choose to add it yourself.

Before relying on a blank status, check C and D. The formula does not validate every input: a text date can produce a spreadsheet error, and an unsupported cycle intentionally produces no estimated date. Neither means cancellation succeeded. Likewise, changing H to No immediately changes the status, even before the planned check date. Only type that answer when your statement review supports it. If you discover you checked the wrong period, clear H and correct the notes instead of leaving a reassuring result behind.

If you want a ready-made file for active subscriptions (renewal countdown, dashboard, six billing cycles, room for 100 rows), the Subscription Tracker is a pay-what-you-want .xlsx for Excel and Google Sheets (name your price from $1; not free). Cancelled rows can stay listed without counting in totals. It does not include this cancellation-check log, cancel services for you, or send reminders.