← Back to all hacks
Level 1 · Foundations

Annual plan: promote it in your side bar

This playbook is about turning a dead space--your app's side navigation bar--into a gentle, persistent sales machine. Instead of relying on one-off emails, you'll add a permanent call-to-action (CTA) that nudges users on free or monthly plans to upgrade to annual. It's a simple UI change that keeps the higher-value plan top-of-mind, boosting cash flow and lifetime value without annoying your users.

Effort
Low
Cost
Zero
Time to first result
1-2 weeks
Best for
SaaS, Apps, Memberships
Save this playbook

Save this strategy and send it to my inbox

Get the full playbook - scripts, tool stack and checklist - delivered as a single email you can act on today.

No spam. One email, and only what is worth reading.

Illustration of a SaaS app interface with a glowing 'Upgrade to Annual' button in the side navigation bar.
A simple, persistent CTA in your app's navigation can be your best salesperson.

Why A Sidebar CTA Is A Foundational Tactic

It works because of repetition and the mere-exposure effect. Your users see the 'Upgrade' or 'Get 2 Months Free' link every single time they navigate your app. This isn't a disruptive popup or an easily-ignored email; it's a constant, quiet reminder of the value available to them. This visibility normalizes the annual plan, shifting it from a big decision to a natural next step in their product journey.

This tactic directly improves your most important SaaS metrics. It increases upfront cash flow, a huge win for any startup. It also directly boosts Annual Recurring Revenue (ARR) and Customer Lifetime Value (LTV) by locking in customers for a full year. For the user, it's a clear win too--they get a discount, a simplified billing experience, and uninterrupted access to the features they value.

Three real examples

SaaSTrusted by 21M+ users

Loom highlights '20% off'

Video messaging tool Loom places a clear 'Upgrade' button in its sidebar. This leads directly to a pricing page where the annual plan's 20% discount is the first and most prominent offer. They don't just show the button; they sell the tangible saving, making the decision to upgrade a financial no-brainer.

Source: Loom Pricing
Productivity SaaSUsed by millions

Notion's subtle 'Upgrade' prompt

Notion integrates a subtle but effective 'Upgrade' option in the workspace settings dropdown in their sidebar. It often includes a small sparkle icon to draw the eye without being intrusive. Clicking it opens a modal that clearly outlines the benefits of paid plans, tailored to the user's current context. It feels less like a sales pitch and more like a helpful suggestion.

Source: Notion Help Center
B2B CommunicationGrew to 10M+ DAUs

Slack's direct upgrade path

Slack has long used the top of its sidebar as a home for administrative CTAs, including upgrading the workspace. For admins on free plans, an 'Upgrade to a paid plan' link is persistently visible in the main dropdown menu. This direct, always-on approach was a key part of their monetization strategy, helping convert millions of free teams into paying customers.

Source: Slack Help Center

ProTip=

The step-by-step playbook

  1. 1

    Step 1: Define your annual offer

    Your offer needs to be a clear win for the user. The standard is 'pay for 10 months, get 12', which is about a 17% discount. Anything less than 15% is rarely compelling enough. State it clearly.

  2. 2

    Step 2: Choose the right location

    The primary sidebar navigation is the best spot. Place it below the main navigation items but above secondary or settings links. It should be visible at a glance without requiring a scroll.

  3. 3

    Step 3: Design the CTA

    This isn't a banner ad. Keep it simple. A text link like 'Switch to Annual & Save' or a subtle button with an icon (like a star or rocket) works best. Use a slightly different color to make it stand out, but don't make it clash with your UI.

  4. 4

    Step 4: Write compelling microcopy

    The copy should focus on the benefit. 'Get 2 months free' is better than 'Upgrade'. 'Unlock Pro features' is good if you're gating features. A/B test this if you can.

  5. 5

    Step 5: Build the upgrade page/modal

    The CTA should link somewhere. This could be a popup modal or a dedicated page that reiterates the offer, outlines the benefits of upgrading, and presents a clear, one-click action to complete the purchase.

  6. 6

    Step 6: Implement targeting logic

    This is crucial. The CTA should only be visible to users on your Free and Monthly plans. Make sure your code hides it for users who are already on an annual plan or have a lifetime deal. It's a waste of space and looks sloppy otherwise.

  7. 7

    Step 7: Track everything

    Implement analytics events for two things: 'sidebar_cta_viewed' and 'sidebar_cta_clicked'. This will allow you to calculate the click-through rate and understand how effective your design and copy are.

  8. 8

    Step 8: Measure conversions

    Use a tool like June.so to build a funnel. The goal is to see what percentage of users who click the sidebar CTA actually complete the upgrade to an annual plan. This is your ultimate success metric.

