Skip to main content

Prorating Deals

Originating from the Latin phrase Pro rata , translating to "in proporation", proration describes a common practice used by service providers to calculate pricing for their services when a contract starts or ends in the middle of a billing cycle. It's a way of calculating the price of an incomplete billing interval. ‍ This is a prevalent model adopted by businesses with usage-based pricing. Monthly rent payments are typically prorated. ‍

What's in a (range of) number(s)?

‍ Billing intervals, or date ranges, are notoriously difficult to calculate. So much so that some businesses avoid acknowledging the concept altogether. There are many ways to calculate a range's duration, ranging from naive to confusingly complex, and every business has their own secret sauce. ‍ What makes them so challenging? Assuming we're using the Gregorian calendar, as most of the world does, converting number of days to months or years is no simple feat. The alternating number of days in each month causes one method to be slightly off from another. Throw in "leap years" and prorating multi-year contracts is almost impossible. Enter... ‍

The RevOps Way

‍ One of the hardest problems we've had to solve at RevOps was delivering accurate and consistent pricing for our users. Quickly we learned that there were many "right" ways to prorating a billing interval. RevOps uses a formula that avoids the majority of inconsistencies in the business calendar. ‍

The Formula

Before we begin, we assume:

  1. Years to be 12 months or 365 days long
  2. Months to be 30.41667 days long (or 365 days/12 months; the average days per month in a 365-day year)

Step 1. Find the time units of the billing interval To calculate the prorated price of a date range you need to know the yearly, monthly, and daily price of your service, and one of the following:

  1. Start & End date of the billing interval

  2. Fractional length of duration in years, months, or days of the billing interval If you have a #2, you can skip to Step 2 . If you have #1, find the year, month, and day units. For example, if your:

  3. Start date is June 9, 2023

  4. End date is November 21, 2026, because we want the End date included as a service day we add 1 day making the End date, November 22, 2026

Step 1.A. Find number of years To figure the number of years, add a year to the Start date until the new date is in the same year or would be after the End date. ‍ In our example, add 3 years and you get June 9, 2026.

Alternate example

If the Start date was December 9, 2023, adding 3 years would result in December 9, 2026 which is after the End date, so the new date would be December 9, 2025 and our number of years would be one year less than 3, or 2 years . ‍

Step 1.B. Find number of months To figure the number of months, follow the same process used in Step 1.A except start with the date calculated in Step 1.A. ‍ In our example, starting with June 9, 2026, add 5 months and you get November 9, 2026.

Alternate example

Again, if the date was December 9, 2025, we would figure that the number of months would be 11 months resulting in the same date as our example, November 9, 2026. ‍

Step 1.C. Find number of days Finally, to figure the number of days, follow the same process used in Step 1.B starting with November 9, 2026. ‍ In our example, adding 13 days would give us our End date, November 22, 2026!

Alternate example

The same is true for our alternate example. ‍

Result So now we have the time units of our date range to prorate:

  • 3 years
  • 5 months
  • 13 days ‍

Step 2. Multiple each time unit to its respective price Lets say our service has a yearly price of $36,500. This would give us the following set of prices:

  1. Yearly price: $36,500.00
  2. Monthly price: $3,041.67*(technically our decimal repeats)*
  3. Daily price: $100.00

Multiplying our prices and time units and adding them together, we get:

  1. Yearly price * # of years = $36,500.00 * 3 years = $109,500.00
  2. Monthly price * # of months = $3,041.67 * 5 months = $15,208.35
  3. Daily price * # of days = $100.00 * 13 days = $1,300.00
  4. Sum of results = $109,500.00 + $15,208.35 + $1,300.00 = $126,008.35

Result For a deal starting on June 9, 2023 and ending on November 21, 2026 ordering our $36,500 yearly priced service, the total contract value is $126,008.35 excluding taxes and fees. ‍


‍ There you have it! An in-depth look at Prorating: the RevOps way™ . ‍ Additionally, because we define safe assumptions for the lengths of a year and a month (for the typical length of business agreements ) and how we handle splitting up units of time, you don't have to worry about converting time units, resulting in rounding errors, or calendar inconsistencies like leap years.