Skip to main content

Dataset Guide

This page gives the mental model for the dataset: what is in it, how the table families fit together, which paths matter most, and how operational activity reaches GLEntry.

Use Schema Reference when you need field-level lookup. Use Company Story and Process Flows when you need the business narrative first.

What the Dataset Is

Charles River Accounting Dataset models one integrated business: Charles River Home Furnishings, Inc..

It connects:

  • business processes
  • operational source documents
  • planning and support layers
  • subledger logic
  • posted GLEntry records

The dataset supports a clean move from business activity to source documents and from source documents to ledger impact.

What the Dataset Contains

The current implementation contains 73 tables across eight areas:

AreaWhat it coversCount
Accounting coreChart of accounts, journals, and posted ledger detail3
Order-to-cashCustomers, commercial pricing, goods orders, service engagements, approved service billing, shipments, invoices, cash, returns, credits, and refunds22
Procure-to-payRequisitions, purchase orders, receipts, supplier invoices, and disbursements9
ManufacturingBOMs, routings, work centers, work orders, issues, completions, and close14
Payroll and timeShifts, rosters, absences, overtime approvals, punches, approved daily time, payroll, and remittances14
Master dataItem, warehouse, and employee records3
Organizational planningCost centers, budget summary, and budget detail3
Demand planning and MRPForecasting, inventory policy, recommendations, MRP, and rough-cut capacity5

Most classes use these ready-to-use files:

  • CharlesRiver.sqlite
  • CharlesRiver.xlsx
  • CharlesRiver_csv.zip

Download them from Downloads or use the copies already shared for your course.

How the Data Is Organized

Students usually understand the model fastest when they read it in layers:

LayerWhat belongs hereWhat it adds
Business master dataCustomer, Supplier, Item, Employee, Warehouse, CostCenterDefines who, what, and where
Planning and setupBOMs, routings, shifts, rosters, forecasts, inventory policiesExplains what should happen before execution starts
Execution documentsOrders, service engagements, approved service time, shipments, receipts, invoices, work orders, labor records, payroll recordsShows what actually happened
Ledger and controlJournalEntry, GLEntry, budgets, remittancesShows the accounting effect and reporting layer

Many document families also use a header-line pattern:

Header tableLine tableMeaning
SalesOrderSalesOrderLineOne customer order can contain many goods lines or service lines
ShipmentShipmentLineOne shipment can contain many shipped lines
SalesInvoiceSalesInvoiceLineOne invoice can contain many shipment-based lines or service-billing lines
PurchaseOrderPurchaseOrderLineOne PO can contain many ordered lines
GoodsReceiptGoodsReceiptLineOne receipt can contain many received lines
PurchaseInvoicePurchaseInvoiceLineOne supplier invoice can contain many billed lines
MaterialIssueMaterialIssueLineOne material issue can contain many component lines
ProductionCompletionProductionCompletionLineOne production completion can contain one or more completion lines
PayrollRegisterPayrollRegisterLineOne payroll register can contain many earnings and deduction lines

The Most Important Keys

You do not need every key on day one. Start with the keys that anchor document chains:

KeyUse it to connect
CustomerIDCustomer to orders, invoices, receipts, returns, credits, and refunds
SalesOrderIDSales order header to goods fulfillment and service-billing branches
SalesOrderLineIDOrder lines to shipment lines, service engagements, and invoice lines
ServiceEngagementIDOne service engagement across staffing, approved time, and billing
ServiceEngagementAssignmentIDOne employee assignment across approved service-time rows
ServiceBillingLineIDOne billed-hours record back to its engagement and invoice line
ShipmentLineIDShipped lines to billed lines and returned lines
SupplierIDSupplier to purchase orders, invoices, and payments
PurchaseOrderIDPurchase order header to receipts and invoices
POLineIDPurchase order lines to receipt lines and invoice lines
GoodsReceiptLineIDInventory receipt lines to supplier invoice lines
AccrualJournalEntryIDAccrued service invoice lines back to the original accrual journal
WorkOrderIDWork-order activity across issue, completion, close, and direct labor
WorkOrderOperationIDOperation-level schedules and labor to one work-order operation
EmployeeShiftRosterIDPlanned roster rows to absences, overtime approvals, punches, and approved daily time
TimeClockEntryIDApproved daily time to labor entries and attendance exceptions
PayrollPeriodIDLabor entries, payroll registers, and liability remittances to a pay period
PayrollRegisterIDPayroll header to line detail and net-pay settlement
SupplyPlanRecommendationIDPlanning recommendations to requisitions, work orders, MRP rows, and rough-cut capacity rows
ItemIDProduct-level analysis across sales, purchasing, manufacturing, and planning
AccountIDGLEntry, Budget, and BudgetLine to the chart of accounts
CostCenterIDOperating activity, labor, budgets, and reporting by organization unit

For exact field-level lookup, go to Schema Reference.

Core Navigation Paths

These are the fastest ways to move through the model.

O2C path

The customer-demand flow splits into a goods path and a design-services path.

Goods path:

Customer -> SalesOrder -> SalesOrderLine -> Shipment -> ShipmentLine -> SalesInvoice -> SalesInvoiceLine

Design-services path:

Customer -> SalesOrder -> SalesOrderLine -> ServiceEngagement -> ServiceEngagementAssignment -> ServiceTimeEntry -> ServiceBillingLine -> SalesInvoiceLine

Cash settlement is tracked through:

CashReceipt -> CashReceiptApplication -> SalesInvoice

Returns branch from the billed shipment path:

SalesInvoiceLine -> SalesReturn -> SalesReturnLine -> CreditMemo -> CreditMemoLine -> CustomerRefund

