Skip to content

Revenue Items

Executive Summary

Purpose & Scope

  • Track revenue from deals including gross amounts, commission calculations, and recognition schedules
  • Scope includes: Revenue item creation from Deal Engine sales blocks, commission calculations, recognition schedules, billing item generation
  • Out of scope: Revenue posting to GL (future), revenue forecasting

Objectives

  • Maintain accurate revenue records for each sales item from deals
  • Support multiple revenue recognition styles (Immediate, Monthly, Completion)
  • Generate billing items (receivables) from revenue payment terms
  • Enable updates and revisions when deal terms change

Process Overview

Revenue Item Lifecycle

mermaid
flowchart TD
    DE[Deal Engine] -->|Sales Block| SB[Sales Block Processing]
    SB -->|Create| RI[Revenue Item]
    RI -->|Payment Terms| BI[Billing Items]
    RI --> SCH[Revenue Schedules]
    
    DE -->|Update| UPD{Has Changes?}
    UPD -->|Yes| REV[Revise Revenue Item]
    UPD -->|No| SKIP[No Action]
    REV --> BI
    
    SCH --> POST[Post to GL]

Figure 1: Revenue Item Lifecycle from Deal Engine

Core Rules & Requirements

Revenue Item Structure

ComponentDescription
HeaderClient, buyer, deal, gross amount, commission
SchedulesPeriodic revenue recognition amounts
Billing ItemsReceivables generated from payment terms

Status Codes

Item Status (revenue_item_status_cd)

StatusCodeDescription
UnconfirmedUPreliminary, dates/amounts not final
ConfirmedCDates and amounts finalized
ModifiedMHas been revised

Date Status (revenue_item_date_status_cd)

StatusCodeDescription
UnconfirmedUStart/end dates not confirmed
ConfirmedCDates confirmed

Commission Calculation

TypeIndicatorCalculation
Percentagecommission_flat_ind = falseGross × Commission %
Flatcommission_flat_ind = trueFixed commission amount
Commission Amount = Gross Amount × Commission Percentage
   OR
Commission Amount = Flat Amount (if flat indicator set)

Recognition Styles

StyleCodeDescription
ImmediateIFull commission recognized on start date
MonthlyMCommission spread evenly across months
CompletionCFull commission recognized on end date

Schedule Generation:

  • Immediate: Single schedule entry for start date
  • Monthly: Multiple entries from start to end, equal portions
  • Completion: Single schedule entry for end date

Sales Block Sync Rules

Revenue items are created and updated via Sales Block Processing:

  1. New Sales Item: Create revenue item + schedules + billing items
  2. Updated Sales Item:
    • Match by sales_item_ref
    • Compare fields for changes
    • If changed: create reversal + new item
    • If unchanged: no action
  3. Immutable Fields: If these change, full reversal required:
    • sales_item_ref, deal_id, uta_entity_id, client_id, buyer_id, currency_cd

Current Item Indicator

current_item_ind tracks active version:

ValueMeaning
trueThis is the current/active version
falseThis is a historical or reversed version

When revisions occur, old item is marked false, new item marked true.

User Interface Specifications

Revenue Items Page

Purpose: Search and view revenue items.

Search Criteria:

  • Client
  • Buyer
  • Deal
  • Status (Unconfirmed/Confirmed/Modified)
  • Date Range
  • Amount Range

Results Grid:

ColumnDescription
Revenue Item IDUnique identifier
Sales Item RefReference from Deal Engine
NameRevenue item name
DealAssociated deal
ClientClient party
BuyerBuyer party
Gross AmountTotal gross
Commission %Commission percentage
Commission AmtCalculated commission
StatusU / C / M
RecognitionI / M / C
Start DateRevenue start
End DateRevenue end

Actions:

  • View Details
  • View Schedules
  • View Billing Items

Revenue Item Detail View

Header:

  • Revenue Item ID, Name
  • Sales Item Ref
  • Deal, Client, Buyer
  • UTA Entity, Department

Amounts:

FieldValue
Gross Amount
Commission TypeFlat / Percentage
Commission %
Commission Amount
Cash Collected(calculated)

