- 15 minBilling setup per order, down from about an hour
- 2,200Hours of finance time given back across nearly 3,000 orders
- 8,400Revenue contracts on the rebuilt setup since 2023
The problem
Revenue numbers finance couldn't trust, with an external audit coming
When VCG took over, Cyderes' Advanced Revenue Management setup was broken. Revenue recognition wasn't producing numbers finance could trust, and the reporting built on top of it couldn't support a timely close. The auditors were going to ask how each number was calculated, and nobody could answer that yet.
The hardest cases were multi-year contracts sold from the Canadian business and billed in US dollars. Those were the balances that took longest to tie out every month.
Around revenue, the day-to-day work was slow and manual:
- Billing schedules set up by hand Each order took about an hour, and a schedule could easily drift out of line with the contract.
- Retainers took a long process Tracking prepaid retainers and drawing them down against later work was done outside the system.
- Commission amortization didn't work NetSuite's built-in feature couldn't handle Cyderes' contracts, so the cost of winning each deal wasn't spread correctly.
- Reports couldn't answer finance's questions The standard revenue and amortization reports lacked the breakdowns needed to make decisions, so the team rebuilt them in spreadsheets every month.
What we did
Fix revenue first, then take the manual work out
Revenue that follows the contract
We started with the revenue configuration itself. Arrangements, elements and recognition plans now follow the contracts as written, instead of being patched one transaction at a time after the fact. Every recognized amount traces back to its order and invoice, which is what the auditors needed to see.
Billing and retainers that set themselves up
Billing schedules now build straight from the sales order. An order is processed completely or not at all, so a schedule can't end up half-built or out of step with the contract. Invoices draw down the customer's retainer balance on their own, including managed services work that draws from a professional services retainer.
Commissions and reports finance can use
NetSuite's commission amortization didn't fit Cyderes' contracts, so we built the missing logic around it. Contract acquisition costs now spread over each contract's life and line up with the revenue they belong to. We also rebuilt the revenue, deferred revenue and amortization reports, in NetSuite Analytics and inside NetSuite, with the breakdowns finance had been building by hand. Each month, deferred and recognized revenue tie back to the general ledger, foreign-currency contracts included.
The results
An hour of billing work is now 15 minutes
Setting up billing for an order used to take about an hour. It now takes about 15 minutes, and across nearly 3,000 orders that adds up to roughly 2,200 hours of finance time.
Finance closes on time again. When the audit came, the revenue numbers held up.



