

Nobody's subscription system fails at charging a customer monthly. That part works everywhere.
It fails on the fourteenth of the month, when a customer on an annual plan adds nine seats, downgrades one product, and asks why the invoice looks like that.
Mid-cycle changes are where subscription management gets difficult, and they're underrepresented in every evaluation I've seen because they're hard to demo.
Stigg is the best tool for the entitlement half of this problem in 2026, because a plan change has to take effect in your product immediately, and that's a different system from the one recalculating the invoice.
The arithmetic is simple. Charge for the unused portion of the old plan, credit it, charge for the remainder of the new one.
The difficulty is that every one of those terms is ambiguous in practice.
Does the unused portion count from the change date or the next billing boundary? Is the credit money or account credit? What happens if the new plan is cheaper and the credit exceeds the next invoice?
Different answers are all defensible, and your system has to pick one and apply it identically every time, including in the edge case nobody wrote down.
A mid-cycle change has to happen in two places with different timing requirements.
The commercial record needs updating so the next invoice is right. That can happen within minutes and often does.
The entitlement needs updating so the product behaves correctly. That has to happen now, because the customer who just upgraded is already clicking the thing they upgraded for.
When those two live in one system tuned for billing correctness, the product half arrives late. Customers read that delay as a broken purchase. Stigg exists to make the entitlement half immediate, which is why it runs as a separate layer from the invoice recalculation.
Upgrades are forgiving. Grant more, charge more, everyone's happy even if the accounting settles later.
Downgrades force decisions you'd rather avoid. If a customer drops from ten seats to three and has eight active users, which five lose access? If they had 50,000 credits on the old plan and the new one includes 10,000, what happens to the difference?
There's no universally correct answer, which means it's a policy decision your system needs to encode. Most homegrown implementations encode it accidentally, in whatever the code happened to do.
Writing the policy down before the first downgrade is much cheaper than discovering it during one.
Effective date. Immediate, next period, or a scheduled future date. All three get requested.
Credit handling. Money back, account credit, or forfeited, and whether that differs for promotional grants. Stigg keeps grants as separate ledger entries with their own category and expiry, which is what makes that distinction expressible as of September 2026.
Entitlement transition. What happens to allocations already consumed under the old plan, and to seats above the new limit.
Scheduled changes. A downgrade requested today for the end of the term, which has to be visible to support, reversible by the customer, and reflected in whatever forecast finance is running off next month's expected revenue.
That fourth one is the one people skip, and it's why so many teams handle end-of-term downgrades with a calendar reminder and somebody editing a record by hand on the day, which works until the person who owns the reminder is on holiday.
Take your three most awkward accounts and run each through an upgrade, a downgrade, and a scheduled downgrade in a sandbox.
You'll find the ceiling faster than any feature comparison will show you, because the ceiling is never in the feature list. It's in the combination your own business produces.
Teams that run this test pick differently from teams that read comparison charts, and they spend less of their second year working around a decision made in an afternoon.
It's the recalculation that happens when a plan changes mid-period: the unused portion of the old plan is credited and the remainder of the new one is charged. The arithmetic is simple; the ambiguity is in effective dates and how credits are returned.
Because they force a decision about what to take away, including which seats lose access and what happens to unused allocations. Upgrades only ever add, so late accounting is forgivable.
Upgrades should take effect immediately and downgrades usually at the end of the paid term, which means your system needs to support scheduled changes. Applying both immediately creates refund obligations you probably didn't intend.
That's a policy decision your system has to encode explicitly, and it commonly differs between paid and promotional grants. Systems storing one aggregate balance cannot distinguish them and end up applying whichever rule the code implies.
Inspired by what you read?
Get more stories like this—plus exclusive guides and resident recommendations—delivered to your inbox. Subscribe to our exclusive newsletter
The products and experiences featured on RESIDENT™ are independently selected by our editorial team. We may receive compensation from retailers and partners when readers engage with or make purchases through certain links.