SAP tableObjectCOSBModuleFI_FICO

COSB table — CO Object Total Variances Table

COSB is the CO totals table that stores summarized variance amounts and quantities, by cost element, fiscal year, value type and version, for a CO object such as a production order or product cost collector. It holds the output of variance calculation before settlement, broken into sixteen period buckets per row rather than one row per posting.

This page covers what a row in COSB actually represents, the fields a consultant can rely on when querying it, and how it fits between variance calculation and settlement in product cost controlling. It focuses on the diagnostic reflexes needed when a variance figure in a report does not match what COSB shows, and where the table's totals-only nature causes people to draw wrong conclusions.

Published 15 Sept 2026· 1,234 words

What it stores

One row of COSB holds the summarized variance amounts and consumption quantities for one CO object (a production order, process order, product cost collector or run schedule header), one fiscal year, one value type, one version and one cost element, with values broken out into up to sixteen period buckets instead of one row per posting. Rows are created by variance calculation run against a delivered or settled cost object, representing the price, quantity, resource-usage, scrap and remaining variance categories that the standard cost estimate did not absorb. COSB is a totals table, not a line-item table: it does not record who ran the variance calculation, when, or against which document. It only shows the resulting period-by-period amount per cost element and object. Settlement later reads these totals and transfers the settlement-relevant share onward into the internal and external cost totals tables and eventually into the general ledger.

Key fields

  • MANDT - client
  • OBJNR - CO object number, resolves to the actual order, cost object or WBS element through the object number conversion
  • GJAHR - fiscal year of the totals record
  • WRTTP - value type, distinguishes actual from plan and from other value categories
  • VERSN - version, ties the record to a specific plan or actual version
  • KSTAR - cost element, the primary or secondary cost element the variance is booked against
  • BEKNZ - debit/credit indicator for the amount
  • TWAER - transaction currency of the amounts
  • PERBZ - period distribution indicator, relevant for special periods 13 to 16
  • WKG001 to WKG016 - period values in the object/controlling area currency, one field per posting period
  • MEINH - base unit of measure for the quantity fields
  • MBG001 to MBG016 - period consumption quantities matching the WKG period fields

How it joins the data model

  • COSB-OBJNR resolves through the object number conversion table to the order master record, giving order number, order type and order category
  • COSB-KSTAR = CSKB-KSTAR joins to the cost element master for controlling-area-level validity and cost element category
  • COSB-KSTAR = CSKA-KSTAR joins to the cross-client cost element master text and category
  • COSB shares GJAHR, VERSN, WRTTP and OBJNR key parts with the other CO totals tables, so the same object's primary and secondary actual/plan totals sit in the parallel tables for cost totals rather than in COSB itself
  • settlement of the variance-relevant portion posts onward into the general ledger, so the settled amount eventually surfaces in the universal journal against the receiver object and cost element

How to read it safely

Always restrict by client, and never select COSB without an OBJNR restriction or an equivalent order number range converted upstream: the table accumulates one row per cost element per object per year, and an unrestricted scan across a large cost object controlling landscape will run long or time out. Restrict on GJAHR, VERSN and WRTTP before adding cost element filters, since the same object can carry actual, plan and multiple version rows that look similar but must not be summed together. Because the period values live in sixteen separate fields rather than sixteen rows, comparing a full-year total means summing WKG001 through WKG012 (or through WKG016 if special periods are relevant), not counting rows. For normal analysis, use the standard cost object controlling reports rather than a raw table pull; go to the table directly only to reconcile a report figure against what is actually stored.

How to prove it in the data

Symptom: a settlement run appears to have pushed scrap variance to a receiver that should not carry scrap costs. Resolve the production order to its object number, then select COSB for that OBJNR with GJAHR equal to the period in question, VERSN 0 and WRTTP for actual, restricted to the scrap-related cost element range. Sum the relevant WKG fields for the periods in the settlement run. If the amount is non-zero in COSB but the receiver's actual costs do not reflect it, the discrepancy is in the settlement rule or in what was marked settlement-relevant, not in variance calculation itself.

ECC vs S/4HANA

The universal journal in S/4HANA carries the financial result of settlement, but the underlying variance calculation step and its category-level totals continue to be written to the classic CO totals structure that COSB represents in current S/4HANA releases, kept for cost object controlling behind a compatibility layer rather than folded directly into the universal journal table. Whether a given release has changed this further is worth confirming with the product costing lead on the project rather than assuming either way, since this area has moved over successive releases.

Common pitfalls

  • Treating COSB as if it were a document-level table: it carries no reference to who ran variance calculation, when, or which posting caused a movement. That detail lives in the variance calculation log or in the CO line-item table, not here.
  • Assuming a COSB amount equals what landed in the general ledger. Only the portion of the variance marked settlement-relevant for a given category is actually settled; the rest stays as an unsettled variance on the object and never reaches FI.
  • Reading the sixteen period fields as calendar months without checking the fiscal year variant. A non-calendar fiscal year variant shifts which period a given business month falls into.
  • Mixing WRTTP or VERSN values when summing across queries, which silently nets actual against plan or blends versions that should be reported separately.
  • Reading a zero or missing row as proof that no variance exists, when in fact variance calculation was never run for that period, or the object's status does not yet allow it (not delivered, not technically complete, or not released for the run).
  • Querying without an OBJNR restriction on a plant with heavy make-to-order or repetitive manufacturing volume, which produces an unusably large result set or a timeout.
  • Expecting COSB and the primary/secondary cost totals tables to carry identical object number ranges. Variance calculation only runs on order types and statuses configured for it, so an object can appear in the cost totals tables with no corresponding COSB row at all.

Whose problem this is

A variance figure question on COSB belongs to the product costing or cost object controlling consultant, not the FI general ledger team. If the disagreement is between the settled amount in the ledger and the total sitting in COSB, the settlement rule and the variance category settlement-relevance configuration are the first things that consultant should pull up, not a GL posting trace.

Related SAP objects

Reviewed pages this object connects to in the ERPClimb knowledge graph.

Source: ERPClimb — https://erpclimb.com/sap-tables/cosbERPClimb is an independent platform and is not affiliated with SAP SE. Reference pages are written and reviewed by SAP consultants for learning and troubleshooting.