Skip to main content

Subscription Billing Cadence

A tier can be sold at more than one billing cadence. Monthly and yearly is the familiar pair, but a tier can carry any set you like — quarterly, six-monthly, weekly, a special “founding rate” at a longer interval. Every cadence renews: a price is set per day, week, month or year, and there is no one-time price on a tier. You build the list on the tier itself, in the Prices repeater; see Built-in Membership → Prices. This page covers what your listeners actually see once you have.

How the Subscription Page Renders Cadences

The subscription page is drawn by the [benecaster_subscribe] shortcode. Each tier gets a card, and each card carries its own cadence selector — there is no single site-wide monthly/yearly switch.

That matters when your tiers are not symmetric. A show can sell Gold monthly-and-yearly while Founding Member is yearly-only, and each card presents exactly the choice that tier offers. Nothing is greyed out and no card advertises a cadence it cannot sell.

Two or more cadences on a tier — the card shows a radio group, one option per cadence, labelled with the wording you entered and the price. The cadence you marked as Default is pre-selected. The button underneath re-reads as the subscriber changes the selection.

One cadence on a tier — no selector appears. The price is shown inline on the card, and the button goes straight to checkout. There is nothing to choose, so nothing is asked.

No cadences on a tier — the tier is free, so there is nothing to choose: the card shows a Join free button and signing up needs no payment step. See A tier with no prices is free.

The Button Label

The subscribe button restates the choice rather than saying “Subscribe” and leaving the subscriber to trust the radio button they clicked:

Subscribe monthly — $8.00

The pattern is Subscribe {your cadence label} — {amount}. Because the cadence half of that comes from the label you typed into the Prices repeater, the wording is yours: “Subscribe yearly — $80.00”, “Subscribe every 3 months — $22.00”, “Subscribe founding rate — $250.00”. A price with no label reads just Subscribe — $250.00. The label is the only part you can change without code. A developer can reword the whole button with the benecaster_subscribe_button_label filter, which answers for each billing period; see Change the text of the subscribe button.

When a subscriber picks a different billing period, the button, price and period change with it and stay in your site’s language.

Keep labels short. They appear twice — once beside the radio button and once inside the button — and long ones wrap badly on narrow cards.

Choosing Which Cadence Is Default

The default is the one most subscribers will take, not necessarily the cheapest. Two ways to think about it:

  • Default to monthly if your priority is the lowest possible barrier to signing up. More people start; more of them churn in the first three months.
  • Default to annual if your priority is cash up front and lower churn. Fewer people start, and the ones who do are worth substantially more.

Whichever you pick, price the longer cadence below the monthly equivalent and Benecaster will show the saving on the card automatically — you do not need to write “save 17%” into the label yourself.

One thing this affects beyond the subscription itself: buy-ups. A buy-up is priced per billing period too, and a subscriber can buy one only if it has a price for their period. When you add a cadence to a tier, decide whether your buy-ups should be sold on it. Leaving one off is a legitimate choice (“transcripts, annual only”), and pricing one at 0 includes it free with that period. See Buy-ups.

What Happens After They Subscribe

The cadence is fixed at checkout and drives everything downstream: when Stripe charges, when the renewal reminder goes out, and what the subscriber’s account page reports as their next renewal date.

Subscribers can switch their own billing period from the account page — you don’t have to do anything. A Billing period section on the account page lists the tier’s other cadences with their price and the date the change would start. The subscriber picks one and confirms; there is nothing for you to configure or process on your end.

The switch takes effect at their next renewal, in either direction — monthly to annual or annual back to monthly — and nothing is charged on the day they ask. Stripe schedules the new price to start at the renewal it replaces, so there’s no immediate invoice and no proration to explain. Their feed URL survives untouched, exactly as it always has — tokens are not tied to billing. See The Subscriber Account Page for what the section looks like, and How Billing Scenarios Work for how this scenario sits alongside cancellation and other billing events.

Who can’t switch. The Billing period section explains the reason directly to the subscriber rather than just hiding the option:

  • Their last payment failed — they need to update their payment method first
  • Billing is currently paused
  • Their membership is already set to cancel — they’d need to resume it first
  • They already have a change scheduled — a billing-period switch or a move to another plan. Only one change can be pending at a time; they can cancel it and choose again
  • They pay for a buy-up you don’t sell on the period they’re picking — only that option is unavailable, and they can remove the buy-up or stay where they are (see below)

