Annual pricing discounts: how 42 SaaS products label the saving
We compared every annual pricing discount label in 308 SaaS paywalls: percent vs months free vs dollars, the 21% median, and labels that don't match the maths.
Of the 308 SaaS paywalls in our library, 89 put a saving label on the annual plan, and 79% of those labels are a percentage. The median annual pricing discount per product is 21%, but the label and the prices next to it often disagree: Bubble promises "up to 20%" on a page where no card reaches 20, and Any.do badges a 38% saving as "50% OFF".
We pulled every annual-discount label from the paywalls wall: 308 screens from 89 products. Here is how products phrase the saving, how large it is, which period they preselect, and what they stack on top.
The annual pricing discount, by label style
51 of the 89 products show a monthly/yearly toggle somewhere, across 103 screens. 42 products attach a saving label to the annual option on at least one screen. The copy falls into five styles, plus two ways of showing a saving without a label:
| Label style | Example copy (as captured) | Screens | Products |
|---|---|---|---|
| Flat percentage | "Save 20%", "50% OFF", "-21%" | 52 | 27 |
| "Up to" percentage | "Save up to 51%", "save up to 20%" | 18 | 8 |
| Months free | "2 months free", "12 MONTHS FOR THE PRICE OF 8" | 11 | 5 |
| Dollar amount | "SAVE $84", "Save Up To $240" | 7 | 4 |
| Bonus credits | "Go yearly and unlock 100,000 free credits!" | 1 | 1 |
| Toggle, no saving stated anywhere | "$79/mo (billed yearly)" | 18 | 12 |
| Struck-through price (overlaps the rows above) | $35 struck beside "$28/month" | 35 | 22 |
Percentages win by a wide margin: 34 of the 42 labelled products use one somewhere. Months-free copy is used by ElevenLabs, GitBook, Lovable, Lucidchart and Softr; Runway and Toggl add it as a second line. Dollar amounts are rare and show up where the number is flattering, like Kittl's "Save Up To $240".
The median is 21%, and 20% is the house number
Taking the largest percentage each product shows, the median across 34 products is 21%. 20% is by far the most common figure, used by 12 products; 33% and 50% come next with four each.
The low end is 10%, at Cloudinary and Dub. Cloudinary strikes $99 to $89 with an orange "Save 10%" tag on each paid card. Dub skips the word save entirely: its Yearly chip reads "10% discount + 12x usage upfront", selling the annual plan as getting a year of usage at once.
The high end is VEED, whose plan modal sits on "Pay yearly" with a green "Save up to 51%" beside the toggle, showing only billed-annually prices ($12, $22, $39 per user per month). Krea, Taskade, Any.do and Dribbble all reach 50%. Taskade's is easy to check because every card prints both buttons, "Pay yearly $120" over "Pay monthly $20" (see screen).
When the label and the maths disagree
We checked the label against the printed prices on 14 products where both billing periods are visible. Five matched exactly: ElevenLabs ("save 2 months", $22 to $18.33), Cloudinary (10% on all three cards), Workflowy (22%, $8.99 to $6.99), Jitter ("-21%", £228 to £180) and Taskade (50%). The other nine drift, in both directions.

Labels that promise more than the cards deliver:
- Bubble: "save up to 20%", with a best card of 18% ($39 to $32).
- Fillout: a green "Save 20%" chip, while its struck yearly totals work out to 21% ($228 to $180), 18% ($588 to $480) and 16% ($1068 to $900).
- Toggl: "Yearly • Save 33%", but Starter's $12 to $9 is 25%. Its own card chip, "GET 3 MONTHS FREE", is the accurate one.
- Kapwing: "SAVE 33%" on the Annual pill. Pro is 33% ($24 to $16); Business is 22% ($64 to $50).
- Any.do: "50% OFF - MOST POPULAR" on 12 months at $4.99/mo, directly under 1 month at $7.99/mo. That is 38%.

