Free tools

Gym membership: pay yearly or monthly

The same gym, two price tags. This calculator totals both over the months the membership would actually be used — with the annual side paying one whole payment for every year or part-year started, because that is the real shape of the deal when the going stops in month seven. The break-even month is stated as a fact, the month-by-month table shows the crossings, and no winner is declared.

The two prices
For the same membership
$
$
months

A part-year still costs a whole annual payment

Over 12 months
Paying yearly
all-up
Paying monthly
all-up
Enter a price for each

Put in the monthly price and the yearly price for the same thing. Nothing here is read from your accounts, and nothing is saved.

The breakdown
YearlyMonthly
One payment
Payments over the period
Total over 12 months
Works out per month
Month by month

This is one of the tools built into Keep Above

Keep Above is a budgeting app where you enter your bills and income and it works out the balance you need to keep — so you can see what's safe to spend. No bank connection, no ads on your data.

Download on the App Store Get it on Google Play

About this calculator

Why does a part-year cost a whole annual payment?

Because that is how annual billing works: month 13 triggers a full second year, and a membership used for seven months still cost the whole annual price. Pro-rating would smooth away exactly the lumpiness this comparison exists to show; the month-by-month table makes each renewal's jump visible.

What does the months field do here?

It sets how long the membership would actually be used, which is where the two prices pull apart. The totals, the break-even month and the table all run over that span — and the annual side is charged a whole payment for every year or part-year inside it. What that number would be for any particular person is theirs to estimate; the page only does the arithmetic on it.

Why do the per-month figures show cents?

Rounding $119 a year to $10 a month beside a $10 monthly price would destroy the exact comparison the page exists for, so the per-month row keeps two decimals while everything else stays whole.