Now accepting guest editorial from SAP, Oracle, Workday and ServiceNow practitioners.Pitch a guide
The Sign-Off Table

Lesson 3 of 5

Costing and close

10 min

Listen to this lesson

0:00 / 8:30

A costing run that finishes without errors is not a passed test. Neither is a period-end that ran every step on time. Controlling results are numbers, and the only strong evidence for a number is an independent calculation that agrees with it. This lesson covers how to validate standard cost estimates, work in process and variances by recalculating them for a sample of materials and orders.

Validating the costing run

Standard costs are calculated in a costing run (for example with the costing run transaction CK40N for many materials, or CK11N for one), then marked and released to become the standard price for the period. A common sequence before a new period is: create and mark the next period's estimates, move the materials period, release the estimates, then run the period-end steps. The test question is whether the released standard price is the one the business expects.

  1. Choose samplesCMC-ALT-100 in 1710 and 1720, CMC-RTR-200, one purchased part, one material with a recent BOM change
  2. RecalculateSpreadsheet roll-up: BOM quantities × component prices + routing times × activity rates + overhead
  3. Run and compareCosting run result versus the spreadsheet, by cost component
  4. Explain differencesEach difference traced to a price, quantity, rate or overhead rule
  5. Release and confirmReleased price on the material master equals the agreed standard
Validating a costing run with independent calculation.
The Sign-Off Table · thesignofftable.com/academy/sap-co-304

For Contoso the anchor numbers are known: CMC-ALT-100 has a standard cost of $150 in Detroit and $156 in Chicago. The test recalculates both from the BOM, the routing and the rates, and explains the $6 gap: Chicago's rates and overhead are higher. If the recalculation gives $150 for Chicago, either the spreadsheet or the costing setup is wrong, and the test has done its job by making someone look.

Cost componentDetroit 1710Chicago 1720Why they differ
Material (rotor and parts)$80.00$80.00Same BOM and component prices
Material overhead$8.00$8.80Chicago material overhead rate higher (11%)
Assembly labor$26.00$27.00Chicago labor rate higher ($54 per hour)
Machine time$24.00$25.50Chicago machine rate higher ($102 per hour)
Production overhead$12.00$14.70Chicago production overhead rate higher (28%)
Total standard$150.00$156.00Agreed with Dan before release

Expected cost component split for CMC-ALT-100, used as the test oracle. Illustrative values.

The USD 6.00 gap between Chicago and Detroit comes entirely from higher rates and overhead, not from material.
The Sign-Off Table · thesignofftable.com/academy/sap-co-304

Validating WIP and variances

Work in process and variances follow the same principle. For WIP, take an open order and calculate by hand what should remain in process given the confirmations and goods receipts so far. For variances, take a delivered order and calculate target cost (standard cost of the quantity delivered) against actual cost, then split the difference into categories such as input price, quantity, resource usage, lot size and scrap. SAP's training reminds us that WIP and variances are not calculated for the same order in the same period: the order status decides which applies, so include an order that changes status during the test month.

CheckOrder 1 (open)Order 1001200 (delivered)
Status at period endReleased, partly confirmedDelivered
Expected resultWIP equal to costs not yet covered by deliveriesNo WIP; variance = actual − target
Independent calculationCosts to date minus standard value of delivered quantity$77,900 actual − $75,000 target (500 × $150) = $2,900
SettlementWIP to the balance sheetVariance to the P&L and the material ledger
WIP and variance expectations for two Detroit orders.
The Sign-Off Table · thesignofftable.com/academy/sap-co-304

Choosing the sample

You cannot recalculate every material and every order, and you do not need to. Pick a sample that exercises each costing path at least once: a finished good with a multilevel BOM, a semi-finished component made in-house, a purchased part, a material that exists in both plants, a material with a recent change to its BOM or routing, and any material with special procurement such as a transfer from another plant. For orders, take one that is open at period end, one delivered within the period, one technically completed with a remaining balance, and one with significant scrap. Record the sample and the reason for each choice in the test plan; when a controller asks "why these?", the answer should already be written down.

Keep the independent calculation independent. The spreadsheet should take BOM quantities, routing times, prices and rates from the design documents or the business owner, not from the system output it is checking. If the spreadsheet is filled from the same tables the costing run reads, both will agree when both are wrong.

An oracle filled from the same tables the costing run reads will agree with it even when both are wrong.
The Sign-Off Table · thesignofftable.com/academy/sap-co-304

What would you do?

The costing run in CMQ shows $152.40 for CMC-ALT-100 in Detroit. Priya's spreadsheet says $150.00. Luis wants to know if the dress rehearsal can proceed. What is the right next step?

Key points
  • A run that finishes is not a test; agreement with an independent calculation is.
  • Recalculate standard costs for sampled materials by cost component and compare before release.
  • Validate WIP on open orders and variances on delivered orders with hand calculations.
  • Include an order that changes status in the test month, since status decides WIP versus variance.

Check your understanding · not graded

Lesson check

  1. 1. What is strong evidence that a costing run is correct?

  2. 2. A delivered order has $77,900 actual and a target of $75,000. What is the variance?

  3. 3. Why include an order that changes status during the test month?

  4. 4. Why must the oracle spreadsheet not be filled from the tables the costing run reads?