billing, explained · 03

A mid-month upgrade. What should you charge?

July 11, 2026

A mid-month upgrade. What should you charge?

One of your customers pays SAR 99 a month for Starter. After using 14 days of the cycle, their team needs Growth, priced at SAR 299.

They want the upgrade today. Do you charge the full Growth price, wait for renewal, or calculate the remaining days?

Two easy answers—and both are wrong

Charge the full SAR 299 and the customer pays twice for the first 14 days: once through Starter, then again through Growth.

Wait until the next cycle and they use Growth for 16 days without paying the difference.

Proration gives each plan the portion the customer actually used. It returns the unused value of Starter, then charges for the same remaining period on Growth.

Mid-cycle upgrade

14 days on Starter, 16 days on Growth

Starter planDays 1–14
Growth planDays 15–30
01UPGRADE · 1430
Credit returned−52.80 SAR

16 unused days on Starter

New charge+159.47 SAR

16 days of Growth

Upgrade difference106.67 SAR

Additional amount for this cycle

This example uses a 30-day cycle: SAR 99 for Starter and SAR 299 for Growth.

In this example:

  • the customer receives a SAR 52.80 credit for 16 unused Starter days;
  • they are charged SAR 159.47 for 16 Growth days;
  • the net upgrade adjustment is SAR 106.67.

Growth starts today. The customer does not pay twice for the same period, and you do not give away the higher plan.

The calculation is not the policy

The arithmetic is straightforward. The commercial decision is: when does each change take effect?

ChangeCommon policyCustomer impact
UpgradeTakes effect immediatelyNew features now; pay the remaining difference
DowngradeTakes effect at renewalKeep the plan they already paid for
CancellationEnds with the cycleKeep access until the stated date

You can choose a different policy. What matters is that product, support, and finance use the same answer—not a new spreadsheet calculation for every ticket.

In this example, the upgrade starts immediately because the team needs Growth today. A downgrade would usually wait until renewal, so paid features do not disappear early.

A month is not always 30 days

The example is deliberately simple. Real subscriptions add cases that still need the same rule:

  • a 31-day month;
  • an annual plan changed halfway through the year;
  • a seat added during the month;
  • a discount that applies to one plan but not the other;
  • tax treatment attached to each line;
  • or a correction that must point back to the original invoice.

This is where spreadsheets drift from the billing system. One person calculates by calendar day, another always divides by 30, and a third uses the request date instead of the activation date.

The problem is not a few halalas. The customer cannot explain the invoice, and finance has to reconstruct the calculation every time.

The invoice should show the difference

Do not show only the final adjustment. The customer should see two clear lines:

  1. a credit for the unused portion of Starter;
  2. a charge for the remaining portion of Growth.

If the upgrade appears as one unexplained amount, the number can be correct and still create a support ticket.

In Tirdad, you set the upgrade, downgrade, and cancellation policy on the subscription. When the plan changes, Tirdad calculates the remaining period and adds the adjustment as clear invoice lines. The subscription keeps its history, and earlier invoices remain tied to the price version that applied at the time.

The important decision is not how to divide 299 by 30. It is when the change takes effect and how the invoice explains it.

Ready to build the full subscription journey? Continue with How to build a subscription that survives the first change.

billing, explained · 03 of 08

Eight connected decisions—from the first usage event to recurring revenue.

From decision to execution

Set the rule once. Tirdad applies it every time.

Keep the policy, effective date, customer agreement, and invoice calculation in one billing system instead of rebuilding the decision in every product surface.