top of page

Managing the ASC 606 Revenue Recognition Standard in ERP Systems

  • Writer: John Hannan
    John Hannan
  • Feb 8, 2023
  • 4 min read

Updated: Nov 13


Accounting Staff from Marshalltown Bio discuss their ASC606 compliance during a team meeting.

ASC 606 isn’t a “flip a switch” accounting change. It’s a cross‑functional data and process design project that touches contracts, billing, projects, inventory, and the general ledger. Companies that succeed do three things well: (1) translate the 5‑step model into ERP objects and events, (2) build robust schedules and controls for recognition, and (3) test edge‑cases before go‑live.


Why this still trips teams up

Most ERP platforms can post revenue. Fewer can model performance obligations, allocate price, and handle contract changes without spreadsheets. The result is month‑end firefighting, manual JE’s, and audit pain. The fix is design, not heroics.

What “good” looks like

  • Clear system of record for contracts, obligations, and recognition schedules

  • Separation of billing and revenue (billing events shouldn’t equal revenue events)

  • Automated allocation of transaction price to performance obligations

  • Contract modification logic (prospective vs. retrospective)

  • Disclosure‑ready reports (contract assets/liabilities rollforward, RPO)

  • Evidence and audit trails that pass inspection without recreating the month


Map the 5 steps of ASC 606 Revenue Recognition Standard in your ERP

The 5‑step model is the policy. Below is what it means in the system.

  1. Identify the contract(s)

    • In ERP - Contract header(s) and related orders/projects tied by a Contract ID. Capture start/end dates, cancellation rights, variable consideration terms, and acceptance criteria. Decide when multiple POs constitute a single contract (same commercial substance).

  2. Identify performance obligations (POBs)

    • In ERP - Tag items/tasks as distinct obligations and group them into a revenue arrangement (or “revenue elements”). For services/projects, link POBs to milestones or cost‑to‑complete measures. Don’t bury POB identity inside text—use fields you can report on.

  3. Determine the transaction price

    • In ERP - Model variable consideration (rebates, price protection, credits, usage), financing components, and noncash consideration. Store the constraint method and caps so true‑ups can be automated, not journaled.

  4. Allocate to POBs by stand‑alone selling price (SSP)

    • In ERP - Maintain an SSP table (ranges or percentages). On contract creation, allocate the total price relatively to each POB and stamp allocations on the revenue elements for audit.

  5. Recognize revenue

    • In ERP - Build recognition schedules by POB

      • Point in time - Event‑driven (shipment, delivery, acceptance)

      • Over time - Input (cost‑to‑complete, hours) or output (milestones) measuresSeparate billing schedules from revenue schedules. Post to Contract Asset (unbilled) and Contract Liability (deferred) accounts as required.


A simple, concrete example

  • Contract (12 months) - Subscription (SSP $120,000) + Implementation (SSP $30,000).Transaction price: $135,000 (bundle discount).

  • Allocation by SSP

    • Subscription: 120/150 = 80% → $108,000 revenue over 12 months

    • Services: 30/150 = 20% → $27,000 over milestones/cost‑to‑complete

  • Day‑1 invoice (100% upfront)

    • Dr AR $135,000

    • Cr Contract Liability (Deferred Revenue) $135,000

  • Month‑end

    • Subscription recognition: $9,000/month (108,000 ÷ 12)

    • Services recognition: post as milestones/hours complete

    • Each entry: Dr Contract Liability/Asset, Cr Revenue (by POB)

Everything ties back to the revenue arrangement with audit‑ready allocations and schedules.


Design blueprint - What to configure before you touch legacy data

  1. Data model

    • Contract header, revenue arrangement, POB type, allocation, variable consideration method, financing component flag, acceptance required (Y/N).

  2. Chart of accounts & dimensions

    • Contract Asset, Contract Liability, Unbilled AR, Deferred Revenue (by product line), and disclosure dimensions (region/line of business) to support ASC 606 footnotes.

  3. Schedules & triggers

    • Auto‑generate schedules on order activation, shipment, project start, or milestone complete. Allow re‑forecasting when estimates change.

  4. Contract modifications

    • Encode rules for distinct added goods/services (treat as new contract) vs. combined modifications (reallocate and adjust schedules).

  5. Controls

    • Roles that prevent billing users from editing revenue rules; period locks; approval for SSP table changes.

  6. Reporting

    • RPO (remaining performance obligations), contract asset/liability rollforward, disaggregation (by product/region), and true‑up logs.


