The ASC 606 / IFRS 15 framework
Revenue recognition under ASC 606 and IFRS 15 requires a specific five-step model. Zenskar’s distribution methods directly execute Step 5 of this framework.- Identify the contract: Verify an enforceable agreement exists.
- Identify performance obligations: Define distinct goods or services (e.g., time, usage limits, credit balances, feature delivery, milestones).
- Determine the transaction price: Establish the fixed, variable, or estimated cost.
- Allocate the transaction price: Assign monetary value to each distinct obligation.
- Recognize revenue: Trigger recognition when obligations are satisfied (over time or at specific events).
Method selection matrix
Select a distribution method based on the contract type, required precision, and performance obligations.| Method | Best For | Precision | Complexity | Compliance Note |
|---|---|---|---|---|
| Equally by days | Fixed-term contracts | High | Medium | Most precise time-based allocation. |
| Equally by month | Simple subscriptions | Medium | Low | Acceptable when day-to-day variance is immaterial. |
| Configurable days monthly | Fixed-term contracts | High | Medium | Accounts for exact days in a billing month. |
| Usage based | Consumption models | Variable | Medium | Requires robust, accurate usage tracking. |
| Entitlement based | Credit/milestone contracts | High | High | Requires strict contract-defined expiry and consumption rules. |
| Aggregate based | Ramp-up/variable usage | High | High | Strong alignment with proportional performance delivery. |
| Equally by months with estimated transaction price | Variable consideration | Medium | High | Requires rigorous constraint analysis and true-ups. |
Method definitions and examples
1. Equally by days
Revenue is spread based on the exact number of active service days within a given calendar month. Example: A 3-month contract for $3,000 running from January 15 to April 14.| Month | Service Days | Revenue Recognized |
|---|---|---|
| Jan | 17 | $548.39 |
| Feb | 29 | $935.48 |
| Mar | 31 | $1,000.00 |
| Apr | 14 | $516.13 |
2. Equally by month
Revenue is spread evenly across the total number of months in the contract term, ignoring the varying lengths of individual months. Example: A 3-month contract for $3,000.| Month | Revenue Recognized |
|---|---|
| Jan | $1,000.00 |
| Feb | $1,000.00 |
| Mar | $1,000.00 |
3. Configurable days monthly
Similar to “Equally by month,” but introduces precision by calculating a daily baseline rate and multiplying it by the total days in that specific month. Longer months recognize proportionally higher revenue. Example: A 1-year contract for 100/day baseline).| Month | Days in Month | Revenue Recognized |
|---|---|---|
| Jan | 31 | $3,100.00 |
| Feb | 28 | $2,800.00 |
| Mar | 31 | $3,100.00 |
| Apr | 30 | $3,000.00 |
4. Usage based
Revenue is strictly tied to actual metered consumption during the period. Example: $10 per active seat per month.| Month | Seats Used | Revenue Recognized |
|---|---|---|
| Jan | 50 | $500.00 |
| Feb | 40 | $400.00 |
| Mar | 60 | $600.00 |
5. Entitlement based
Revenue is deferred at the time of purchase and recognized only when upfront value (credits, free units, feature access) is either consumed, delivered, or reaches expiration. Example A: Credit bundle lifecycle A customer prepays $19,000 on January 1 for 19,000 credits, valid for 12 months.| Date | Trigger Event | Credit Balance | Revenue Recognized |
|---|---|---|---|
| Jan 1 | Invoice paid | 19,000 | $0 (Deferred) |
| Feb 15 | 1,489 credits consumed | 17,511 | $1,489.00 |
| Apr 10 | 3,000 credits consumed | 14,511 | $3,000.00 |
| Sep 5 | 10,000 credits consumed | 4,511 | $10,000.00 |
| Dec 31 | 4,511 credits expired | 0 | $4,511.00 |
| Quarter | Features Delivered | Revenue Recognized |
|---|---|---|
| Q1 | 3 | $300.00 |
| Q2 | 3 | $300.00 |
| Q3 | 3 | $300.00 |
| Q4 | 3 | $300.00 |
| Date | Trigger Event | Credit Balance | Revenue Recognized |
|---|---|---|---|
| Jan 1 | Invoice paid | 5,000 | $0 (Deferred) |
| Feb 15 | 2,000 credits consumed | 3,000 | $2,000.00 |
| Apr 20 | 4,000 credits consumed | -1,000 | $4,000.00 |
| May 1 | Account true-up (2,000 credits) | 1,000 | $0 (Deferred) |
| Dec 31 | 500 credits expired | 0 | $500.00 |
6. Aggregate-based (Weighted estimate)
Revenue is distributed based on the proportion of total expected activity delivered over a specific time frame. Calculation:Revenue = (Period Activity ÷ Total Expected Activity) × Total Contract Value
Example: A 1-year contract for $120,000. The total expected activity is 12,000,000 syncs with a known ramp-up pattern.
| Period | Estimated Activity | Calculation | Revenue Recognized |
|---|---|---|---|
| Month 1 | 0 Syncs | (0 ÷ 12M) × $120k | $0.00 |
| Month 2 | 100k Syncs | (0.1M ÷ 12M) × $120k | $1,000.00 |
| Month 6 | 1M Syncs | (1M ÷ 12M) × $120k | $10,000.00 |
| Month 12 | 3M Syncs | (3M ÷ 12M) × $120k | $30,000.00 |
7. Equally by months with estimated transaction price
Evenly spreads an estimated total price across the term. True-ups or adjustments are applied later when actuals are finalized. Example: Estimated contract value is 1,000/month). Final actual value is 1,200 is adjusted at year-end based on the defined deviation strategy.| Month | Revenue Recognized |
|---|---|
| Jan – Nov | $1,000.00 |
| Dec | 1,200 true-up) |
Adjustments and period close
When actuals deviate from estimates at the close of a period (monthly, quarterly, or annually), past closed periods remain untouched. Adjustments strictly flow into open periods using one of three routing strategies:- Front load: The entire adjustment is applied to the earliest available open period.
- Straight line: The adjustment is spread evenly across all remaining open periods.
- Back load: The adjustment is pushed entirely to the final period of the contract.
ERP integration and auditing
Revenue methods integrate natively with standard financial systems to produce accurate ledger entries:- QuickBooks: Monthly aggregated journal entries.
- NetSuite: Real-time posting rules.
- Sage Intacct: Multi-dimensional reporting.
- Custom ERP: Direct API-based integration.