| quote_basis (A) | EXW | quote revision with freight |
| quote_basis (B) | EXW_ONLY | indicative module RFQ, no destination |
| policy_terms.quote_basis (C) | EXW_PLUS_FREIGHT_OPTIONS | quote revision with freight |
| mode | AIR / SEA / ROAD | freight.mode uppercased |
| risk_level (A) | LOW / MEDIUM / HIGH | route_risk uppercased |
| risk_flag (A) | NONE / MEDIUM_BORDER_RISK / HIGH_BORDER_RISK | low / medium-border / high |
| customs_border_risk (C) | LOW / MEDIUM / HIGH | customs/border exposure (see §3.2) |
| validity_status (C) | VALID / STALE | active+valid_until≥quote_date / else |
| payment_terms | PREPAY_100 / NET_30_AFTER_PO | new-NGO → prepay; recurring → net30 |
| customer_policy (A) | RECURRING_NGO / RECURRING_COMMERCIAL / NEW_NGO … | segment uppercased |
| opportunity_stage / stage | WON / OPEN / LOST | closed_won→WON, open→OPEN, closed_lost→LOST |
| payment_status (R1) | PAID / PARTIAL / UNPAID | paid_amount vs amount |
| invoice_state (R2) | PAID / OPEN / VOID / UNKNOWN | invoice.status |
| payment_state (R2) | PAID / PARTIAL / UNPAID / UNKNOWN | paid_amount vs amount |
| revenue_recognition_status (R1) | RECOGNIZED / REQUIRED_MISSING / NOT_REQUIRED_UNPAID | paid+journal / paid no journal / unpaid |
| recognition_status (R2 milestone) | RECOGNIZED / MISSING_REVENUE_JOURNAL / NOT_REQUIRED_UNPAID / UNKNOWN | same logic, R2 enum names |
| recognition_status (R1 agg) | COMPLETE_FOR_PAID_MILESTONES / MISSING_FOR_PAID_MILESTONES / NOT_REQUIRED | all paid recognized / some missing / none paid |
| primary_accounting_action / accounting_action.action | RECORD_REVENUE_MS2 / VERIFY_REVENUE_ONLY / NO_ACCOUNTING_ACTION | missing journal / all recognized / none |
| debit_account | DEFERRED_REVENUE / ACCOUNTS_RECEIVABLE / CASH / NONE | milestone rev-rec → DEFERRED_REVENUE |
| credit_account | IMPLEMENTATION_SERVICES_REVENUE / DEFERRED_REVENUE / ACCOUNTS_RECEIVABLE / NONE | milestone rev-rec → IMPLEMENTATION_SERVICES_REVENUE |
| accounting owner_queue | ACCOUNTING / ACCOUNT_MANAGEMENT / NONE | accounting action → ACCOUNTING |
| collection_action | MONITOR_UNPAID_NOT_DUE / SEND_COLLECTION_NOTICE / NO_COLLECTION_ACTION | unpaid not due / overdue / all paid |
| collection owner_queue | ACCOUNT_MANAGEMENT / COLLECTIONS / NONE | monitor / send / none |
| task_type (R1) | COLLECTION / EVENT_INVITATION | per follow-up |
| next_action (R1) | COLLECT_UNPAID_MILESTONE / SEND_EVENT_INVITATION | per follow-up |
| event_status | SCHEDULED / ACTIVE / COMPLETED / CANCELLED / UNKNOWN | event.status |
| voucher_status | ACTIVE / DRAFT / EXPIRED / DISABLED / UNKNOWN | voucher.status |
| invite_action | SEND_BRIEFING_INVITE / VERIFY_INVITE_SENT / NO_INVITE_ACTION | scheduled→send |
| invite owner_queue | ACCOUNT_MANAGEMENT / EVENTS / NONE | event.follow_up_owner mapped |