Revenue Verification Workflow
1. Executive Summary
Purpose
Revenue Verification is a monthly-close workflow in which the Finance team confirms that revenue item statuses, date statuses, and end-date flags are accurate before those items can be posted to the general ledger. It surfaces revenue items that need human review, organizes them by risk category and coverage requirement, and records an immutable audit trail of every verification decision.
The workflow replaces ad-hoc spreadsheet-based reconciliation with a structured dashboard that tracks confirmation coverage, flags deal-level anomalies, and stores all decisions in revenue_verification_audit for compliance reporting.
Scope
Covered:
- Revenue Verification dashboard — the central view showing verification progress and risk categories
- Required confirmation workflows: Items to Confirm (revenue status) and Dates to Confirm (date status)
- Coverage-threshold review: Services Complete and Services In-Progress above the dollar threshold
- Deal value checks: items starting/ending this month, negative deal totals, tentative end dates
- Setting revenue item status (
U,C,M), date status (U,C), andtentative_end_date_ind - Adding free-text notes to revenue items
- Marking in-progress items as reviewed (
DATES_REVIEWEDevent) - Verification audit trail (
revenue_verification_audit)
Not covered (documented separately):
- Revenue item and billing item creation — see Billing Items Workflow
- Rebilling and deduction management — see Billing Items Workflow
- GL posting of revenue transactions — see Accounting Jobs
Key Objectives
- Ensure 100% of revenue items requiring confirmation are reviewed before month-end close.
- Surface high-value in-progress items above a configurable dollar threshold for coverage review.
- Flag unusual deal-level patterns (items starting/ending mid-month, negative totals, provisional end dates).
- Produce an immutable, field-level audit record of all verification decisions for compliance.
2. Process Overview
flowchart TD
A[Finance team opens Revenue Verification dashboard] --> B{Filter by Entity, Department, Month}
B --> C[Dashboard shows Required Confirmations and Coverage stats]
C --> D[Required Confirmations section]
D --> E[Items to Confirm: revenue items with revenue_status = U]
D --> F[Dates to Confirm: revenue items with date_status = U for completed services]
C --> G[Deal Value Checks section]
G --> H[Items Starting/Ending This Month]
G --> I[Negative Deal Totals]
G --> J[Tentative End Dates]
C --> K[Coverage Threshold section]
K --> L[Services Complete above threshold]
K --> M[Services In-Progress above threshold]
E --> N[User opens item detail panel]
F --> N
H --> N
I --> N
J --> N
L --> N
M --> N
N --> O{Action}
O --> P[Set revenue_status: C or M]
O --> Q[Set date_status: C]
O --> R[Toggle tentative_end_date_ind]
O --> S[Add note]
O --> T[Mark Reviewed - for in-progress items]
P --> U[revenue_verification_audit row written: REVENUE_STATUS]
Q --> V[revenue_verification_audit row written: DATE_STATUS]
R --> W[revenue_verification_audit row written: TENTATIVE_END_DATE]
S --> X[revenue_verification_audit row written: NOTE]
T --> Y[revenue_verification_audit row written: DATES_REVIEWED]
U --> Z[Dashboard coverage stats update]
V --> Z
W --> Z
X --> Z
Y --> ZWalkthrough
Open the dashboard — The Finance team navigates to
/revenue/verification. Top-level filters (Entity, Department, Month) apply across all dashboard sections simultaneously.Check Required Confirmations — Two cards show items requiring 100% completion: "Items to Confirm" (revenue items with
revenue_item_status_cd = 'U') and "Dates to Confirm" (items withrevenue_item_date_status_cd = 'U'whose service dates have passed). No items in these categories can be left unreviewed.Check Coverage — A banner shows total verified revenue as a percentage of all revenue in scope. The user can set a target coverage threshold (80–95%) and a minimum dollar threshold to focus on high-value items.
Review Deal Value Checks — Four cards surface anomalous patterns for the month: items starting this month, items ending this month, deals with negative totals, and items with
tentative_end_date_ind = true. These are review-optional but must be acknowledged.Open item detail panel — Clicking any item opens a detail side panel showing: full revenue item fields, recognition schedule, rebilling history, and the full
revenue_verification_audittimeline for that item.Take action — From the detail panel the user can:
- Set revenue status — Confirm (
C) or mark as Missed (M). Writes aREVENUE_STATUSaudit record. - Set date status — Confirm dates (
C). Writes aDATE_STATUSaudit record. - Toggle tentative end date — Mark the end date as provisional or confirmed. Writes a
TENTATIVE_END_DATEaudit record. - Add a note — Free text attached to the item. Writes a
NOTEaudit record. - Mark Reviewed — For in-progress items above threshold, marks the item as reviewed for this close cycle without changing its status. Writes a
DATES_REVIEWEDaudit record.
- Set revenue status — Confirm (
Repeat until coverage targets are met — The dashboard updates as items are confirmed. Month-end close proceeds once Required Confirmations reach 100% and overall coverage meets the threshold.
3. Business Rules
3.1 Required Confirmations Must Reach 100%
Business rule: "Items to Confirm" and "Dates to Confirm" are not coverage-threshold items — they require 100% completion. Every revenue item with revenue_item_status_cd = 'U' (Items to Confirm) and every completed-service item with revenue_item_date_status_cd = 'U' (Dates to Confirm) must be actioned before close.
3.2 Coverage Threshold Is Configurable
Business rule: The Finance team sets a target coverage percentage (default 90%) and an optional minimum dollar threshold. Items below the threshold are excluded from coverage calculations. The dashboard displays progress toward the target and flags when it has been reached.
3.3 Verification Audit Records Are Immutable
Business rule: Every status change, date status change, note, tentative end date toggle, and reviewed marker writes a new row to revenue_verification_audit. Rows are never updated or deleted. The previous value for any field is inferred from the prior audit record of the same field_type_cd for the same revenue_item_id.
Foundation reference: Billing Items Data Model — revenue_verification_audit
3.4 Status Transitions Are Forward-Only Via Audit
Business rule: Revenue item status can change from U to C or M, but there is no "undo" button. A new audit record is written each time the status changes, and the current status is derived from the most recent audit record. Users can re-set a status by applying a new action — the audit trail preserves all prior decisions.
3.5 Tentative End Date Flag Surfaces in Deal Value Checks
Business rule: When revenue_item.tentative_end_date_ind = true, the revenue item appears in the "Tentative End Dates" deal value check card. Finance must review these items because the end date may affect revenue recognition schedules and GL posting. Setting tentative_end_date_ind = false removes the item from this card.
Foundation reference: Billing Items Data Model — revenue_items.tentative_end_date_ind
3.6 Notes Are Additive, Not Replacements
Business rule: Each note added to a revenue item creates a new revenue_verification_audit row with field_type_cd = 'NOTE'. Prior notes are not replaced — the full note history is preserved and visible in the audit timeline on the detail panel.
3.7 Mark Reviewed Is for In-Progress Items Only
Business rule: The "Mark Reviewed" action (which writes a DATES_REVIEWED audit event) is available only for items in the "Services In-Progress" view — items whose service is still ongoing but whose revenue value exceeds the coverage threshold. It does not change revenue_item_status_cd or revenue_item_date_status_cd. It signals that the Finance team has reviewed the item for this close cycle.
4. Verification Categories
4.1 Required Confirmations
| Category | Criteria | Required Action |
|---|---|---|
| Items to Confirm | revenue_item_status_cd = 'U' and service complete | Set status to C (Confirmed) or M (Missed) |
| Dates to Confirm | revenue_item_date_status_cd = 'U' and service complete | Set date status to C (Confirmed) |
4.2 Coverage-Threshold Reviews
| Category | Criteria | Required Action |
|---|---|---|
| Services Complete | Service complete; revenue ≥ dollar threshold | Confirm status/dates or add note |
| Services In-Progress | Service ongoing; revenue ≥ dollar threshold | Mark Reviewed or confirm if appropriate |
4.3 Deal Value Checks
| Category | Criteria | Purpose |
|---|---|---|
| Items Starting This Month | revenue_item_start_dt falls in the current month | Validate that new-booking revenue recognition is correct |
| Items Ending This Month | revenue_item_end_dt falls in the current month | Validate that ending-service revenue recognition is complete |
| Negative Deal Totals | Deal's aggregate revenue item total < 0 | Flag reversals or data errors |
| Tentative End Dates | tentative_end_date_ind = true | Flag items whose end date and recognition timeline may change |
5. Audit Field Types
All verification actions write to revenue_verification_audit. The field_type_cd identifies what changed:
field_type_cd | new_value format | Triggered by |
|---|---|---|
REVENUE_STATUS | Status code (U, C, M) | Setting revenue item status |
DATE_STATUS | Status code (U, C) | Setting date status |
NOTE | Note text (free text) | Adding a note |
TENTATIVE_END_DATE | true or false | Toggling tentative end date flag |
DATES_REVIEWED | Timestamp string | Clicking "Mark Reviewed" on in-progress item |
Foundation reference: Billing Items Data Model — revenue_verification_audit
6. Permissions & Role-Based Access
Revenue Verification is operated by the Finance / Client Accounting team. No separate new role is defined — access follows existing role permissions on revenue items.
| Action | CASH_PROCESSOR | IT | Finance (Accounting) |
|---|---|---|---|
| View dashboard | Yes | Yes | Yes |
| Set revenue status (C / M) | — | Yes | Yes |
| Set date status (C) | — | Yes | Yes |
| Toggle tentative end date | — | Yes | Yes |
| Add note | Yes | Yes | Yes |
| Mark Reviewed | — | Yes | Yes |
7. Integration Points
7.1 Upstream
| Source | Data Provided |
|---|---|
| Billing Items Workflow | Revenue items and their current revenue_item_status_cd, revenue_item_date_status_cd, tentative_end_date_ind |
| Deal Engine | Recognition schedules (revenue_item_schedules) shown in the detail panel |
7.2 Downstream
| Consumer | Data Consumed |
|---|---|
| GL Posting Batch | Confirmed (C) revenue items and their recognition schedules become eligible for GL posting |
| AR Aging / Reports | revenue_item_status_cd and revenue_item_date_status_cd affect which items surface in coverage and aging reports |
8. Functional Screen Requirements
8.1 Revenue Verification Dashboard
Route: /revenue/verification
Top filter bar: Entity (multi-select), Department (multi-select), Month (month picker). Applies to all sections.
Required Confirmations section:
- Two cards: "Items to Confirm" count and "Dates to Confirm" count
- Each card shows item count and links to the sub-workflow list view
- Target: 0 remaining in each card before close
Total Revenue Coverage banner:
- Verified revenue ($) / Total revenue ($) as a percentage bar
- Target threshold selector (dropdown: 80%, 85%, 90%, 95%)
- Dollar threshold override (manual input: ignore items below $X)
Deal Value Checks section:
- Four cards: Items Starting This Month, Items Ending This Month, Negative Deal Totals, Tentative End Dates
- Each card shows item count and configurable minimum total revenue threshold
8.2 Item Detail Panel (Side Sheet)
Triggered by: Clicking any revenue item row across all sub-workflow list views.
| Section | Content |
|---|---|
| Header | Revenue item name, status badge (U/C/M), date status badge (U/C), tentative end date badge |
| Financial summary | Gross amount, commission %, commission amount, start/end dates |
| Recognition schedule | revenue_item_schedules rows: date, amount, posting status |
| Rebilling history | Prior billing item versions if rebilling has occurred |
| Audit timeline | All revenue_verification_audit rows for this item, in reverse chronological order, with field type icons and actor info |
| Action panel | Status selector, date status selector, tentative end date toggle, note text area, Mark Reviewed button (in-progress view only) |
9. Cross-References
| Document | Relationship |
|---|---|
| Billing Items Workflow | Revenue items and billing items are created and managed there; this workflow operates on the same records during month-end close |
| Billing Items Data Model | revenue_item, revenue_verification_audit table definitions and field-type codes |
| AR Aging Workflow | AR aging uses revenue_item_status_cd and billing_item open/current flags to produce aging reports |