Copy-Paste Upgrade Page Script

This is the copy for the modal or page a user lands on after clicking your sidebar CTA. It reinforces the value and makes the choice clear.

## Switch to Annual and save {DiscountPercentage}% ##

Get everything in your current plan, plus {ExclusiveFeature1} and {ExclusiveFeature2}, for the equivalent of just **{PricePerMonthEquivalent}** per month.

**With the Annual Plan, you get:**
- **A full year of access** to all Pro features.
- **Save {TotalDiscountValue}** compared to paying monthly.
- **One simple payment** so you can set it and forget it.

[Upgrade and Save Today]

*Your new billing cycle will start immediately.*

Key Questions Before You Start

  • Is our annual discount compelling enough (aim for 15-20%)?
  • Where is the single most-viewed, least-obtrusive spot in our navigation?
  • What's the simplest possible design: text link, button, or link with icon?
  • Which user segments should see this? (e.g., All free users? Monthly users after 30 days?)
  • What analytics event will we fire on-click to measure interest?

The most important questions are about the offer's appeal and the targeting logic. A great offer shown to the wrong person is just noise.

Recommended tools

June.so

Starts at $39/mo

Use June.so to track who clicks the 'Upgrade' CTA and, more importantly, which of those users actually convert. It's purpose-built for this kind of SaaS product analytics.

Tally.so

Free plan available

If you don't have an automated billing flow yet, link your sidebar CTA to a Tally.so form. You can use it to capture upgrade requests and manually process them--a perfect way to validate the offer.

Figma

Free plan available

Don't code it twice. Mock up different designs and placements for your CTA in Figma first. This lets you get feedback from your team before committing developer time.

Screen Studio

Starts at $89 (one-off)

Once you've launched the feature, record a quick, polished video with Screen Studio showing off the new, easy way to upgrade. Use it in your next email update or on social media.

Prices are indicative and change - check the vendor before buying.

Do it faster with AI Prompts

Brainstorm CTA copy

I'm adding a link to my app's sidebar to get users on monthly plans to upgrade to annual. The annual plan offers a 20% discount (or '2 months free'). The app is a {social media scheduler}. Brainstorm 10 short, compelling CTA copy variations (under 5 words) for this link.

Get design ideas

I need to design a subtle but noticeable 'Upgrade to Annual' CTA for the sidebar of my web app. The sidebar has a light gray background (#F8F8F8). Suggest 5 design concepts. For each, describe the element (button, text link), copy, recommended icon (if any), and visual styling (colors, highlights) to make it stand out without being obnoxious.

Write the upgrade modal copy

Write the copy for a modal that appears after a user clicks an 'Upgrade to Annual' button. The user is currently on a {Monthly 'Creator' Plan} at {$19/month}. The annual plan is {$190/year}, which saves them two months. The plan includes {unlimited posts}, {AI post generation}, and {team collaboration}. The copy must be persuasive, clearly state the savings, and have a strong call to action button text.

Mistakes that kill this play

  • Making the offer too weak. A 5% or 10% discount is easy to ignore.
  • Making the CTA too loud. Using bright, flashing, or clashing colors will annoy users.
  • Showing the CTA to the wrong users, especially people who have already paid for an annual plan.
  • Linking to a generic pricing page. The link should go to a page or modal that specifically addresses the annual upgrade.
  • Forgetting to track clicks. If you don't track it, you can't tell if your design or copy is working.
  • Using vague copy. 'Settings' or 'Billing' is not a CTA. Be specific: 'Switch to Annual & Save'.
  • A complex checkout process. The upgrade should be achievable in one or two clicks.

Your First 5 Days

  • Day 1: Finalize your annual offer. Calculate the discount (e.g., 'pay for 10, get 12') and the absolute savings value (e.g., '$48 saved').
  • Day 2: Mock up the UI. Create a simple design in Figma showing the CTA in the sidebar. Write 3 copy options (e.g., 'Go Annual & Save', 'Get 2 Months Free', 'Upgrade to Annual'). Pick one.
  • Day 3: Write the development task. Create a ticket that specifies the design, copy, link destination, and exact targeting logic (e.g., 'Show to users on monthly plan IDs 123, 456').
  • Day 4: Implement analytics. While the feature is being built, go into your analytics tool and define the custom events for 'sidebar_cta_clicked' and the funnel for successful conversion.
  • Day 5: Test and ship. Test the feature on a staging server. Make sure it appears for the right users and not for the wrong ones. Then, deploy to production and start monitoring your new analytics funnel.
Save this playbook

Save this strategy and send it to my inbox

Get the full playbook - scripts, tool stack and checklist - delivered as a single email you can act on today.

No spam. One email, and only what is worth reading.

More Level 1 hacks