REQ-FUN-117

Actual cost capture with cash / non-cash dimension and category taxonomy

ID
REQ-FUN-117
Category
Functional Requirements
Status
approved
Priority
P0
Created
2026-05-11T18:34:00.000Z
Approved
2026-05-11T18:37:00.000Z
Updated
2026-05-11T18:37:00.000Z

What

System SHALL capture actual cost entries against a subject (project / work_package / activity) with fields amount_cents, currency, category, cash_dimension (cash | non_cash), incurred_on (date), recorded_by, recorded_at, source_ref (free text linking to invoice / receipt / log).

Why

established project management guidelines Control Costs depends on Actual Cost (AC) for EVM. The cash vs non-cash split is intentional: AI-agent compute is real cash spend; developer time is non-cash opportunity cost. Lumping the two masks where money actually moves.

How

cost_ledger table FK-bound to project (always) and work_package / activity (optional); category enum from REQ-FUN-121 default taxonomy; amount in decimal cents (REQ-NFR-070). Insert-only at app level; corrections are new offsetting entries with an explicit reverses_ledger_id. Daily aggregation cache materialized for report performance.

Done when

Entries round-trip via REST + MCP; corrections show as offsetting rows; cash_dimension filter on the cost report returns only matching rows; audit row written on every insert.

Out of scope

Accounts-payable workflow; vendor invoicing.

established project management guidelines Mapping

Primary Knowledge Area
Cost Management
Secondary KAs
Integration Management
Primary Process Group
Executing
established project management guidelines Deliverable
Cost Baseline, Audit Log

established project management guidelines Control Costs requires Actual Cost (AC) capture - the cost ledger.