Edge cases you should script into UAT (and make auditors smile)

  • Variable consideration - Volume rebates, price protection credits, returns allowances (constraint + release).

  • Customer acceptance - Defer recognition until acceptance captured in ERP.

  • Significant financing component - Identify and book interest income/expense when payment timing diverges from transfer of control.

  • Project methods - Milestone vs. cost‑to‑complete (EAC updates) and re‑estimation effects.

  • Contract modifications - Add, remove, or discount elements—prospective vs. cumulative catch‑up.

  • Multi‑currency and multi‑entity - Translation effects on deferrals and intercompany eliminations.

  • Evergreen/renewals - New contract vs. modification; SSP table updates at renewal.

  • Bundles - Hardware + subscription + services; warranties (assurance vs. service).

  • Distribution/Channel - Bill‑and‑hold, consignment, price concessions.


Implementation plan that works

Phase 0 — Diagnostic (2–4 weeks)

  • Inventory revenue streams and contracts; sample 15–25 contracts per stream. Document POBs, variable consideration, acceptance, and modifications. Decide disclosure segments. Align with auditors.

Phase 1 — Prototype

  • Stand up a revenue sandbox. Load 8–10 real contracts per stream. Configure POB types, SSP tables, allocation rules, schedules, and contract asset/liability accounts. Validate reports (RPO, rollforwards).

Phase 2 — Build & migration

  • Generate day‑1 deferred revenue and unbilled schedules from legacy. Reconcile to GL and sub‑ledgers. Lock policies (who can change SSP, recognition methods).

Phase 3 — UAT & auditor dry‑run

  • Execute scripted scenarios (including edge cases above). Evidence for each step: allocations, schedules, postings, and modifications. Obtain auditor concurrence on the approach.

Cutover & hypercare

  • Freeze contract entry dates, migrate opens, reconcile, and run first month close with a parallel check.

  • Track KPIs - Close time, manual JE count, % auto allocations, and audit adjustments.


What if your ERP is “almost there”?

If native revenue recognition is limited, evaluate:

  • Add‑on revenue subledgers or ISV modules that integrate at the contract/POB level

  • iPaaS patterns that create schedules off operational events and post summarized journals

  • Multi‑book (US GAAP vs IFRS) support if you report both

Require round‑trip proof in demos: create contract → allocate → recognize → modify → re‑recognize → disclose.


Governance - Policies you must fix in writing

  • POB catalog with patterns (subscription, professional services, hardware, warranty, usage)

  • SSP methodology (observable prices vs. estimation, update cadence, approval workflow)

  • Variable consideration policy and constraint method

  • Modification policy with examples (and how the ERP treats each)

  • Disclosure mapping (dimensions and data owners)


Quick checklist (print and bring to design)

  •  Contract object and unique Contract ID

  •  POB tagging and revenue arrangement structure

  •  SSP table with governance and audit trail

  •  Allocation engine tested across currencies

  •  Separate billing vs. revenue schedules

  •  Contract asset/liability accounts in COA

  •  Modification logic (prospective vs. cumulative)

  •  RPO and rollforward reports tie to GL

  •  Evidence package for auditors (allocations, schedules, postings)

  •  UAT scripts cover variable consideration, acceptance, and returns


Bottom line

Being successful with the ASC 606 Revenue Recognition Standard in ERP is design + discipline. If your ERP models POBs, allocation, schedules, and modifications cleanly—and your team tests the hairy edge‑cases—you’ll reduce manual journals, close faster, and withstand audits without drama. If you’d like, I can turn this blueprint into a scripted demo/UAT pack tailored to your revenue streams so your next iteration in ERP lands right the first time.

Popular Articles

CONTACT US

By submitting this form, you agree to our Privacy Policy.

Thanks for your submission.

(856) 952-2632

Lake Ariel, PA  |  Philadelphia, PA

  • twitter
  • linkedin

©2024 by John Hannan LLC

bottom of page