SAP tableObjectCSKSModuleFI_FICO

CSKS table — Cost Center Master Data Table

CSKS holds the time-dependent master record for a cost center inside a controlling area: its validity period, company code, currency, hierarchy assignment, person responsible, and locking indicators. It does not store balances or actual postings. A cost center can exist here with several rows, one per time slice, and confusing that with a single current record is the most common misread.

CSKS is the master data table behind transactions KS01 to KS03 and every cost center dropdown in FI and CO. This page covers the time-slicing structure of the table, the joins consultants actually write against CSKT, CSKB and T001, and the recurring mistakes made when reading balances, hierarchies or block indicators straight off this table.

Published 15 Sept 2026· 1,108 words

What it stores

One row in CSKS represents a single time slice of a cost center's master data within one controlling area. Because attributes such as company code, profit center, currency, person responsible, or hierarchy assignment can change over the life of a cost center, SAP does not overwrite the record on change: it closes the current slice by setting its validity end date and inserts a new row for the new period. So a cost center that has been reorganised five times over ten years has five rows in CSKS, not one. The table carries organisational and control attributes only. It has no amount fields and no fiscal year or posting period fields, because it is not a balance table; it is the definition of the object that later postings reference by number.

Key fields

  • MANDT - client
  • KOKRS - controlling area, the object is only unique within this area
  • KOSTL - cost center number
  • DATBI - validity end date of this time slice, 99991231 for the currently open slice
  • DATAB - validity start date of this time slice
  • BUKRS - company code assigned to the cost center for this period
  • WAERS - currency of the cost center
  • PRCTR - profit center assigned for this period
  • KHINR - standard hierarchy area the cost center reports into
  • VERAK - personnel number or user ID of the person responsible
  • ABTEI - department text/code, often used loosely in older configurations
  • FUNC_AREA - functional area assigned to the cost center

How it joins the data model

  • CSKS-KOKRS = CSKT-KOKRS and CSKS-KOSTL = CSKT-KOSTL, matched on the same date to get the description text for that time slice
  • CSKS-KOKRS = CSKB-KOKRS and CSKS-KOSTL = CSKB-KOSTL, to find which cost elements are allowed to post to this cost center in a given period
  • CSKS-BUKRS = T001-BUKRS, to confirm the company code the cost center belongs to and its legal entity attributes
  • ACDOCA-KOSTL = CSKS-KOSTL restricted also by ACDOCA-RCLNT and ACDOCA-KOKRS, when tracing which actual postings landed on a given cost center master record

How to read it safely

Always restrict by MANDT first, then by KOKRS, since KOSTL is not globally unique and a query without controlling area can silently join the wrong cost center across areas that happen to reuse the same number. For any lookup tied to a specific date, filter DATAB less than or equal to that date and DATBI greater than or equal to that date rather than assuming DATBI equals 99991231, which only catches the open-ended slice and misses historical or future-dated records. The table itself is not large in most landscapes, so performance is rarely the issue; correctness of the date filter is.

How to prove it in the data

Symptom: a posting to a cost center is rejected as not valid for the posting date. Selection: read CSKS for the KOKRS and KOSTL in question with no date filter, list all rows sorted by DATAB, and compare the posting date against each slice's DATAB and DATBI range. If the posting date falls in a gap between two slices, or after the last DATBI, the cost center has no valid master record covering that date, which explains the rejection independently of any authorization or blocking issue.

ECC vs S/4HANA

CSKS remains a transparent table in S/4HANA with the same time-sliced structure it had in ECC; cost center master data was not absorbed into the universal journal or restructured the way FI totals tables were. It is still maintained through the same cost center maintenance transactions and still feeds ACDOCA as a characteristic on posted line items. Reporting tools increasingly read cost center data through compatibility views rather than the table directly, but the underlying table and its field layout are unchanged.

Common pitfalls

  • Reading only the row with DATBI = 99991231 and treating it as the current record. If a change was posted with a future start date, the row that is actually valid today may carry a different DATBI, and the open-ended row may not be the one governing present-day postings.
  • Joining on KOSTL alone across controlling areas. The same cost center number can exist in more than one KOKRS with completely different attributes; omitting KOKRS from the join produces a cartesian mismatch that looks plausible but is wrong.
  • Assuming CSKS shows financial impact. It has no balance, no amount, no fiscal period. Whoever wants to know what actually posted to a cost center needs ACDOCA or the CO line item tables, not this table.
  • Trusting VERAK as an accurate 'who owns this cost center' answer. In many landscapes this field is set once at creation and never maintained afterward, so it reflects history rather than current organisational reality.
  • Ignoring the block indicators when investigating a failed posting. A cost center can be structurally valid for the date in question but locked for actual or plan postings in a given period; the block flags live in the same record and get overlooked in favour of just checking the date range.
  • Reading the hierarchy field KHINR in isolation. The node a cost center reports to can itself move within the standard hierarchy over time, so a historical report built on today's hierarchy assignment will misstate where old costs rolled up.

Whose problem this is

Cost center creation, blocking, and hierarchy assignment sit with the controlling or FP&A master data team, usually governed by a change request process tied to the org structure. Business unit finance owns the accuracy of the person responsible and cost center category. A dispute over whether a cost center was valid, blocked, or correctly hierarchy-assigned on a given date is resolved by pulling CSKS history, not by asking the requester to recall what they intended.

Related SAP objects

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

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