Order to Cash Process and Revenue Analytics Set · Manufacture (US)
Overview
A complete order to cash record for a fictional United States manufacturer between 2015 and 2026, modelled as an ERP would hold it and delivered in vendor-neutral tables that map onto multiple ERP and sales and distribution suites. The chain runs customer inquiry, quotation, contract, sales order, credit check, availability confirmation, outbound delivery, picking, packing, goods issue, shipment, billing document, accounting document, open receivable, dunning and incoming payment, and every stage carries both its header and its line items, its own approval and block trail, and the organisational spine a real system stamps on each document: sold-to customer, payer, sales organisation, distribution channel, division, sales group, sales representative, plant and shipping point. Nothing is drawn in isolation. An order line prices itself from the condition rows beneath it, and the base condition is the price record that customer and material agreed, carried forward on the list price index or frozen at the year a contract was signed, which is why three customers pay three different prices for the same part on the same day. Confirmed quantity cannot exceed what the availability check allowed, delivered cannot exceed confirmed, billed cannot exceed delivered and returned cannot exceed delivered. Revenue posts at billing and cost of goods at goods issue, so margin is a difference rather than a column. A receivable opens at the invoice total and closes only when the cash, the cash discount taken, the deduction, the residual and any write off add back to it. Foreign currency converts at the rate of the period a document posted in rather than at today's rate, and each document carries a document date and a posting date so cycle times are measurable rather than asserted. The whole chain flattens into one event log of 2,101,192 rows keyed on the sales order as the case, with a variant signature carried on every case. The book is what an industrial manufacturer actually sells. 250 customers sit in seven segments covering automotive, industrial and agricultural original equipment makers, distributors, energy, government and the group's own plants, buying 1,800 finished goods across six divisions: drive systems, fluid power and hydraulics, precision machined assemblies, control cabinets and electronics, fabricated structures and spare parts kits. The asymmetry is the point a model has to learn. Industrial machinery builders are 24.4 per cent of the customer count and 9.6 per cent of the invoiced revenue, while automotive accounts are 10.0 per cent of the count and 16.0 per cent of the revenue. Order headers rise from 4,062 in 2015 to 7,585 in 2026, quarter end concentrates order value and deepens discounts, and payment behaviour is a permanent property of the account rather than a fresh draw, so value-weighted days sales outstanding sits near 51 in the years before 2020, reaches 64.5 in 2020 and is still 54.1 in 2023. Fourteen anomaly classes are injected at documented rates and labelled in their own register: late delivery, availability shortfall, split delivery, order cancellation, manual price override, price variance, quality return, delivery quantity mismatch, credit block, short payment, overpayment, invoice dispute, duplicate invoice and bad debt write off. Built for revenue and receivables analytics, credit risk and payment behaviour scoring, process mining across the document flow and its event log, days sales outstanding and collections forecasting, order promising and delivery reliability work, deduction and dispute prediction, pricing and discount analysis, and for grounding sales and finance copilots and AI agents in data whose every relationship holds. It shares its company codes, plants, fiscal calendar, currencies, exchange rates and material keys with MFGP2P932, the procure to pay set for the same fictional company, so the buy side and the sell side join into one working capital picture that neither set is alone.
Document Flow
Every stage of the chain, counted from the data that shipped. The route percentages are how requisition lines actually reached the market, not a policy target.
Row Counts by Table
Counted from the files that ship, not estimated.
| Table | Rows |
|---|---|
| o2c_years | 12 |
| o2c_periods | 144 |
| o2c_company_codes | 4 |
| o2c_plants | 7 |
| o2c_sales_orgs | 6 |
| o2c_sales_groups | 10 |
| o2c_territories | 9 |
| o2c_sales_reps | 92 |
| o2c_quotas | 2,900 |
| o2c_profit_centers | 6 |
| o2c_shipping_points | 8 |
| o2c_routes | 10 |
| o2c_currencies | 8 |
| o2c_exchange_rates | 1,152 |
| o2c_payment_terms | 8 |
| o2c_incoterms | 6 |
| o2c_document_types | 19 |
| o2c_condition_types | 21 |
| o2c_material_groups | 24 |
| o2c_gl_accounts | 19 |
| o2c_users | 247 |
| o2c_customers | 250 |
| o2c_customer_contacts | 472 |
| o2c_customer_bank_accounts | 250 |
| o2c_customer_partners | 1,213 |
| o2c_customer_hierarchy | 93 |
| o2c_customer_credit | 2,154 |
| o2c_materials | 1,800 |
| o2c_material_plants | 3,279 |
| o2c_price_records | 5,460 |
| o2c_customer_material_info | 199 |
| o2c_contracts | 348 |
| o2c_contract_items | 1,209 |
| o2c_contract_releases | 14,750 |
| o2c_inquiries | 3,147 |
| o2c_inquiry_items | 6,894 |
| o2c_quotations | 14,087 |
| o2c_quotation_items | 31,082 |
| o2c_quotation_followups | 21,823 |
| o2c_quotation_outcomes | 14,087 |
| o2c_credit_checks | 60,955 |
| o2c_credit_releases | 2,470 |
| o2c_sales_orders | 66,931 |
| o2c_sales_order_items | 246,086 |
| o2c_sales_order_conditions | 1,260,185 |
| o2c_sales_order_approvals | 21,566 |
| o2c_schedule_lines | 279,581 |
| o2c_order_change_log | 17,687 |
| o2c_deliveries | 100,884 |
| o2c_delivery_items | 251,680 |
| o2c_picking_tasks | 100,884 |
| o2c_handling_units | 226,656 |
| o2c_shipments | 100,884 |
| o2c_returns | 2,402 |
| o2c_return_items | 2,402 |
| o2c_service_confirmations | 6,186 |
| o2c_billing_due_list | 87,580 |
| o2c_invoices | 87,804 |
| o2c_invoice_items | 254,318 |
| o2c_invoice_blocks | 6,334 |
| o2c_credit_memos | 2,101 |
| o2c_credit_memo_items | 2,101 |
| o2c_accounting_documents | 89,974 |
| o2c_ar_open_items | 87,580 |
| o2c_dunning_history | 14,558 |
| o2c_payment_advices | 53,303 |
| o2c_payment_advice_items | 53,303 |
| o2c_incoming_payments | 85,966 |
| o2c_payment_allocations | 85,966 |
| o2c_deductions | 6,141 |
| o2c_disputes | 1,071 |
| o2c_rebate_agreements | 254 |
| o2c_rebate_settlements | 407 |
| o2c_revenue_monthly | 9,741 |
| o2c_customer_scorecards | 2,206 |
| o2c_sla_metrics | 66,931 |
| o2c_anomalies | 88,615 |
| o2c_process_events | 1,892,126 |
| o2c_process_variants | 19,368 |
Table Relationships
One parent record and seven child tables, each joined back on the same key.
Schema
Every table ships with typed columns, referential integrity, and documentation.
| Column | Type | Description |
|---|---|---|
| year_id | varchar(8) | Financial year key, FY followed by the calendar year. |
| calendar_year | integer | The four digit year. |
| period_start | date | First calendar day of the period. |
| period_end | date | Last calendar day of the period. |
| volume_growth_pct | numeric(5,1) | Year on year change in order VOLUME, before any price effect. |
| commodity_price_index_2015_100 | numeric(6,1) | Raw material price index with 2015 as 100. It moves standard cost, and reaches the sell price only through the annual list increase and the surcharge conditions. |
| freight_cost_index_2015_100 | numeric(6,1) | Freight cost index with 2015 as 100, which drives the freight conditions on an order and the carrier charge on a shipment. |
+6 more columns in o2c_years. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| period_id | varchar(16) | Monthly posting period key, FP followed by year and month. Every document posts into one. |
| year_id | varchar(8) | Financial year key, FY followed by the calendar year. |
| calendar_year | integer | The four digit year. |
| month_number | varchar(8) | Month within the year, 1 to 12. |
| month_name | varchar(16) | Month name in English. |
| period_start | date | First calendar day of the period. |
| period_end | date | Last calendar day of the period. |
+5 more columns in o2c_periods. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| company_code | varchar(8) | Legal entity that books the receivable. Same values as the procure to pay set, so the two join. |
| company_code_name | varchar(56) | Name of the legal entity. |
| country_code | varchar(8) | ISO 3166-1 alpha-2 country code. |
| local_currency | varchar(16) | Currency the entity keeps its books in. |
| group_currency | varchar(16) | Currency the group consolidates in. |
| credit_control_area | varchar(16) | Area the credit limit and the exposure are managed in. A customer has one limit per area, not one per order. |
| active_flag | boolean | False once the row is retired but kept for audit. |
+1 more columns in o2c_company_codes. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| plant_code | varchar(8) | Manufacturing site the goods ship from. |
| plant_name | varchar(32) | Name of the plant. |
| company_code | varchar(8) | Legal entity that books the receivable. Same values as the procure to pay set, so the two join. |
| city | varchar(16) | City of the address. |
| state_province | varchar(16) | State or province. |
| country_code | varchar(8) | ISO 3166-1 alpha-2 country code. |
| plant_type | varchar(16) | What the plant does: assembly, machining, fabrication, electronics or components. |
+3 more columns in o2c_plants. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| sales_org | varchar(16) | Sales organisation that owns the sale and its terms. |
| sales_org_name | varchar(48) | Name of the sales organisation. |
| company_code | varchar(8) | Legal entity that books the receivable. Same values as the procure to pay set, so the two join. |
| local_currency | varchar(16) | Currency the entity keeps its books in. |
| revenue_share_target | numeric(5,2) | Share of revenue this unit is modelled to carry. The generated documents reproduce it rather than being drawn against it. |
| active_flag | boolean | False once the row is retired but kept for audit. |
| Column | Type | Description |
|---|---|---|
| sales_group | varchar(16) | Desk that owns the account. |
| sales_group_name | varchar(56) | Name of the desk. |
| distribution_channel | integer | Route to market the sale is booked under: 10 direct to original equipment accounts, 20 authorised distributors, 30 aftermarket and spare parts, 40 build to print for third party brands. |
| distribution_channel_name | varchar(48) | What the distribution channel means in words. |
| quote_turnaround_index | numeric(5,2) | How quickly this desk answers a quotation relative to the average desk. Below 1 is faster. |
| price_discipline_index | numeric(5,2) | How hard this desk holds price, 0 to 1. A disciplined desk discounts less, including at quarter end. |
| active_flag | boolean | False once the row is retired but kept for audit. |
+1 more columns in o2c_sales_groups. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| territory_code | varchar(8) | Sales territory key. |
| territory_name | varchar(24) | Name of the territory. |
| revenue_share_target | numeric(5,2) | Share of revenue this unit is modelled to carry. The generated documents reproduce it rather than being drawn against it. |
| state_province_list | varchar(40) | States the territory covers, space separated. Empty for the international territory, which is defined by exclusion. |
| state_count | integer | How many states the territory covers. |
| active_flag | boolean | False once the row is retired but kept for audit. |
| Column | Type | Description |
|---|---|---|
| sales_rep_id | varchar(8) | Representative who owns the account. On a document it is the rep who owned it on that date, which is not always the rep named on the customer master. |
| user_id | varchar(8) | Internal user number. Primary key of users and the foreign key wherever a person acted. |
| display_name | varchar(24) | Person name as it appears in the system. |
| sales_org | varchar(16) | Sales organisation that owns the sale and its terms. |
| sales_office | varchar(16) | Office the desk reports into. |
| territory | varchar(16) | Sales territory the account sits in. |
| company_code | varchar(8) | Legal entity that books the receivable. Same values as the procure to pay set, so the two join. |
+12 more columns in o2c_sales_reps. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| quota_id | varchar(16) | Key of one representative and quarter combination. |
| sales_rep_id | varchar(8) | Representative who owns the account. On a document it is the rep who owned it on that date, which is not always the rep named on the customer master. |
| user_id | varchar(8) | Internal user number. Primary key of users and the foreign key wherever a person acted. |
| sales_org | varchar(16) | Sales organisation that owns the sale and its terms. |
| sales_office | varchar(16) | Office the desk reports into. |
| territory | varchar(16) | Sales territory the account sits in. |
| calendar_year | integer | The four digit year. |
+13 more columns in o2c_quotas. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| profit_center | varchar(16) | Profit centre the revenue and the cost of goods sold are reported against. |
| profit_center_name | varchar(40) | Name of the profit centre. |
| division | varchar(8) | Product division, 01 to 06. On a customer it is the account main product line; on a material it is inherited from the material group; on a document it is the division the line is booked under. |
| division_name | varchar(40) | Name of the product division. |
| revenue_share_target | numeric(5,2) | Share of revenue this unit is modelled to carry. The generated documents reproduce it rather than being drawn against it. |
| active_flag | boolean | False once the row is retired but kept for audit. |
| Column | Type | Description |
|---|---|---|
| shipping_point | varchar(16) | Dock the delivery is processed at. It sits under one plant. |
| shipping_point_name | varchar(48) | Name of the shipping point. |
| plant_code | varchar(8) | Manufacturing site the goods ship from. |
| company_code | varchar(8) | Legal entity that books the receivable. Same values as the procure to pay set, so the two join. |
| city | varchar(16) | City of the address. |
| state_province | varchar(16) | State or province. |
| despatch_cutoff_hour | integer | Hour of the day after which a goods issue rolls to the next working day. |
+6 more columns in o2c_shipping_points. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| route_code | varchar(16) | Route key, one lane and mode combination. |
| route_name | varchar(40) | What the route covers in words. |
| transport_mode | varchar(16) | How the goods move on this route: road, rail, air, sea or parcel. |
| transit_days | integer | Planned days in transit on the route, which is what the confirmed delivery date is built from. |
| volume_share | numeric(5,2) | Share of volume that runs through this point or route. |
| on_time_baseline_pct | integer | The route own long run reliability before any year disruption. A model should be able to recover it from the deliveries. |
| freight_cost_per_kg_usd | numeric(5,2) | Standard freight cost per kilogram on the route, in US dollars, before the year freight index is applied. What a shipment actually paid is on the shipment row. |
+2 more columns in o2c_routes. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| currency | varchar(16) | ISO 4217 currency code the document is denominated in. |
| currency_name | varchar(32) | Currency name in English. |
| is_group_currency | boolean | True for the currency the group consolidates in. |
| annual_volatility_index | numeric(6,3) | How far this currency moves in a year, as a fraction. Zero for the group currency. |
| Column | Type | Description |
|---|---|---|
| exchange_rate_id | varchar(16) | Key of one currency and period combination. |
| period_id | varchar(16) | Monthly posting period key, FP followed by year and month. Every document posts into one. |
| from_currency | varchar(16) | Currency being converted from. |
| to_currency | varchar(16) | Currency being converted to, always the group currency here. |
| rate_type | varchar(16) | Rate category. M is the monthly average rate used for postings. |
| units_per_usd | numeric(11,6) | How many units of the currency one US dollar buys in that period. |
| usd_per_unit | numeric(11,8) | How many US dollars one unit of the currency buys. The reciprocal, carried so a reader does not have to invert. |
+3 more columns in o2c_exchange_rates. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| payment_terms | varchar(16) | Payment terms key agreed with the customer. |
| payment_terms_description | varchar(64) | The payment terms key in words, for example "2 percent discount if paid within 10 days, otherwise net 30". |
| net_days | integer | Days from the baseline date until the invoice is due. |
| discount_days | integer | Days within which an early settlement discount can still be taken. |
| discount_percentage | integer | Early settlement discount as a percentage of the invoice. |
| prepayment_flag | boolean | True when the terms require the cash before the goods leave. |
| Column | Type | Description |
|---|---|---|
| incoterms | varchar(16) | Incoterms 2020 delivery term. |
| incoterms_description | varchar(40) | The Incoterms 2020 code in words, for example DAP is "Delivered At Place". |
| freight_borne_by_customer_flag | boolean | True when the term leaves the freight cost with the customer, which is when a freight condition appears on the order. |
| Column | Type | Description |
|---|---|---|
| document_type | varchar(16) | Type key of the document. |
| document_type_name | varchar(72) | What the document type means in words. |
| document_category | varchar(24) | Which document the type belongs to: sales_order, outline_agreement or billing_document. |
| creates_delivery_flag | boolean | True when an order of this type produces an outbound delivery. False for the memo request types and the third party order, which are billed without one. |
| billing_reference | varchar(16) | What the billing document for this type is raised against: the delivery, the order, or none. Empty on the billing types themselves. |
| credit_check_flag | boolean | True when an order of this type is put through a credit check. |
| value_sign | integer | Which way the type moves revenue: 1 adds, -1 reverses, 0 is the free of charge type that moves quantity but no value. |
+2 more columns in o2c_document_types. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| condition_type | varchar(16) | Pricing condition key, for example PR00 for the base list price, K007 for a customer discount, ZMAN for a manual override by the representative or KF00 for freight per unit of weight. |
| condition_name | varchar(72) | What the condition does in words. |
| condition_class | varchar(16) | What the condition is: price, discount, rebate, freight, surcharge, tax, free for a zero value item, or cost for the statistical standard cost. |
| sign_indicator | integer | Whether the condition adds to the value, subtracts from it, or is neutral. |
| applies_to | varchar(16) | Whether the condition attaches to the item or to the whole document. |
| statistical_flag | boolean | True when the condition is carried for information and does not change the net value. |
| Column | Type | Description |
|---|---|---|
| material_group | varchar(16) | Category the material belongs to. |
| material_group_name | varchar(48) | Name of the category. |
| unspsc_family | varchar(16) | UNSPSC family code describing the commodity area. |
| division | varchar(8) | Product division, 01 to 06. On a customer it is the account main product line; on a material it is inherited from the material group; on a document it is the division the line is booked under. |
| division_name | varchar(40) | Name of the product division. |
| base_unit_of_measure | varchar(16) | Unit the material is stocked and sold in. |
| price_low_2015_usd | integer | Bottom of the 2015 list price band for the category, in US dollars. |
+8 more columns in o2c_material_groups. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| gl_account | varchar(8) | General ledger account the posting lands on. |
| gl_account_name | varchar(56) | What the general ledger account is used for. |
| account_kind | varchar(24) | What the account is for in this process: revenue, contra_revenue, cogs, receivable, allowance, expense, liability or tax. |
| normal_balance | varchar(16) | Whether the account normally carries a debit or a credit balance. |
| account_class | varchar(24) | Whether the account sits in the profit and loss or on the balance sheet. |
| Column | Type | Description |
|---|---|---|
| user_id | varchar(16) | Internal user number. Primary key of users and the foreign key wherever a person acted. |
| user_name | varchar(24) | Login name. |
| display_name | varchar(32) | Person name as it appears in the system. |
| role_type | varchar(24) | What the person does in this process: sales_rep, credit_analyst, warehouse_operator, shipping_clerk, billing_clerk, ar_analyst, collections_agent, or system for the account automated steps run under. |
| department | varchar(16) | Department the person belongs to. |
| sales_office | varchar(16) | Office the desk reports into. |
| sales_org | varchar(16) | Sales organisation that owns the sale and its terms. |
+7 more columns in o2c_users. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| customer_id | varchar(16) | Customer number. Primary key of customers and the foreign key wherever an account appears. |
| customer_name | varchar(72) | Account name as it appears on the order and the invoice. |
| customer_segment | varchar(16) | What the account is: OEM-AUTO, OEM-AG, OEM-IND, DIST, ENERGY, AFTMKT, CONSUMER, GOVT or INTERCO. |
| customer_segment_name | varchar(64) | What the segment means in words. |
| country_code | varchar(8) | ISO 3166-1 alpha-2 country code. |
| country_name | varchar(24) | Country name in English. |
| state_province | varchar(16) | State or province. |
+35 more columns in o2c_customers. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| contact_id | varchar(16) | Contact key. Primary key of customer_contacts. |
| customer_id | varchar(16) | The account this person works for. |
| contact_function | varchar(16) | What this person does for the seller: PURCHASING, AP, RECEIVING, PLANNING, QUALITY, ENGINEERING or EXEC. The mirror of the buy side, because a customer fields buyers and payables clerks where a supplier fields sales people. |
| contact_function_name | varchar(24) | The function in words. |
| is_primary | boolean | True for the one contact a seller deals with first. Exactly one per account. |
| first_name | varchar(16) | Contact given name. |
| last_name | varchar(16) | Contact family name. |
+10 more columns in o2c_customer_contacts. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| customer_bank_id | varchar(16) | Key of one customer bank account. |
| customer_id | varchar(16) | Customer number. Primary key of customers and the foreign key wherever an account appears. |
| bank_country_code | varchar(8) | Country of the bank account. |
| bank_name | varchar(40) | Name of the bank. |
| account_holder | varchar(72) | Name the account is held in. |
| currency | varchar(16) | ISO 4217 currency code the document is denominated in. |
| preferred_payment_method | varchar(16) | How the account normally pays: ACH, WIRE, CHECK, CARD, LC or VCARD. Each carries its own clearing lag, which is why a cheque sent on the due date still clears late. |
+5 more columns in o2c_customer_bank_accounts. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| customer_partner_id | varchar(24) | Key of one partner role on an account. |
| customer_id | varchar(16) | Customer number. Primary key of customers and the foreign key wherever an account appears. |
| partner_function | varchar(16) | Which role this partner plays: SP sold to, SH ship to, BP bill to, PY payer. |
| partner_function_name | varchar(24) | What the partner function means in words. |
| partner_id | varchar(16) | Identifier of the partner itself. A ship to has its own key; the other functions carry the account key. |
| partner_name | varchar(80) | Name of the partner. |
| city | varchar(24) | City of the address. |
+8 more columns in o2c_customer_partners. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| hierarchy_id | varchar(16) | Key of one account membership in a corporate group. |
| customer_id | varchar(16) | Customer number. Primary key of customers and the foreign key wherever an account appears. |
| hierarchy_group | varchar(16) | Corporate group node. |
| hierarchy_group_name | varchar(32) | Name of the corporate group. |
| hierarchy_level | integer | Depth in the hierarchy. Only a group node and its members are modelled, so every member sits at level 2. |
| parent_node | varchar(16) | Node above this one. |
| rollup_payer_id | varchar(16) | Party the group settles through. It is the same value the transactions carry as the payer. |
+5 more columns in o2c_customer_hierarchy. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| customer_credit_id | varchar(16) | Key of one credit limit and validity window. |
| customer_id | varchar(16) | Customer number. Primary key of customers and the foreign key wherever an account appears. |
| credit_control_area | varchar(16) | Area the credit limit and the exposure are managed in. A customer has one limit per area, not one per order. |
| credit_control_area_name | varchar(40) | Name of the credit control area. |
| control_currency | varchar(16) | Currency the limit and the exposure are managed in. |
| risk_class | varchar(16) | Credit grade A1 to C2. Assigned by ranking the whole book on a quality score built from account size, so the grade correlates with size without being determined by it. |
| risk_class_name | varchar(56) | What the risk class means, including how often it is reviewed and whether security is required. |
+12 more columns in o2c_customer_credit. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| material_id | varchar(16) | Material number. Primary key of materials and the foreign key wherever something is sold. Same keys as the procure to pay set. |
| material_description | varchar(72) | What the material is, in words. |
| material_group | varchar(16) | Category the material belongs to. |
| material_group_name | varchar(48) | Name of the category. |
| division | varchar(8) | Product division, 01 to 06. On a customer it is the account main product line; on a material it is inherited from the material group; on a document it is the division the line is booked under. |
| base_unit_of_measure | varchar(16) | Unit the material is stocked and sold in. |
| unspsc_family | varchar(16) | UNSPSC family code describing the commodity area. |
+12 more columns in o2c_materials. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| material_plant_id | varchar(24) | Key of one material and plant combination. |
| material_id | varchar(16) | Material number. Primary key of materials and the foreign key wherever something is sold. Same keys as the procure to pay set. |
| plant_code | varchar(8) | Manufacturing site the goods ship from. |
| company_code | varchar(8) | Legal entity that books the receivable. Same values as the procure to pay set, so the two join. |
| shipping_point | varchar(16) | Dock the delivery is processed at. It sits under one plant. |
| profit_center | varchar(16) | Profit centre the revenue and the cost of goods sold are reported against. |
| planned_build_days | integer | Build time in days at this plant. |
+6 more columns in o2c_material_plants. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| price_record_id | varchar(16) | Key of one stored price condition. |
| material_id | varchar(16) | Material number. Primary key of materials and the foreign key wherever something is sold. Same keys as the procure to pay set. |
| material_group | varchar(16) | Category the material belongs to. |
| sales_org | varchar(16) | Sales organisation that owns the sale and its terms. |
| distribution_channel | integer | Route to market the sale is booked under: 10 direct to original equipment accounts, 20 authorised distributors, 30 aftermarket and spare parts, 40 build to print for third party brands. |
| customer_id | varchar(16) | Customer number. Primary key of customers and the foreign key wherever an account appears. |
| price_group | varchar(16) | Pricing tier, derived from the risk class. P1 for A grades, P2 for B, P3 for C. The distributor tier discount keys on it. |
+11 more columns in o2c_price_records. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| customer_material_id | varchar(24) | Key of one customer and material cross reference. |
| customer_id | varchar(16) | Customer number. Primary key of customers and the foreign key wherever an account appears. |
| material_id | varchar(16) | Material number. Primary key of materials and the foreign key wherever something is sold. Same keys as the procure to pay set. |
| sales_org | varchar(16) | Sales organisation that owns the sale and its terms. |
| distribution_channel | integer | Route to market the sale is booked under: 10 direct to original equipment accounts, 20 authorised distributors, 30 aftermarket and spare parts, 40 build to print for third party brands. |
| customer_part_number | varchar(16) | The number the customer uses for the part, which is what arrives on their purchase order. |
| customer_description | varchar(64) | The customer own wording for the part. |
+6 more columns in o2c_customer_material_info. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| contract_id | varchar(16) | Outline agreement number. |
| agreement_type | varchar(16) | Which agreement this is: CQ a quantity contract, CV a value contract, SA a scheduling agreement with releases. |
| agreement_type_name | varchar(64) | What the agreement type means in words. |
| customer_id | varchar(16) | Customer number. Primary key of customers and the foreign key wherever an account appears. |
| customer_name | varchar(72) | Account name as it appears on the order and the invoice. |
| payer_id | varchar(16) | Party that actually settles the invoice. It is the account itself unless the group pays centrally, in which case it is the group payment centre. |
| company_code | varchar(8) | Legal entity that books the receivable. Same values as the procure to pay set, so the two join. |
+25 more columns in o2c_contracts. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| contract_item_id | varchar(24) | Key of one agreement line. |
| contract_id | varchar(16) | Outline agreement number. |
| item_number | varchar(8) | Line number within the document, in tens as an ERP numbers them. |
| material_id | varchar(16) | Material number. Primary key of materials and the foreign key wherever something is sold. Same keys as the procure to pay set. |
| material_description | varchar(72) | What the material is, in words. |
| material_group | varchar(16) | Category the material belongs to. |
| division | varchar(8) | Product division, 01 to 06. On a customer it is the account main product line; on a material it is inherited from the material group; on a document it is the division the line is booked under. |
+11 more columns in o2c_contract_items. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| release_id | varchar(16) | Key of one call off against an agreement. |
| contract_id | varchar(16) | Outline agreement number. |
| contract_item_id | varchar(24) | Key of one agreement line. |
| sales_order_id | varchar(16) | Sales order number. It is also the case identifier the event log and the SLA table are keyed on. |
| sales_order_item_id | varchar(24) | Key of one order line. |
| customer_id | varchar(16) | Customer number. Primary key of customers and the foreign key wherever an account appears. |
| company_code | varchar(8) | Legal entity that books the receivable. Same values as the procure to pay set, so the two join. |
+15 more columns in o2c_contract_releases. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| inquiry_id | varchar(16) | Inquiry number. Only a minority of demand starts here. |
| customer_id | varchar(16) | Customer number. Primary key of customers and the foreign key wherever an account appears. |
| customer_name | varchar(72) | Account name as it appears on the order and the invoice. |
| payer_id | varchar(16) | Party that actually settles the invoice. It is the account itself unless the group pays centrally, in which case it is the group payment centre. |
| ship_to_id | varchar(16) | Ship to party the goods went to. |
| company_code | varchar(8) | Legal entity that books the receivable. Same values as the procure to pay set, so the two join. |
| sales_org | varchar(16) | Sales organisation that owns the sale and its terms. |
+21 more columns in o2c_inquiries. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| inquiry_item_id | varchar(24) | Key of one inquiry line. |
| inquiry_id | varchar(16) | Inquiry number. Only a minority of demand starts here. |
| item_number | varchar(8) | Line number within the document, in tens as an ERP numbers them. |
| material_id | varchar(16) | Material number. Primary key of materials and the foreign key wherever something is sold. Same keys as the procure to pay set. |
| material_description | varchar(72) | What the material is, in words. |
| material_group | varchar(16) | Category the material belongs to. |
| division | varchar(8) | Product division, 01 to 06. On a customer it is the account main product line; on a material it is inherited from the material group; on a document it is the division the line is booked under. |
+7 more columns in o2c_inquiry_items. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| quotation_id | varchar(16) | Quotation number. |
| inquiry_id | varchar(16) | Inquiry number. Only a minority of demand starts here. |
| customer_id | varchar(16) | Customer number. Primary key of customers and the foreign key wherever an account appears. |
| customer_name | varchar(72) | Account name as it appears on the order and the invoice. |
| payer_id | varchar(16) | Party that actually settles the invoice. It is the account itself unless the group pays centrally, in which case it is the group payment centre. |
| company_code | varchar(8) | Legal entity that books the receivable. Same values as the procure to pay set, so the two join. |
| sales_org | varchar(16) | Sales organisation that owns the sale and its terms. |
+27 more columns in o2c_quotations. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| quotation_item_id | varchar(24) | Key of one quoted line. |
| quotation_id | varchar(16) | Quotation number. |
| inquiry_item_id | varchar(24) | Key of one inquiry line. |
| item_number | varchar(8) | Line number within the document, in tens as an ERP numbers them. |
| material_id | varchar(16) | Material number. Primary key of materials and the foreign key wherever something is sold. Same keys as the procure to pay set. |
| material_description | varchar(72) | What the material is, in words. |
| material_group | varchar(16) | Category the material belongs to. |
+14 more columns in o2c_quotation_items. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| followup_id | varchar(24) | Key of one chase against a quotation. |
| quotation_id | varchar(16) | Quotation number. |
| customer_id | varchar(16) | Customer number. Primary key of customers and the foreign key wherever an account appears. |
| sequence_number | varchar(8) | Which chase this is against the quotation, counting from the first. |
| contact_on | date | Date the customer was chased. |
| contact_channel | varchar(24) | How the customer was chased: telephone, email, site_visit or portal_message. |
| contacted_by_user_id | varchar(8) | Person who made the contact. |
+4 more columns in o2c_quotation_followups. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| quotation_outcome_id | varchar(16) | Key of one quotation result. |
| quotation_id | varchar(16) | Quotation number. |
| customer_id | varchar(16) | Customer number. Primary key of customers and the foreign key wherever an account appears. |
| sales_org | varchar(16) | Sales organisation that owns the sale and its terms. |
| sales_group | varchar(16) | Desk that owns the account. |
| sales_rep_id | varchar(8) | Representative who owns the account. On a document it is the rep who owned it on that date, which is not always the rep named on the customer master. |
| outcome_code | varchar(24) | How the quotation ended: WON, LOST_PRICE, LOST_LEAD, LOST_SPEC, LOST_INCUMBENT, EXPIRED or WITHDRAWN. |
+11 more columns in o2c_quotation_outcomes. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| credit_check_id | varchar(16) | Key of one credit check on an order. |
| sales_order_id | varchar(16) | Sales order number. It is also the case identifier the event log and the SLA table are keyed on. |
| customer_id | varchar(16) | Customer number. Primary key of customers and the foreign key wherever an account appears. |
| payer_id | varchar(16) | Party that actually settles the invoice. It is the account itself unless the group pays centrally, in which case it is the group payment centre. |
| credit_control_area | varchar(16) | Area the credit limit and the exposure are managed in. A customer has one limit per area, not one per order. |
| company_code | varchar(8) | Legal entity that books the receivable. Same values as the procure to pay set, so the two join. |
| sales_org | varchar(16) | Sales organisation that owns the sale and its terms. |
+20 more columns in o2c_credit_checks. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| credit_release_id | varchar(16) | Key of one release decision on a blocked order. |
| sales_order_id | varchar(16) | Sales order number. It is also the case identifier the event log and the SLA table are keyed on. |
| customer_id | varchar(16) | Customer number. Primary key of customers and the foreign key wherever an account appears. |
| payer_id | varchar(16) | Party that actually settles the invoice. It is the account itself unless the group pays centrally, in which case it is the group payment centre. |
| credit_control_area | varchar(16) | Area the credit limit and the exposure are managed in. A customer has one limit per area, not one per order. |
| company_code | varchar(8) | Legal entity that books the receivable. Same values as the procure to pay set, so the two join. |
| sales_org | varchar(16) | Sales organisation that owns the sale and its terms. |
+19 more columns in o2c_credit_releases. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| sales_order_id | varchar(16) | Sales order number. It is also the case identifier the event log and the SLA table are keyed on. |
| sales_document_type | varchar(16) | Order type: OR standard, RO rush, KB consignment fill up, KE consignment issue, TA third party, FD free of charge, DR debit memo request, RE returns. |
| sales_document_type_name | varchar(72) | What the order type means in words. |
| case_type | varchar(24) | Which case class the order belongs to in the event log: standard, rush, returns, credit_memo, third_party, consignment or free_of_charge. Empty on the types that never open a case. |
| customer_id | varchar(16) | Customer number. Primary key of customers and the foreign key wherever an account appears. |
| customer_name | varchar(72) | Account name as it appears on the order and the invoice. |
| ship_to_id | varchar(16) | Ship to party the goods went to. |
+59 more columns in o2c_sales_orders. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| sales_order_item_id | varchar(24) | Key of one order line. |
| sales_order_id | varchar(16) | Sales order number. It is also the case identifier the event log and the SLA table are keyed on. |
| item_number | varchar(8) | Line number within the document, in tens as an ERP numbers them. |
| customer_id | varchar(16) | Customer number. Primary key of customers and the foreign key wherever an account appears. |
| material_id | varchar(16) | Material number. Primary key of materials and the foreign key wherever something is sold. Same keys as the procure to pay set. |
| material_description | varchar(72) | What the material is, in words. |
| material_group | varchar(16) | Category the material belongs to. |
+34 more columns in o2c_sales_order_items. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| sales_order_condition_id | varchar(24) | Key of one condition on an order line. |
| sales_order_id | varchar(16) | Sales order number. It is also the case identifier the event log and the SLA table are keyed on. |
| sales_order_item_id | varchar(24) | Key of one order line. |
| item_number | varchar(8) | Line number within the document, in tens as an ERP numbers them. |
| condition_type | varchar(16) | Pricing condition key, for example PR00 for the base list price, K007 for a customer discount, ZMAN for a manual override by the representative or KF00 for freight per unit of weight. |
| condition_name | varchar(72) | What the condition does in words. |
| condition_class | varchar(16) | What the condition is: price, discount, rebate, freight, surcharge, tax, free for a zero value item, or cost for the statistical standard cost. |
+9 more columns in o2c_sales_order_conditions. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| sales_order_approval_id | varchar(24) | Key of one approval on an order. |
| sales_order_id | varchar(16) | Sales order number. It is also the case identifier the event log and the SLA table are keyed on. |
| customer_id | varchar(16) | Customer number. Primary key of customers and the foreign key wherever an account appears. |
| company_code | varchar(8) | Legal entity that books the receivable. Same values as the procure to pay set, so the two join. |
| sales_org | varchar(16) | Sales organisation that owns the sale and its terms. |
| sales_group | varchar(16) | Desk that owns the account. |
| sales_rep_id | varchar(8) | Representative who owns the account. On a document it is the rep who owned it on that date, which is not always the rep named on the customer master. |
+13 more columns in o2c_sales_order_approvals. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| schedule_line_id | varchar(24) | Key of one availability commitment on an order line. |
| sales_order_id | varchar(16) | Sales order number. It is also the case identifier the event log and the SLA table are keyed on. |
| sales_order_item_id | varchar(24) | Key of one order line. |
| item_number | varchar(8) | Line number within the document, in tens as an ERP numbers them. |
| schedule_line_number | varchar(8) | Sequence of the commitment within the line. A second line is what a shortfall or a planned split looks like. |
| material_id | varchar(16) | Material number. Primary key of materials and the foreign key wherever something is sold. Same keys as the procure to pay set. |
| plant_code | varchar(8) | Manufacturing site the goods ship from. |
+9 more columns in o2c_schedule_lines. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| change_id | varchar(24) | Key of one logged change to an order. |
| sales_order_id | varchar(16) | Sales order number. It is also the case identifier the event log and the SLA table are keyed on. |
| item_number | varchar(8) | Line number within the document, in tens as an ERP numbers them. |
| customer_id | varchar(16) | Customer number. Primary key of customers and the foreign key wherever an account appears. |
| company_code | varchar(8) | Legal entity that books the receivable. Same values as the procure to pay set, so the two join. |
| sales_org | varchar(16) | Sales organisation that owns the sale and its terms. |
| sales_group | varchar(16) | Desk that owns the account. |
+14 more columns in o2c_order_change_log. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| delivery_id | varchar(16) | Outbound delivery number. |
| sales_order_id | varchar(16) | Sales order number. It is also the case identifier the event log and the SLA table are keyed on. |
| customer_id | varchar(16) | Customer number. Primary key of customers and the foreign key wherever an account appears. |
| ship_to_id | varchar(16) | Ship to party the goods went to. |
| payer_id | varchar(16) | Party that actually settles the invoice. It is the account itself unless the group pays centrally, in which case it is the group payment centre. |
| delivery_type | varchar(16) | Delivery category. LF is an outbound delivery against a sales order, LR a returns delivery. |
| company_code | varchar(8) | Legal entity that books the receivable. Same values as the procure to pay set, so the two join. |
+43 more columns in o2c_deliveries. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| delivery_item_id | varchar(24) | Key of one delivery line. |
| delivery_id | varchar(16) | Outbound delivery number. |
| sales_order_id | varchar(16) | Sales order number. It is also the case identifier the event log and the SLA table are keyed on. |
| sales_order_item_id | varchar(24) | Key of one order line. |
| item_number | varchar(8) | Line number within the document, in tens as an ERP numbers them. |
| material_id | varchar(16) | Material number. Primary key of materials and the foreign key wherever something is sold. Same keys as the procure to pay set. |
| material_description | varchar(72) | What the material is, in words. |
+21 more columns in o2c_delivery_items. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| picking_task_id | varchar(16) | Key of one pick, one per delivery. |
| delivery_id | varchar(16) | Outbound delivery number. |
| sales_order_id | varchar(16) | Sales order number. It is also the case identifier the event log and the SLA table are keyed on. |
| customer_id | varchar(16) | Customer number. Primary key of customers and the foreign key wherever an account appears. |
| company_code | varchar(8) | Legal entity that books the receivable. Same values as the procure to pay set, so the two join. |
| sales_org | varchar(16) | Sales organisation that owns the sale and its terms. |
| sales_group | varchar(16) | Desk that owns the account. |
+16 more columns in o2c_picking_tasks. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| handling_unit_id | varchar(16) | Key of one packed unit. |
| delivery_id | varchar(16) | Outbound delivery number. |
| sales_order_id | varchar(16) | Sales order number. It is also the case identifier the event log and the SLA table are keyed on. |
| customer_id | varchar(16) | Customer number. Primary key of customers and the foreign key wherever an account appears. |
| company_code | varchar(8) | Legal entity that books the receivable. Same values as the procure to pay set, so the two join. |
| sales_org | varchar(16) | Sales organisation that owns the sale and its terms. |
| sales_group | varchar(16) | Desk that owns the account. |
+12 more columns in o2c_handling_units. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| shipment_id | varchar(16) | Shipment number, one per delivery. |
| delivery_id | varchar(16) | Outbound delivery number. |
| sales_order_id | varchar(16) | Sales order number. It is also the case identifier the event log and the SLA table are keyed on. |
| customer_id | varchar(16) | Customer number. Primary key of customers and the foreign key wherever an account appears. |
| ship_to_id | varchar(16) | Ship to party the goods went to. |
| company_code | varchar(8) | Legal entity that books the receivable. Same values as the procure to pay set, so the two join. |
| sales_org | varchar(16) | Sales organisation that owns the sale and its terms. |
+26 more columns in o2c_shipments. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| return_id | varchar(16) | Key of one return from a customer. |
| return_order_id | varchar(16) | Returns order raised to bring the goods back. A return always carries its own order document. |
| sales_order_id | varchar(16) | Sales order number. It is also the case identifier the event log and the SLA table are keyed on. |
| delivery_id | varchar(16) | Outbound delivery number. |
| billing_document_id | varchar(16) | Billing document number. The invoice, or the credit memo where the table carries both. |
| customer_id | varchar(16) | Customer number. Primary key of customers and the foreign key wherever an account appears. |
| payer_id | varchar(16) | Party that actually settles the invoice. It is the account itself unless the group pays centrally, in which case it is the group payment centre. |
+30 more columns in o2c_returns. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| return_item_id | varchar(24) | Key of one return line. |
| return_id | varchar(16) | Key of one return from a customer. |
| return_order_id | varchar(16) | Returns order raised to bring the goods back. A return always carries its own order document. |
| sales_order_id | varchar(16) | Sales order number. It is also the case identifier the event log and the SLA table are keyed on. |
| sales_order_item_id | varchar(24) | Key of one order line. |
| delivery_id | varchar(16) | Outbound delivery number. |
| delivery_item_id | varchar(24) | Key of one delivery line. |
+20 more columns in o2c_return_items. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| confirmation_id | varchar(16) | Key of one confirmation of work performed at the customer site. |
| sales_order_id | varchar(16) | Sales order number. It is also the case identifier the event log and the SLA table are keyed on. |
| delivery_id | varchar(16) | Outbound delivery number. |
| customer_id | varchar(16) | Customer number. Primary key of customers and the foreign key wherever an account appears. |
| payer_id | varchar(16) | Party that actually settles the invoice. It is the account itself unless the group pays centrally, in which case it is the group payment centre. |
| company_code | varchar(8) | Legal entity that books the receivable. Same values as the procure to pay set, so the two join. |
| sales_org | varchar(16) | Sales organisation that owns the sale and its terms. |
+17 more columns in o2c_service_confirmations. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| due_list_id | varchar(16) | Key of one entry on the billing due list. |
| sales_order_id | varchar(16) | Sales order number. It is also the case identifier the event log and the SLA table are keyed on. |
| delivery_id | varchar(16) | Outbound delivery number. |
| billing_document_id | varchar(16) | Billing document number. The invoice, or the credit memo where the table carries both. |
| customer_id | varchar(16) | Customer number. Primary key of customers and the foreign key wherever an account appears. |
| payer_id | varchar(16) | Party that actually settles the invoice. It is the account itself unless the group pays centrally, in which case it is the group payment centre. |
| company_code | varchar(8) | Legal entity that books the receivable. Same values as the procure to pay set, so the two join. |
+18 more columns in o2c_billing_due_list. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| billing_document_id | varchar(16) | Billing document number. The invoice, or the credit memo where the table carries both. |
| billing_document_type | varchar(16) | Which billing type was raised: F2 against a delivery, F1 against the order, FX one collective invoice over several deliveries, IV intercompany, G2 credit memo. |
| billing_document_type_name | varchar(64) | What the billing document type means in words. |
| sales_order_id | varchar(16) | Sales order number. It is also the case identifier the event log and the SLA table are keyed on. |
| delivery_id | varchar(16) | Outbound delivery number. |
| delivery_count | integer | How many deliveries the invoice covers. More than one only on a collective invoice. |
| accounting_document_id | varchar(16) | Ledger document the billing document posted to. Empty on a document that was never posted. |
+53 more columns in o2c_invoices. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| invoice_item_id | varchar(24) | Key of one invoice line. |
| billing_document_id | varchar(16) | Billing document number. The invoice, or the credit memo where the table carries both. |
| item_number | varchar(8) | Line number within the document, in tens as an ERP numbers them. |
| sales_order_id | varchar(16) | Sales order number. It is also the case identifier the event log and the SLA table are keyed on. |
| sales_order_item_id | varchar(24) | Key of one order line. |
| delivery_id | varchar(16) | Outbound delivery number. |
| delivery_item_id | varchar(24) | Key of one delivery line. |
+24 more columns in o2c_invoice_items. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| invoice_block_id | varchar(24) | Key of one block on a billing document. |
| billing_document_id | varchar(16) | Billing document number. The invoice, or the credit memo where the table carries both. |
| sales_order_id | varchar(16) | Sales order number. It is also the case identifier the event log and the SLA table are keyed on. |
| customer_id | varchar(16) | Customer number. Primary key of customers and the foreign key wherever an account appears. |
| company_code | varchar(8) | Legal entity that books the receivable. Same values as the procure to pay set, so the two join. |
| sales_org | varchar(16) | Sales organisation that owns the sale and its terms. |
| sales_group | varchar(16) | Desk that owns the account. |
+13 more columns in o2c_invoice_blocks. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| credit_memo_id | varchar(16) | Credit memo number. |
| billing_document_type | varchar(16) | Which billing type was raised: F2 against a delivery, F1 against the order, FX one collective invoice over several deliveries, IV intercompany, G2 credit memo. |
| reference_billing_document_id | varchar(16) | Invoice the credit memo is raised against. |
| sales_order_id | varchar(16) | Sales order number. It is also the case identifier the event log and the SLA table are keyed on. |
| return_id | varchar(16) | Key of one return from a customer. |
| return_order_id | varchar(16) | Returns order raised to bring the goods back. A return always carries its own order document. |
| dispute_id | varchar(8) | Key of one disputed receivable. |
+35 more columns in o2c_credit_memos. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| credit_memo_item_id | varchar(24) | Key of one credit memo line. |
| credit_memo_id | varchar(16) | Credit memo number. |
| item_number | varchar(8) | Line number within the document, in tens as an ERP numbers them. |
| reference_billing_document_id | varchar(16) | Invoice the credit memo is raised against. |
| sales_order_id | varchar(16) | Sales order number. It is also the case identifier the event log and the SLA table are keyed on. |
| sales_order_item_id | varchar(24) | Key of one order line. |
| return_id | varchar(16) | Key of one return from a customer. |
+15 more columns in o2c_credit_memo_items. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| accounting_document_id | varchar(16) | Ledger document the billing document posted to. Empty on a document that was never posted. |
| billing_document_id | varchar(16) | Billing document number. The invoice, or the credit memo where the table carries both. |
| sales_order_id | varchar(16) | Sales order number. It is also the case identifier the event log and the SLA table are keyed on. |
| customer_id | varchar(16) | Customer number. Primary key of customers and the foreign key wherever an account appears. |
| payer_id | varchar(16) | Party that actually settles the invoice. It is the account itself unless the group pays centrally, in which case it is the group payment centre. |
| company_code | varchar(8) | Legal entity that books the receivable. Same values as the procure to pay set, so the two join. |
| sales_org | varchar(16) | Sales organisation that owns the sale and its terms. |
+32 more columns in o2c_accounting_documents. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| ar_item_id | varchar(16) | Key of one open receivable item, one per posted invoice. |
| accounting_document_id | varchar(16) | Ledger document the billing document posted to. Empty on a document that was never posted. |
| billing_document_id | varchar(16) | Billing document number. The invoice, or the credit memo where the table carries both. |
| sales_order_id | varchar(16) | Sales order number. It is also the case identifier the event log and the SLA table are keyed on. |
| customer_id | varchar(16) | Customer number. Primary key of customers and the foreign key wherever an account appears. |
| payer_id | varchar(16) | Party that actually settles the invoice. It is the account itself unless the group pays centrally, in which case it is the group payment centre. |
| customer_segment | varchar(16) | What the account is: OEM-AUTO, OEM-AG, OEM-IND, DIST, ENERGY, AFTMKT, CONSUMER, GOVT or INTERCO. |
+41 more columns in o2c_ar_open_items. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| dunning_id | varchar(16) | Key of one reminder at one level on one receivable. |
| ar_item_id | varchar(16) | Key of one open receivable item, one per posted invoice. |
| billing_document_id | varchar(16) | Billing document number. The invoice, or the credit memo where the table carries both. |
| sales_order_id | varchar(16) | Sales order number. It is also the case identifier the event log and the SLA table are keyed on. |
| customer_id | varchar(16) | Customer number. Primary key of customers and the foreign key wherever an account appears. |
| payer_id | varchar(16) | Party that actually settles the invoice. It is the account itself unless the group pays centrally, in which case it is the group payment centre. |
| company_code | varchar(8) | Legal entity that books the receivable. Same values as the procure to pay set, so the two join. |
+20 more columns in o2c_dunning_history. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| payment_advice_id | varchar(16) | Key of one remittance advice sent by the customer. |
| payment_id | varchar(16) | Incoming payment number. |
| customer_id | varchar(16) | Customer number. Primary key of customers and the foreign key wherever an account appears. |
| payer_id | varchar(16) | Party that actually settles the invoice. It is the account itself unless the group pays centrally, in which case it is the group payment centre. |
| company_code | varchar(8) | Legal entity that books the receivable. Same values as the procure to pay set, so the two join. |
| sales_org | varchar(16) | Sales organisation that owns the sale and its terms. |
| sales_group | varchar(16) | Desk that owns the account. |
+13 more columns in o2c_payment_advices. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| payment_advice_item_id | varchar(16) | Key of one line on a remittance advice. |
| payment_advice_id | varchar(16) | Key of one remittance advice sent by the customer. |
| billing_document_id | varchar(16) | Billing document number. The invoice, or the credit memo where the table carries both. |
| ar_item_id | varchar(16) | Key of one open receivable item, one per posted invoice. |
| sales_order_id | varchar(16) | Sales order number. It is also the case identifier the event log and the SLA table are keyed on. |
| customer_id | varchar(16) | Customer number. Primary key of customers and the foreign key wherever an account appears. |
| invoice_amount_usd | numeric(12,2) | Gross value of the invoice being paid against. |
+5 more columns in o2c_payment_advice_items. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| payment_id | varchar(16) | Incoming payment number. |
| customer_id | varchar(16) | Customer number. Primary key of customers and the foreign key wherever an account appears. |
| payer_id | varchar(16) | Party that actually settles the invoice. It is the account itself unless the group pays centrally, in which case it is the group payment centre. |
| company_code | varchar(8) | Legal entity that books the receivable. Same values as the procure to pay set, so the two join. |
| sales_org | varchar(16) | Sales organisation that owns the sale and its terms. |
| distribution_channel | integer | Route to market the sale is booked under: 10 direct to original equipment accounts, 20 authorised distributors, 30 aftermarket and spare parts, 40 build to print for third party brands. |
| division | varchar(8) | Product division, 01 to 06. On a customer it is the account main product line; on a material it is inherited from the material group; on a document it is the division the line is booked under. |
+29 more columns in o2c_incoming_payments. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| allocation_id | varchar(24) | Key of one application of cash against a receivable. |
| payment_id | varchar(16) | Incoming payment number. |
| ar_item_id | varchar(16) | Key of one open receivable item, one per posted invoice. |
| billing_document_id | varchar(16) | Billing document number. The invoice, or the credit memo where the table carries both. |
| sales_order_id | varchar(16) | Sales order number. It is also the case identifier the event log and the SLA table are keyed on. |
| customer_id | varchar(16) | Customer number. Primary key of customers and the foreign key wherever an account appears. |
| payer_id | varchar(16) | Party that actually settles the invoice. It is the account itself unless the group pays centrally, in which case it is the group payment centre. |
+21 more columns in o2c_payment_allocations. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| deduction_id | varchar(16) | Key of one amount the customer withheld. |
| payment_id | varchar(16) | Incoming payment number. |
| ar_item_id | varchar(16) | Key of one open receivable item, one per posted invoice. |
| billing_document_id | varchar(16) | Billing document number. The invoice, or the credit memo where the table carries both. |
| sales_order_id | varchar(16) | Sales order number. It is also the case identifier the event log and the SLA table are keyed on. |
| customer_id | varchar(16) | Customer number. Primary key of customers and the foreign key wherever an account appears. |
| payer_id | varchar(16) | Party that actually settles the invoice. It is the account itself unless the group pays centrally, in which case it is the group payment centre. |
+23 more columns in o2c_deductions. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| dispute_id | varchar(16) | Key of one disputed receivable. |
| ar_item_id | varchar(16) | Key of one open receivable item, one per posted invoice. |
| billing_document_id | varchar(16) | Billing document number. The invoice, or the credit memo where the table carries both. |
| sales_order_id | varchar(16) | Sales order number. It is also the case identifier the event log and the SLA table are keyed on. |
| customer_id | varchar(16) | Customer number. Primary key of customers and the foreign key wherever an account appears. |
| payer_id | varchar(16) | Party that actually settles the invoice. It is the account itself unless the group pays centrally, in which case it is the group payment centre. |
| company_code | varchar(8) | Legal entity that books the receivable. Same values as the procure to pay set, so the two join. |
+20 more columns in o2c_disputes. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| rebate_agreement_id | varchar(16) | Key of one rebate agreement for one account and year. |
| customer_id | varchar(16) | Customer number. Primary key of customers and the foreign key wherever an account appears. |
| payer_id | varchar(16) | Party that actually settles the invoice. It is the account itself unless the group pays centrally, in which case it is the group payment centre. |
| rebate_type | varchar(16) | What the rebate is earned on: RB-VOL annual volume, RB-MAT a nominated product line, RB-GRP the corporate group total, RB-GRW growth over the prior year. |
| rebate_type_name | varchar(56) | What the rebate type means in words. |
| company_code | varchar(8) | Legal entity that books the receivable. Same values as the procure to pay set, so the two join. |
| sales_org | varchar(16) | Sales organisation that owns the sale and its terms. |
+16 more columns in o2c_rebate_agreements. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| rebate_settlement_id | varchar(16) | Key of one rebate payout. |
| rebate_agreement_id | varchar(16) | Key of one rebate agreement for one account and year. |
| customer_id | varchar(16) | Customer number. Primary key of customers and the foreign key wherever an account appears. |
| payer_id | varchar(16) | Party that actually settles the invoice. It is the account itself unless the group pays centrally, in which case it is the group payment centre. |
| company_code | varchar(8) | Legal entity that books the receivable. Same values as the procure to pay set, so the two join. |
| sales_org | varchar(16) | Sales organisation that owns the sale and its terms. |
| distribution_channel | integer | Route to market the sale is booked under: 10 direct to original equipment accounts, 20 authorised distributors, 30 aftermarket and spare parts, 40 build to print for third party brands. |
+20 more columns in o2c_rebate_settlements. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| revenue_month_id | varchar(32) | Key of one month, sales organisation, division and segment combination. |
| period_id | varchar(16) | Monthly posting period key, FP followed by year and month. Every document posts into one. |
| year_id | varchar(8) | Financial year key, FY followed by the calendar year. |
| calendar_year | integer | The four digit year. |
| month_number | varchar(8) | Month within the year, 1 to 12. |
| quarter | varchar(16) | Calendar quarter the period falls in. |
| sales_org | varchar(16) | Sales organisation that owns the sale and its terms. |
+24 more columns in o2c_revenue_monthly. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| customer_scorecard_id | varchar(16) | Key of one account and year. |
| customer_id | varchar(16) | Customer number. Primary key of customers and the foreign key wherever an account appears. |
| customer_name | varchar(72) | Account name as it appears on the order and the invoice. |
| payer_id | varchar(16) | Party that actually settles the invoice. It is the account itself unless the group pays centrally, in which case it is the group payment centre. |
| customer_segment | varchar(16) | What the account is: OEM-AUTO, OEM-AG, OEM-IND, DIST, ENERGY, AFTMKT, CONSUMER, GOVT or INTERCO. |
| company_code | varchar(8) | Legal entity that books the receivable. Same values as the procure to pay set, so the two join. |
| sales_org | varchar(16) | Sales organisation that owns the sale and its terms. |
+34 more columns in o2c_customer_scorecards. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| sla_metric_id | varchar(16) | Key of one case, one per sales order. |
| sales_order_id | varchar(16) | Sales order number. It is also the case identifier the event log and the SLA table are keyed on. |
| customer_id | varchar(16) | Customer number. Primary key of customers and the foreign key wherever an account appears. |
| payer_id | varchar(16) | Party that actually settles the invoice. It is the account itself unless the group pays centrally, in which case it is the group payment centre. |
| customer_segment | varchar(16) | What the account is: OEM-AUTO, OEM-AG, OEM-IND, DIST, ENERGY, AFTMKT, CONSUMER, GOVT or INTERCO. |
| company_code | varchar(8) | Legal entity that books the receivable. Same values as the procure to pay set, so the two join. |
| sales_org | varchar(16) | Sales organisation that owns the sale and its terms. |
+80 more columns in o2c_sla_metrics. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| anomaly_id | varchar(16) | Key of one labelled anomaly. |
| anomaly_class | varchar(32) | Which class it belongs to, for example an availability shortfall, a late delivery, a credit block, a short payment, a price variance, a duplicate invoice or a bad debt write off. |
| anomaly_name | varchar(72) | What the anomaly class means in words. |
| document_type | varchar(24) | Which kind of object the anomaly sits on: sales_order, delivery, billing_document, ar_item, payment or return. |
| document_id | varchar(16) | The document the anomaly was found on. |
| item_number | varchar(8) | Line number within the document, in tens as an ERP numbers them. |
| period_id | varchar(16) | Monthly posting period key, FP followed by year and month. Every document posts into one. |
+6 more columns in o2c_anomalies. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| event_id | varchar(24) | Key of one event in the log. |
| case_id | varchar(16) | The case the event belongs to, which is the sales order. |
| case_type | varchar(24) | Which case class the order belongs to in the event log: standard, rush, returns, credit_memo, third_party, consignment or free_of_charge. Empty on the types that never open a case. |
| activity | varchar(40) | What happened, from a controlled list of activity names rather than free text. |
| activity_seq | integer | Position of the event within its case. Gapless, and in the same order as the timestamps. |
| event_timestamp | varchar(32) | When the event happened. Strictly increasing within a case, so no two events of a case share a timestamp. |
| document_date | date | Date on the document itself, as distinct from the date it posted. |
+22 more columns in o2c_process_events. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| variant_id | varchar(16) | Signature of the path this case took, shared by every event of the case and by its row in the service level table. |
| activity_sequence | text | The ordered activity names of the path, pipe separated. Immediately repeated activities are collapsed, so a variant is a path rather than a count of lines. |
| activity_count | integer | How many activities the path contains. |
| case_count | integer | How many cases followed this path. |
| case_share_pct | numeric(8,4) | Share of all cases that followed it. The column sums to 100. |
| median_cycle_days | numeric(7,2) | Median days from the first to the last event for cases on this path. |
| p90_cycle_days | numeric(7,2) | The ninetieth percentile of the same measure. Never below the median. |
+5 more columns in o2c_process_variants. The full schema ships with the download.
Sample Data
A snapshot of real rows from the dataset (values are fully synthetic).
| sales_order_id | sales_document_type | customer_name | customer_segment | document_date | currency | net_value_usd | margin_pct | payment_terms | incoterms | item_count | order_status |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SO10000001 | OR | Selkirk Pacific Fabricators Co. | DIST | 2015-01-01 | CAD | 47758.37 | 22.17 | NET45 | DAP | 3 | completed |
| SO10000002 | OR | Newhaven Allied Handling Systems Manufacturing | OEM-IND | 2015-01-01 | USD | 57950.92 | 19.57 | 2/10NET30 | DDP | 4 | completed |
| SO10000003 | OR | Langford Precision Compressors S.A. de C.V. | OEM-AG | 2015-01-01 | USD | 33467.79 | 16.16 | 1/15NET45 | FCA | 4 | completed |
Version History
| v3.0.2 | 2026-08-18 | Makes the SQL edition loadable. o2c_process_variants.activity_sequence holds a process-mining variant signature — a whole path through the process joined into one string — whose longest value is 1,681 characters, but the packaging tool capped every text column at varchar(1000). The SQL edition therefore declared a type its own rows did not fit, and loading it failed on the first oversized row with "value too long for type character varying(1000)". That column is now text, which Postgres stores and indexes identically. The data is unchanged from 3.0.1 and 3.0.0 — same 5,872,496 rows across the same 79 tables, same keys, same values. Only the column's declared type changes, and only in the SQL edition; the CSV and JSON editions were never affected. |
Related Datasets
Automotive Manufacturing Sales (EU)
ManufacturingA European automotive sales dataset across the electric transition: 12 brands, 112 models, 20 markets, four channels and five customer segments, monthly from 2016 to mid 2026, in which eight legacy European brands peak, crash, and lose a fifth of the market to battery electric entrants while their net debt climbs.
EV Battery Passport Degradation and Circularity Analytics Set (EU)
ManufacturingEU EV battery passport data linking materials, manufacturing, vehicle use, degradation, safety, second life, recycling and circular recovery.
Heavy Equipment BOM Structure (WW)
ManufacturingA heavy-equipment service parts catalogue with real bill-of-materials mechanics: six machine families, 39 variants, trees four to six levels deep with materialised paths, over a million item rows across 124,337 parts, serial-number effectivity, supersession chains with one documented loop, and a derived where-used table that reconciles exactly.