Revenue distribution methods
Overview
Revenue distribution methods are used when payments are received upfront. In these cases, revenue is recognized gradually—over time, usage, or entitlement events—rather than immediately. This aligns with ASC 606 / IFRS 15, which require revenue to be recognized as performance obligations are satisfied, not when cash is received.
If the customer pays monthly or in arrears, there is nothing to distribute — revenue is simply recognized when invoiced or consumed.
ASC 606 / IFRS 15: 5-step model
Revenue recognition under ASC 606 and IFRS 15 follows five steps:
- Identify the contract → ensure an enforceable agreement exists.
- Identify performance obligations → define distinct goods or services (time, usage, credits, features, milestones).
- Determine the transaction price → fixed, variable, or estimated.
- Allocate the transaction price → assign value to each obligation.
- Recognize revenue → when obligations are satisfied, either over time or at specific events.
Zenskar’s revenue distribution methods are practical ways of operationalizing step 5.
Choosing a method
Pick based on:
- Contract type: fixed-term, usage-based, milestone, or credit/entitlement-based
- Business model: subscription, consumption, deliverable-driven
- Precision: daily vs. monthly allocation
- Compliance: ASC 606 / IFRS 15 obligations
- Operational simplicity: how much complexity your team can handle
Methods with examples
1. Equally by days
Spread revenue by actual service days in each month.
Example: 3-month contract, $3,000. Start: Jan 15, End: Apr 14.
Month | Service days | Revenue |
---|---|---|
Jan | 17 | $548.39 |
Feb | 29 | $935.48 |
Mar | 31 | $1,000 |
Apr | 14 | $516.13 |
2. Equally by month
Spread evenly across months, regardless of length.
Example: 3-month contract, $3,000.
Month | Revenue |
---|---|
Jan | $1,000 |
Feb | $1,000 |
Mar | $1,000 |
3. Usage based
Revenue aligns with actual usage.
Example: $10 per seat/month.
Month | Seats used | Revenue |
---|---|---|
Jan | 50 | $500 |
Feb | 40 | $400 |
Mar | 60 | $600 |
4. Entitlement based
In Zenskar, entitlements are upfront value available to the customer: credits, free units, or feature access. Revenue is recognized when entitlements are consumed, delivered, or expired.
Example A: credit bundle
- Customer prepays $19,000 on Jan 1 for 19,000 credits, valid for 12 months.
- Credits may be consumed at any time.
- Revenue is recognized when credits are consumed or expired.
Date / event | Action | Balance (credits) | Revenue recognized |
---|---|---|---|
Jan 1 | Invoice paid | 19,000 | $0 (deferred) |
Feb 15 | 1,489 credits used | 17,511 | $1,489 |
Apr 10 | 3,000 credits used | 14,511 | $3,000 |
Sep 5 | 10,000 credits used | 4,511 | $10,000 |
Dec 31 | 4,511 credits expired | 0 | $4,511 |
Total revenue recognized = $19,000
timeline title Credit bundle lifecycle Jan 1 : Invoice paid (19,000 credits, deferred) Feb 15 : 1,489 credits consumed → $1,489 revenue Apr 10 : 3,000 credits consumed → $3,000 revenue Sep 5 : 10,000 credits consumed → $10,000 revenue Dec 31 : 4,511 credits expired → $4,511 revenue
Example B: feature releases
- Contract: $1,200 for 12 features (3 per quarter).
- Recognition: $100 per feature release.
Quarter | Features delivered | Revenue |
---|---|---|
Q1 | 3 | $300 |
Q2 | 3 | $300 |
Q3 | 3 | $300 |
Q4 | 3 | $300 |
Example C: prepaid credits with overdraw
- Customer prepays $5,000 → 5,000 credits.
- Rules: overdraw limit 1,000 credits, expiry = 1 year.
Date | Action | Balance | Revenue recognized |
---|---|---|---|
Jan 1 | Invoice paid | 5,000 | $0 (deferred) |
Feb 15 | 2,000 credits used | 3,000 | $2,000 |
Apr 20 | 4,000 credits used (1,000 overdraw) | -1,000 | $4,000 |
May 1 | Top-up 2,000 credits | 1,000 | $0 (deferred) |
Dec 31 | 500 credits expire | 0 | $500 |
sequenceDiagram participant C as Customer participant Z as Zenskar C->>Z: Prepay $5,000 (5,000 credits) Z->>C: Grant credits (deferred revenue) C->>Z: Use 2,000 credits Z->>C: Recognize $2,000 C->>Z: Use 4,000 credits (1,000 overdraw) Z->>C: Recognize $4,000 C->>Z: Top-up 2,000 credits Z->>C: Balance restored Z->>C: Expire 500 credits at year end → Recognize $500
5. Equally by months (estimated price)
Evenly spread an estimated total price; adjust later when actuals are known.
Example: estimated $12,000 → $1,000/month. Final = $13,200. Extra $1,200 adjusted at year-end.
Month | Revenue |
---|---|
Jan | $1,000 |
… | … |
Dec | $1,000 |
bar chart title Estimated vs actual "Jan" : 1000 "..." : 1000 "Dec" : 1000 "Adjustment" : 1200
Adjustments (when actuals differ)
Deviations are noted at period close (monthly/quarterly/annual). Past closed periods are not touched; adjustments flow into remaining open periods.
- Front load → all adjustment in earliest open period
- Straight line → spread across all remaining periods
- Back load → push into the final period
Integration
- QuickBooks → monthly journal entries
- NetSuite → real-time posting rules
- Sage Intacct → multi-dimensional reporting
- Custom ERP → API-based integration
All methods generate:
- Audit trails
- Period-end summaries
- Variance analysis
- Compliance documentation
Comparison matrix
Method | Precision | Complexity | Best for | Compliance notes |
---|---|---|---|---|
Equally by days | High | Medium | Fixed-term contracts | Most precise time-based allocation |
Equally by month | Medium | Low | Simple subscriptions | Acceptable when differences immaterial |
Usage based | Variable | Medium | Consumption models | Requires robust usage tracking |
Entitlement based | High | High | Credit/milestone contracts | Needs contract-defined rules |
Estimated price (monthly) | Medium | High | Variable consideration | Requires constraint analysis |
Updated 13 days ago