Purpose
This document defines the standardized methodology for calculating Monthly Recurring Revenue (MRR) from subscription charges with varying billing frequencies, pricing models, and discount structures.
Core Principle
MRR normalizes all subscription revenue to a consistent monthly timeframe, regardless of actual billing frequency (daily, weekly, monthly, quarterly, annual).
Calculation Process
1. Temporal Validation
Rule: Only include charges active during the target reporting month.
Code
IF charge_end_date < target_month_start → MRR = 0
IF charge_start_date > target_month_end → MRR = 0
ELSE → Proceed with calculation
2. Billing Model Classification
Contract-Based Billing (billing_period_length = 0)
For one-time payments, annual contracts, or custom arrangements.
Formula:
Code
contract_duration_months = months_between(start_date, end_date)
monthly_equivalent = total_contract_value ÷ contract_duration_months
Recurring Billing (billing_period_length > 0)
For regular subscription cycles.
Formula:
Code
period_days = billing_period_length × unit_multiplier
daily_rate = price ÷ period_days
monthly_equivalent = daily_rate × 30
Unit Multipliers:
- Days: 1
- Weeks: 7
- Months: 30
3. Price Base Normalization
Convert price to monthly equivalent based on the unit it represents:
| Price Base | Monthly Conversion |
| billing_period | price ÷ total_period_days × 30 |
| month | price × 1 |
| week | price ÷ 7 × 30 |
| day | price × 30 |
4. Tiered Pricing Application
Tier Selection:
Code
applicable_tier = tier WHERE tier.min_quantity ≤ quantity < tier.max_quantity
Quantity Adjustments:
- Volume Pricing + Flat Fee: quantity = 1
- Tiered Pricing + Flat Fee + Zero Quantity: quantity = 1
- All Other Cases: quantity = actual_quantity
5. Final Calculation
Code
base_mrr = monthly_equivalent × adjusted_quantity
discounted_mrr = base_mrr × (1 - discount_percentage ÷ 100)
arr = discounted_mrr × 12
Calculation Examples
Monthly Subscription
Code
Input:
- Price: $100/month
- Quantity: 5 licenses
- Discount: 10%
Calculation:
- Monthly Equivalent: $100
- Base MRR: $100 × 5 = $500
- Discounted MRR: $500 × (1 - 10/100) = $450
- ARR: $450 × 12 = $5,400
Quarterly Billing
Code
Input:
- Price: $300 every 3 months
- Quantity: 2 users
Calculation:
- Period Days: 3 × 30 = 90 days
- Daily Rate: $300 ÷ 90 = $3.33/day
- Monthly Equivalent: $3.33 × 30 = $100
- MRR: $100 × 2 = $200
- ARR: $200 × 12 = $2,400
Annual Contract
Code
Input:
- Price: $12,000 annual contract
- Contract Duration: 12 months
- Discount: 5%
Calculation:
- Monthly Equivalent: $12,000 ÷ 12 = $1,000
- Base MRR: $1,000 × 1 = $1,000
- Discounted MRR: $1,000 × (1 - 5/100) = $950
- ARR: $950 × 12 = $11,400
Volume Pricing (Flat Fee)
Code
Input:
- Price: $500/month unlimited usage
- Actual Usage: 10,000 units
- Pricing Model: Volume + Flat Fee
Calculation:
- Adjusted Quantity: 1 (flat fee override)
- MRR: $500 × 1 = $500
- ARR: $500 × 12 = $6,000
Business Rules
Standardization Constants
- Month Length: 30 days
- Year Length: 360 days (12 × 30)
- Rounding: Round to 2 decimal places for currency
Data Requirements
- Valid start and end dates for all charges
- Consistent billing period unit mapping
- Properly configured tier definitions
- Discount percentages between 0-100
Edge Case Handling
- Missing End Date: Use subscription term or contract duration
- Zero Billing Period: Apply contract-based calculation
- Invalid Discounts: Treat as 0% discount
- Negative Quantities: Return $0 MRR
Validation Criteria
Accuracy Checks:
- Sum of monthly MRR should equal prorated annual value
- Discount application reduces MRR appropriately
- Tiered pricing applies correct quantity adjustments
- Temporal boundaries exclude inactive charges
Data Quality Checks:
- No negative MRR values
- Discount percentages within valid range
- Billing periods map to expected day counts
- Tier boundaries don't overlap
Implementation Notes
This methodology ensures:
- Consistency across diverse pricing models
- Accuracy in revenue recognition timing
- Scalability for complex subscription structures
- Auditability with clear calculation steps
All calculations prioritize standardization over precision to enable meaningful aggregation and comparison across different subscription types and billing frequencies.
Comments
0 comments
Please sign in to leave a comment.