Dates:

FieldValue
Start Date
End Date
Date StatusUnconfirmed / Confirmed
Recognition StyleImmediate / Monthly / Completion

Revenue Schedules Tab

Columns:

ColumnDescription
Schedule IDUnique identifier
Revenue DateRecognition date
Revenue AmountAmount for this period
Posting StatusU (Unposted) / P (Posted)
Posting DateWhen posted to GL

Client Revenue Tab

Purpose: View revenue items for a specific client.

Displays filtered view of revenue items where client_id matches.

Data Requirements

Revenue Items Table (revenue_items)

Field NameData TypeDescription
revenue_item_id (PK)SerialUnique identifier
uta_entity_id (FK)IntegerUTA entity
agent_group_idIntegerAgent group
sales_item_refStringReference from Deal Engine
revenue_item_nameStringDescription
revenue_item_status_cdEnumU, C, M
revenue_item_date_status_cdEnumU, C
deal_id (FK)IntegerAssociated deal
client_id (FK)IntegerClient party
contracted_party_id (FK)IntegerContracted party
buyer_id (FK)IntegerBuyer party
project_idIntegerProject reference
department_id (FK)IntegerDepartment
currency_cdStringCurrency code
revenue_item_gross_amtDecimalGross amount
revenue_item_commission_flat_indBooleanFlat commission flag
revenue_item_commission_percDecimalCommission percentage
revenue_item_commission_amtDecimalCommission amount
revenue_item_start_dtDateStart date
revenue_item_end_dtDateEnd date
revenue_item_rec_style_cdEnumI, M, C
current_item_indBooleanIs current version

Revenue Item Schedules Table (revenue_item_schedules)

Field NameData TypeDescription
revenue_item_schedule_id (PK)SerialUnique identifier
revenue_item_id (FK)IntegerParent revenue item
revenue_amtDecimalAmount for this period
revenue_dtDateRecognition date
revenue_item_posting_status_cdEnumU, P
revenue_item_posting_dtDateGL posting date

See Also

DocumentRelationship
Billing ItemsGenerated from revenue payment terms
Sales Block ProcessingCreates/updates revenue items

Gherkin Scenarios

Scenario: Create Revenue Item from Sales Block

gherkin
Feature: Revenue Item Creation

  Scenario: Sales block creates new revenue item
    Given a new sales item from Deal Engine
    With gross amount $100,000
    And commission percentage 10%
    And recognition style "Monthly"
    And start date 2026-01-01 and end date 2026-12-31
    
    When Sales Block Processing runs
    
    Then a new revenue item should be created
    And commission amount should be $10,000
    And 12 revenue schedules should be created
    And each schedule should have amount $833.33
    And billing items should be created from payment terms

Scenario: Monthly Revenue Schedule Generation

gherkin
Feature: Revenue Schedule Generation

  Scenario: Monthly recognition splits commission evenly
    Given a revenue item with:
      | Commission Amount | $12,000 |
      | Start Date | 2026-01-01 |
      | End Date | 2026-12-31 |
      | Recognition Style | Monthly |
    
    When schedules are generated
    
    Then 12 schedule entries should exist
    And each entry should have amount $1,000
    And dates should be first of each month

Scenario: Revenue Item Revision

gherkin
Feature: Revenue Item Revision

  Scenario: Deal update triggers revenue item revision
    Given an existing revenue item for sales_item_ref "SI-001"
    With gross amount $100,000
    
    When Deal Engine sends update for "SI-001"
    With new gross amount $120,000
    
    Then the original revenue item should have current_item_ind = false
    And a new revenue item should be created with gross $120,000
    And new schedules and billing items should be generated

Scenario: Immediate Recognition

gherkin
Feature: Immediate Recognition

  Scenario: Single schedule for immediate style
    Given a revenue item with recognition style "Immediate"
    And commission amount $10,000
    And start date 2026-03-15
    
    When schedules are generated
    
    Then exactly 1 schedule entry should exist
    And the schedule date should be 2026-03-15
    And the schedule amount should be $10,000

Confidential. For internal use only.