Billing cycle anchor
The fixed date every invoice lines up to, no matter when someone signed up. Move it and all renewals shift to the same day.
See it
What it is
The anchor is the reference timestamp every future billing period is measured from. Sign up on the 14th and the anchor is the 14th, so invoices land on the 14th forever. Move the anchor to the 1st and everyone renews on the 1st, which is what finance teams mean when they ask for 'calendar month billing'.
Two reasons to touch it: consolidating a customer with several subscriptions onto one invoice date, and aligning a whole book of business to a month boundary so revenue reports are not smeared across 30 different renewal days. In Stripe this is billing_cycle_anchor on the subscription; the same idea shows up as 'bill date' or 'anchor date' elsewhere.
Gotchas that bite. Moving the anchor shortens or lengthens one period, so you must decide the proration behavior: prorate (fair, generates a credit or a partial charge), or skip proration and hand out free days. Trials reset the anchor to the trial end date, which surprises people who set both. And short months clamp: an anchor on the 31st bills on Feb 28, and depending on the provider it may stay at 28 from then on, so pick a day between 1 and 28 for anything you want stable.
Ask AI for it
Let customers and admins control the billing cycle anchor on a subscription. Add an endpoint that sets the anchor to a chosen day of month, or aligns a customer's subscriptions to an existing one so they share a single invoice date. Default new subscriptions to anchoring on the signup date, but restrict manual anchor days to 1 through 28 so short months never shift the date. When the anchor changes, show a preview of the resulting invoice before confirming, with an explicit choice between prorating the shortened or extended period and skipping proration. Handle the trial case by anchoring to trial end, and display the next billing date prominently in the billing portal.