Cost Center Month-End in Four Steps — What Does KSS1 Variance Calculation Actually Leave Behind?

This post covers the last stretch of cost center month-end: variance calculation. The four steps are KSS2 (actual cost splitting) → KSS3 (target cost basis display) → KSII (actual price calculation) → KSS1 (variance calculation) — and for each step I compared the database before and after execution to see exactly which tables it touches. Environment: controlling area JNC2, cost center JNC29010, period 2026/007, KRW, S/4HANA 2021.

※ Screens, menus, and settings may differ depending on your SAP release and system configuration.

One of the four steps is different in kind

KSS3 has no Test Run checkbox and saves nothing. It computes target costs on the fly from the splitting result and actual activity quantities every time you view it. The other three steps each update different tables:

T-code Step Test Run Updates
KSS2Actual cost splittingyesCOSS
KSS3Target cost displayn/anothing (computed on view)
KSIIActual price calculationyesCOKL, COSL + CO documents (the only step that creates them)
KSS1Variance calculationyesCOSB only

The order matters because KSS1 only reads the earlier results: costs must be split per activity (KSS2) and revalued at actual prices (KSII) before target-vs-actual variance means anything. Rerunning KSS1 does not accumulate — it overwrites with the same values (all 4 records unchanged across a rerun).

What the KSS1 run produced

Four records appeared in COSB; no CO document at all. Interestingly the Variance column in the KSS1 list showed 0 — control costs equalled allocated actual costs — but that doesn't mean there is no variance: per category, debit and credit variances offset each other in storage.

Of the variance categories (ABKAT — input side vs output side, mapping exactly to the two blocks of report S_ALR_87013627), this run actually produced three: 06 input quantity, 11 remaining input variance, 21 output price.

Two variance reports, two different baselines

Easy to confuse: S_ALR_87013611 is actual vs plan, computed by Report Painter at display time — it doesn't need KSS1 at all. S_ALR_87013627 is actual vs target and reads COSB — without a KSS1 run its Target, Variance, and Output Side blocks stay empty. That's also why the same data shows Variance 0 in the KSS1 list but Var.(Abs.) 6,000 in S_ALR_87013627: different baselines.

Impact scope, verified

Comparing before/after: no FI posting, no CO document, COSS/COSP/COSL untouched. KSS1 touches exactly one thing: COSB. And don't confuse it with the similarly-named KKS1 — production order variances flow through KO88/CO88 settlement into FI and CO-PA and affect closing numbers, whereas cost center variances are not settled.

One practical note for browsing COSB directly: the variance records are stored on the cost center · activity type object (KL), not the cost center (KS) object.

Wrap-up

KSS1 is an analysis/evaluation step. Running it alone changes no closing figures — it fills the target-vs-actual view of S_ALR_87013627. In the month-end checklist the only rule is: after KSS2 and KSII. It overwrites idempotently, so a mistaken run is nothing to worry about.

Korean original (with screenshots): SAP 코스트센터 월마감 4단계 — KSS1 차이계산은 어디에 무엇을 남기는가

Where these documents come from
Everything on this blog comes from one small dumpling factory built end-to-end in an S/4HANA sandbox — one plant, one product, one month, every document number real. The whole build is written up in two books.
· Free 16-page sample — the opening chapters, no email required
· How Sarah Joined a K-Dumpling Company and Became an SAP Genius — the business novel, 53 pages, $25
· The Dumpling Factory: Building a Complete SAP S/4HANA Company from Scratch — the build manual, 85 pages, $50

Comments

Popular posts from this blog

Modern ABAP Syntax Notes — Patterns and Pitfalls from Real Development

SAP S/4HANA Table Reference — Tables I Actually Query, by Topic

A 36% margin became 6% at month-end, and every posting was correct