Recognition methods
A recognition method decides when you earn the revenue on a performance obligation. You set it on the product, and the obligation inherits it. The engine then spreads the obligation's amount across periods to match.
Pick a method for each product
QuantumBit sells platform subscriptions, training, services projects, rack servers and token usage. Each one earns revenue in a different way.
| Method | When revenue is earned | Use it for |
|---|---|---|
| Straight-Line | Evenly over each line's service dates, by the day at the edges | Subscriptions, licenses, support |
| Straight-Line + Even Spread | The obligation's total, evenly across the full term | Ramp deals the customer wants smoothed |
| Delivery | All of it, in the period the line is marked delivered | One-time services, statements of work, training |
| Fulfillment | All of it, in the period the line is marked fulfilled | Goods you ship, hardware you provision |
| Event-Based | As it's billed. Each invoice line is earned in its own period. | Usage and consumption |
| % Complete | Up to a percentage you set in Salesforce or in NetSuite | Projects and milestone work |
Set the method on the product
The method passes from the NetSuite item to the obligation to the revenue plan.
- The item carries the Continuous Rev Rec Rule. It's set when the product syncs, or by an admin.
- Update POBs copies the rule to the obligation, but only if the obligation has none. A rule set on the obligation always wins. With no rule anywhere, the method is Straight-Line.
- Update Revenue Plans copies the obligation's rule to the plan and builds the schedule.
To change the method for one contract, change it on the obligation. To change it for everything new, change it on the item. Then run the engine again. Rows that haven't posted are rebuilt. Posted rows never change.
Spread subscriptions by the day
Straight-Line spreads each line over its own dates, then adds up the months. Partial months count by the day. If Kingsbridge Digital's line starts on the 15th, the first month recognizes only the days from the 15th on.
This matters when a contract changes mid-term. Say a customer cancels on the 13th. The schedule credits the rest of that month and stops there.
Smooth out ramp deals
Say Coralbay Technologies signs a three-year ramp on Additional API: 10 units in year one, 15 in year two and 20 in year three. That bills $12,500 a month in year one, $18,750 in year two and $25,000 in year three. By default, revenue follows the ramp. Check Even Spread (Full Term) on the obligation to recognize the total evenly across all three years. That's $18,750 every month.
Update POBs checks this box for you when it finds a ramp. It only ever turns the box on. Periods that have posted stay as they are.
Wait for delivery or fulfillment
These methods wait for proof from Salesforce. Your fulfillment process marks each order product delivered or fulfilled, with a date. That can be Dynamic Revenue Orchestrator, an order management system, a Flow or a person.
Then send the change to NetSuite. You don't book the order again.
- On the order, click Sync Order Lines on the sync card.
- Or let a Flow call Sync Order Lines to NetSuite when the fields change. See Placing the components.
When every line on the obligation is marked, the engine schedules all the revenue in that date's period. Until then, the plan stays empty and nothing is recognized. If you uncheck a line and sync again, NetSuite clears it too.
Recognize usage as it bills
An Event-Based obligation earns what's billed, when it's billed. Each invoice line becomes a schedule row in the invoice's period. Credit memo lines count as negative.
That's how Kingsbridge's token usage works. The obligation is created when the usage billing schedules arrive. Booked always equals Billed, and each usage invoice is earned in its own period.
Recognize projects by percent complete
A % Complete obligation has a percentage you update as the work moves along. Enter 40 for 40%. A value of 0.4 means 0.4%. Each engine run catches the schedule up to that share of the amount, in the current period.
You can set the percentage in Salesforce or in NetSuite. Pick one place per obligation.
Set it in Salesforce
Say Kingsbridge's Scope of Work is 40% done. Its order product carries the progress.
- Set % Complete on the order product to 40.
- Click Sync Order Lines on the order, or let a Flow send it.
- NetSuite updates the obligation and its revenue plan for you. Click Recognize Revenue when you close the period.
An obligation can hold several lines. NetSuite averages all of them, weighted by amount. A line with no percentage counts as 0.
Set it in NetSuite
- Update % Complete on the obligation.
- Click Update Revenue Plans.
- Click Recognize Revenue.
Next month, raise the percentage and run it again to recognize the increase.