Commercial pricing is resolved before shipment and billing through:

Customer -> PriceList -> PriceListLine -> SalesOrderLine <- PromotionProgram and PriceOverrideApproval

P2P path

Supplier -> PurchaseRequisition -> PurchaseOrder -> PurchaseOrderLine -> GoodsReceipt -> GoodsReceiptLine -> PurchaseInvoice -> PurchaseInvoiceLine -> DisbursementPayment

The accrued-service branch is:

JournalEntry (Accrual) -> PurchaseInvoiceLine.AccrualJournalEntryID -> PurchaseInvoice -> DisbursementPayment

Manufacturing path

Item -> BillOfMaterial -> BillOfMaterialLine -> WorkOrder -> WorkOrderOperation -> WorkOrderOperationSchedule -> MaterialIssue -> MaterialIssueLine -> ProductionCompletion -> ProductionCompletionLine -> WorkOrderClose

Manufacturing also depends on:

  • P2P for raw materials and packaging
  • time and payroll for labor support
  • O2C for finished-goods demand and shipment

Demand-planning path

Item -> InventoryPolicy -> DemandForecast -> SupplyPlanRecommendation -> MaterialRequirementPlan -> PurchaseRequisition or WorkOrder

Capacity tieout is tracked through:

SupplyPlanRecommendation -> RoughCutCapacityPlan -> WorkCenterCalendar

Payroll and time path

ShiftDefinition -> EmployeeShiftAssignment -> EmployeeShiftRoster -> TimeClockPunch -> TimeClockEntry -> LaborTimeEntry -> PayrollPeriod -> PayrollRegister -> PayrollRegisterLine -> PayrollPayment

Liability clearance is tracked through:

PayrollPeriod -> PayrollLiabilityRemittance

Ledger path

GLEntry -> Account

Then use:

  • SourceDocumentType
  • SourceDocumentID
  • SourceLineID
  • VoucherType
  • VoucherNumber

to move back to the originating event.

How Operational Activity Reaches the Ledger

The most important mental rule is simple: planning and setup tables usually stay outside the posting flow, while execution and finance events often reach the ledger.

Type of activityUsually posts to GL?Examples
Master data and planningNoItem, Employee, Budget, BudgetLine, BOMs, routings, forecasts, inventory policies
Operational commitmentsNoSalesOrder, PurchaseRequisition, PurchaseOrder, WorkOrder
Operational execution with accounting effectYesShipment, SalesInvoice, GoodsReceipt, MaterialIssue, ProductionCompletion, PayrollRegister
Settlements and clearancesYesCashReceipt, CashReceiptApplication, DisbursementPayment, PayrollPayment, PayrollLiabilityRemittance, CustomerRefund
Finance-controlled entriesYesJournalEntry, WorkOrderClose, accruals, reclasses, year-end close

Use GLEntry Posting Reference when you want the exact posting rules behind one event.

How to Start Navigating by Topic

Financial accounting

Start with:

  • GLEntry
  • Account
  • ServiceBillingLine
  • SalesInvoice
  • CashReceiptApplication
  • PurchaseInvoice
  • DisbursementPayment
  • PayrollRegister
  • WorkOrderClose

Managerial accounting

Start with:

  • Item
  • PriceList
  • PriceListLine
  • PromotionProgram
  • PriceOverrideApproval
  • ServiceEngagement
  • ServiceTimeEntry
  • Budget
  • BudgetLine
  • CostCenter
  • BillOfMaterial
  • WorkOrder
  • MaterialIssueLine
  • ProductionCompletionLine
  • LaborTimeEntry
  • DemandForecast
  • SupplyPlanRecommendation

Auditing and controls

Start with:

  • O2C chain tables
  • design-services tables
  • P2P chain tables
  • manufacturing chain tables
  • payroll and time chain tables
  • GLEntry
  • the transaction chains in Process Flows

Practical Starting Tips

  • CashReceiptApplication is the authoritative invoice-settlement link in O2C.
  • ServiceBillingLine is the authoritative hours-to-invoice bridge for design-service billing.
  • For P2P traceability, start with PurchaseOrderLine.RequisitionID, PurchaseInvoiceLine.GoodsReceiptLineID, and PurchaseInvoiceLine.AccrualJournalEntryID.
  • For manufacturing, start from WorkOrderID and then move outward to issues, completions, close, and labor.
  • For time and attendance, start from EmployeeShiftRosterID, TimeClockEntryID, or ShiftDefinitionID.
  • For payroll, start from PayrollPeriodID or PayrollRegisterID and then move back to LaborTimeEntry and TimeClockEntry.
  • For raw multi-year income-statement analysis, exclude the year-end close entry types.

Glossary

TermPlain-language meaning
O2COrder-to-cash. The sales cycle from customer order through billing, cash application, and possible return activity.
P2PProcure-to-pay. The purchasing cycle from requisition through supplier payment.
BOMBill of material. The standard list of components required to make a manufactured item.
WIPWork in process. Inventory value that has been issued into production but not yet completed into finished goods.
GLGeneral ledger. The accounting table used for reporting and control-account reconciliation.
GRNIGoods received not invoiced. A liability recorded when inventory is received before the supplier invoice is approved.
Control accountA GL account such as AR, AP, inventory, GRNI, customer deposits, WIP, or manufacturing clearing that summarizes detailed activity.
Manufacturing varianceThe difference between actual and standard manufacturing cost that is closed from work orders.
Contribution marginRevenue less variable product cost. In this dataset, fixed overhead is excluded from contribution-margin analysis.

Next Steps