And labels that undersell:
- Lucidchart: "12 MONTHS FOR THE PRICE OF 8" on $9/month yearly versus $15 monthly. $108 a year is 7.2 months of monthly billing, a 40% saving.
- Runway: "2 months free" (about 17%) under a struck $35 and $28/month, which is 20%. The "SAVE $84" tab above it is 2.4 months.
- Softr: "2 months off" fits Pro ($119 to $99) and Business ($395 to $329), but Basic drops from $25 to $19, a 24% cut.
Saying nothing at all
12 of the 51 toggle products never state a saving on any screen we captured. Canny shows Pro at "$79/mo (billed yearly)" and $99/mo on Pay Monthly, a 20% gap it never names. Bolt strikes the monthly-billed total ("$216 $300 / year") but adds no word or percentage. Whimsical gives each card its own "Annual billing" switch and no saving figure.

Struck monthly prices vs struck yearly totals
35 screens from 22 products strike a price, and 30 of those also carry a label. Most strike the monthly price beside the per-month annual one (Runway, Kapwing, Krea, ElevenLabs, Cloudinary, Toggl). Three strike the yearly total instead, which matches what the card is charged: Fillout ("$228 $180 billed annually"), Bolt ($216 against a struck $300) and Jitter (£180 over a struck £228, itemised as "£15 × 1 editor × 12 months").

Kapwing does both jobs on one card: "Total due today: 192 USD" and "Saving $96 compared to monthly Pro plan" (see screen).
Which billing period is preselected
For 18 products we captured a toggle in both states, so we know which one the page opened on. It is close to even: 10 opened on monthly (Bubble, Cloudinary, Descript, Glide, WeWeb, Softr, ElevenLabs, Lovable, Superlist, Voiceflow) and 8 on yearly (Hygraph, Plasmic, Smartsheet, Spline, StackBlitz, Clockify, Canny, Taskade).
The pattern is sharper in single-plan checkout modals that use radio cards instead of a toggle over a grid. Runway, Lucidchart, Workflowy, StackBlitz and Any.do all had the yearly option already selected.

Urgency stacked on the discount
A few products add a deadline. Krea ends onboarding on a yearly-preselected offer with an "Offer ends in" countdown and "up to 40% off Krea Pro". Press Skip and a second modal, tagged "One last offer", raises it to 50% with a fresh timer.

- Kittl puts a "20% OFF With promo code KITTL" tile beside an hours/minutes/seconds timer, while Monthly stays preselected and the Annual tab carries "Save Up To $240" (see screen).
- Jotform greets with "Welcome to Jotform! TODAY ONLY SAVE 50%" and an "Offer Expires In" ring countdown over struck prices ($39 to $19.50/month, billed annually at $234).
- Medium runs a "Welcome Offer": Member is $60 struck to a highlighted "$35 for 1 year", with "then $50/year" right below.
Krea and Medium discount the first year only; Medium at least prints the renewal price on the card.
Credits: a second discount next to the toggle
Several AI products price inside each tier with a credit selector that carries its own discount. Lovable's Pro dropdown runs from 100 credits at $25/mo to 5,000 at $1125/mo, with "Save 2%" to "Save 10%" tags, next to a Yearly tab promising "2 months free". Make prices Pro per 1K credits, from $2.10 at 120,000 credits a year down to $1.48 at 960,000 ("Save 30%"), which is double the "Save up to 15%" on its yearly toggle. Krea's Max card uses a 40k to 100k slider.

What to steal
- Make the label true on every card. If tiers differ, say "up to", and make sure the top number appears on a card.
- Do the maths on months-free copy. "2 months free" means 16.7%; Runway and Lucidchart give more than they claim.
- Name a real gap. Canny (20%) and StackBlitz (28%) leave meaningful savings unsaid.
- Show the bill. Kapwing's "Total due today" plus "Saving $96" answers both questions in two lines.
- Preselect yearly in single-plan modals, but keep monthly visible. Every radio-card checkout we saw did this.
- Put the renewal price next to any first-year or timed offer, as Medium does.
- Decide which discount leads. If credit volume saves more than billing annually (Make), the yearly chip stops being the headline.
How we counted
Screens were captured in desktop browsers with research accounts in September and October 2026. A vision model recorded each screen's attributes, including the annual-discount label as printed, and they can be checked on each screen's page. Percentages use the largest figure in a label, so "up to" counts at its ceiling; products can appear under more than one style. The label-versus-price checks were done by hand where both billing periods were visible. Prices and offers change and some are personalised: this is what we saw, not A/B test results, and we have no conversion data.
To pull these into your own work, connect the Screenrove MCP server and ask your agent for annual toggles with struck-through prices, or browse every plan picker on the wall.