DEV Community

Richard C
Richard C

Posted on

How to catch a subscription price increase in Google Sheets

By Richard C · AIL Studio

A $2 bump on a weekly meal kit looks small on the statement. Put it on a monthly scale and it's about $8.67 more every month, or roughly $104 a year. Merchants rarely email a clear "we're raising your price" note, so the new amount just shows up. This post builds a small Google Sheets check that compares the old price to the new one, converts the hike to a monthly cost, and flags anything that went up.

It works the same way in Excel. No scripts.

Still hunting for the charges themselves? Start with Subscription Audit Lite (free, $0+), a 30-row sheet that totals recurring charges and shows what cancelling would save. Then come back and add the price-change columns below.

1. The columns

One row per subscription. You type the name, the last price you paid, the new price, and the billing cycle. Everything else is a formula.

A B C D E F G H I
Service Old cost New cost Billing cycle Delta ($) Monthly impact % change Flag Keep/Cancel

Example data (made-up subscriptions for illustration, not real charges):

Row A: Service B: Old cost C: New cost D: Cycle
2 Streaming service 15.49 17.99 Monthly
3 Cloud storage 9.99 11.99 Monthly
4 News site 79.00 99.00 Yearly
5 Music app 10.99 10.99 Monthly
6 Fitness app 39.99 49.99 Yearly
7 Meal kit 12.00 14.00 Weekly

Row 5 did not change. Leave it in the list so unchanged plans stay visible next to the ones that moved. Column I is optional: type Keep, Cancel or Review after you decide.

2. A small cycle lookup (so weekly hikes count correctly)

Nested IFs break when you add a cycle. Put the cycles on a Lists sheet instead:

Cycle (A) Payments per year (B)
Weekly 52
Biweekly 26
Monthly 12
Quarterly 4
Every 6 months 2
Yearly 1

Every hike uses the same rule: dollar change × payments per year ÷ 12.

3. Dollar change (E2)

=IF(OR(B2="",C2=""),"",C2-B2)
Enter fullscreen mode Exit fullscreen mode

Positive means the merchant raised the price. Zero means no change. Negative means a cut (rare, but keep the formula honest).

With the example data, E2 is 2.50, E4 is 20.00, and E5 is 0.

4. Monthly impact of the hike (F2)

=IF(E2="","",E2*IFERROR(INDEX(Lists!$B$2:$B$7,MATCH(D2,Lists!$A$2:$A$7,0)),0)/12)
Enter fullscreen mode Exit fullscreen mode

Reading it inside-out:

  • MATCH finds the billing cycle on Lists.
  • INDEX returns payments per year.
  • IFERROR(...,0) stops a blank or mistyped cycle from spraying #N/A down the sheet.
  • Multiply by the dollar change, then divide by 12 to get the monthly hit.

Worked results for the example rows:

Row Delta ($) Monthly impact
2 2.50 2.50
3 2.00 2.00
4 20.00 1.67 (20 × 1 / 12)
5 0.00 0.00
6 10.00 0.83 (10 × 1 / 12)
7 2.00 8.67 (2 × 52 / 12)

The weekly meal kit is the useful surprise: a $2 weekly bump costs more per month than a $20 yearly hike on the news site.

5. Percent change (G2)

=IF(OR(B2="",B2=0,E2=""),"",E2/B2)
Enter fullscreen mode Exit fullscreen mode

Format column G as a percent. Example results: Streaming ≈ 16.1%, Cloud ≈ 20.0%, News ≈ 25.3%, Music = 0%, Fitness = 25.0%, Meal kit ≈ 16.7%.

6. A plain-language flag (H2)

=IF(E2="","",IF(E2>0,"Hike",IF(E2<0,"Cut","Same")))
Enter fullscreen mode Exit fullscreen mode

Optional: only flag hikes above a threshold (for example 10%) by changing the middle test to AND(E2>0,G2>=0.1).

7. Conditional formatting

Select A2:H101 (or just the Flag / Monthly impact columns) and add:

  • Red fill when =$E2>0 (any hike), or tighten it with =AND($E2>0,$G2>=0.1) for 10%+ only.
  • Grey text when =$H2="Same" so unchanged rows fade into the background.

You will see the raised prices without scanning every number.

8. Totals worth reading

Pick empty cells under the table (or a tiny Summary sheet):

Hikes this pass:              =COUNTIF(H2:H7,"Hike")
Monthly cost of those hikes:  =SUMIF(H2:H7,"Hike",F2:F7)
Yearly cost of those hikes:   =SUMIF(H2:H7,"Hike",F2:F7)*12
Enter fullscreen mode Exit fullscreen mode

With the example data that is 5 hikes, about $15.67 more per month, and about $188 more per year if nothing is cancelled.

Add a Keep / Cancel / Review column if you want a savings line the same way:

=SUMIF(I2:I7,"Cancel",F2:F7)
Enter fullscreen mode Exit fullscreen mode

That number is only the increase you would avoid by cancelling, not the full subscription cost. For a full keep-or-cancel audit of the whole bill, use Audit Lite linked above.

9. Where the "old cost" comes from

You need a baseline. Practical options:

  1. Last statement vs this statement. Put last month's (or last cycle's) amount in Old cost and the new charge in New cost.
  2. Email receipts. Search for the merchant plus receipt or invoice and copy the prior amount.
  3. A running tracker. Once you keep a subscription list with a Cost column, copy Cost into Old cost before you type a new amount. That is the habit that makes this check take two minutes next time.

If you do not know the old price, leave Old cost blank. The formulas stay blank instead of inventing a hike.

10. After you flag a hike

Cancelling is a separate step. For each row marked Cancel, cancel in the same place the charge lives (the merchant account, Apple, Google Play or PayPal), then confirm the next statement. Annual plans sometimes need a cancel several days before the renewal date; check the merchant's own page.

Wrap-up

That is the whole check: old vs new, one lookup table, three formula columns, a flag and a couple of totals. Build it from this post in about 15 minutes.

If you want a finished sheet that already normalizes six billing cycles, counts days until renewal (yellow at 30 days, red at 7) and rolls the numbers onto a dashboard, the Subscription Tracker is $1+ (pay what you want) for Excel and Google Sheets. Pair it with Subscription Audit Lite (free, $0+) when you are still listing charges for the first time.

By Richard C · AIL Studio

Top comments (0)