None of these require you to intervene — the subscriber sees the reason and the fix (if there is one) right on the account page.

Changing plan works the same way. A Your Plan section above Billing period lets a subscriber move to another of your tiers on the billing period they’re already on, landing at their next renewal with nothing charged when they ask. A tier appears there only if it sells their current billing period, so if you want subscribers to move between tiers, sell each tier on the same periods. See The Subscriber Account Page.

What Happens to Buy-ups

Buy-ups move with the subscriber. When they switch, each buy-up they hold moves onto that buy-up’s price for the new period. Each option on the account page shows the total they’ll pay from the switch date, plan plus buy-ups, and that total is what they confirm.

A free buy-up they hold now, which the new period sells for money, moves across and is charged. It’s named in the total on the confirmation, so nothing is added to their bill without them agreeing to it.

A free buy-up the new period doesn’t sell at all is dropped. The option says so by name before they confirm (“You will lose, at no cost to you: Transcripts. It is not included on this billing period.”). It costs nothing, so it doesn’t block the switch.

A paid buy-up the new period doesn’t sell at all still blocks that option. The subscriber is told they hold a buy-up that isn’t sold on that billing period, and can remove it first or stay on their current period. Benecaster won’t drop something they’re paying for, or move them onto a price they never agreed to.

Buy-ups free on the new period are given when the switch lands. The option lists them under “Included free on this billing period:” as ticked checkboxes, and the subscriber can untick any they don’t want; unticking is recorded as declining it. The list shows everything the new period includes, even a buy-up they declined before, because choosing a new period is a new decision. One exception: if the buy-up has a subscriber cap that’s already full, it isn’t listed and isn’t given. “The first 50 to go annual get transcripts free” stops at fifty, even for someone who started their switch before the fiftieth. Everyone already holding it keeps it.

Buy-ups can’t be bought while a switch is pending. A buy-up bought now would be dropped from the subscription when the switch lands, so every buy-up reads as unavailable until the switch takes effect or is cancelled. This is intentional.

Changing Cadences Later

Moving someone in the Stripe dashboard. If you move a member to another billing period of the same plan directly in Stripe, Benecaster records it: the account page’s Billing period section and your revenue estimate show the new period and price.

Adding a cadence is safe at any time. It appears on the card immediately for new subscribers, and changes nothing for anyone already subscribed.

Removing a cadence withdraws it from sale. Existing subscribers on that cadence keep renewing at their rate indefinitely — withdrawing a price never cancels anyone. If you want them moved, you have to cancel and re-enroll them deliberately.

A cadence someone is switching onto can’t be removed until the switch lands. If a subscriber has a billing-period switch or a plan change scheduled onto that cadence, the save is refused and nothing changes. The message names the cadence and how many people are switching onto it. Remove it once their switch has happened at their renewal.

The last cadence on a tier can’t be removed while anyone is paying on it or has a plan change scheduled onto it. A tier with no cadences is free, so removing the last one would offer for free what your current subscribers pay for. The save is refused and nothing changes. To stop selling the tier, untick its Active switch instead: it leaves your subscription page, and everyone on it keeps their access and billing. See Built-in Membership → Stopping or Deleting a Tier.

Changing an amount applies to new sign-ups straight away. Existing subscribers on that cadence stay on their current rate unless you choose to move them, with notice, when you save the change. See Built-in Membership and Price Change Considerations.

For Developers

The rendered markup changed with the N-price model. Each tier card now carries a single data-prices attribute holding a JSON array of that tier’s cadences, replacing the older data-monthly-price and data-annual-price attribute pair. Anything reading those two attributes needs updating — see the benecaster_subscribe shortcode reference.

POST /shows/{id}/subscribe now takes a price_id identifying the chosen cadence. The older billing_interval parameter is still accepted so existing clients keep working, and resolves to the tier’s month × 1 or year × 1 price.

To add a cadence to a tier programmatically — setup scripts, WP-CLI, multi-site provisioning — see the recipe Add a Quarterly Cadence to an Existing Tier.

See Also

Need this built rather than just documented? See our services →