CSKA table — Cost Elements Chart of Accounts Master Data
CSKA stores cost element master data at the chart-of-accounts level, one row per chart of accounts and cost element number for a given validity period. It holds attributes that are independent of controlling area, notably whether the cost element also exists as a G/L account. Controlling-area-specific attributes such as cost element category live in CSKB, not here.
CSKA is the chart-of-accounts-level master table for cost elements in Controlling, sitting alongside CSKB which carries the controlling-area-dependent attributes. This page covers what each row represents, the fields worth trusting, how it joins to G/L account and CO postings tables, and the recurring mistake of treating a CSKA row as proof that a cost element is usable in a given controlling area.
Published 15 Sept 2026· 1,100 words
What it stores
One row in CSKA represents a cost element's master record at the chart of accounts level, keyed by chart of accounts (KTOPL) and cost element number (KSTAR), valid for a specific date range. Because a single cost element can be used across multiple controlling areas that share the same chart of accounts, CSKA carries only the attributes that do not vary by controlling area, chiefly whether the cost element is also created as a G/L account (a primary cost element) and basic administrative data such as who created the record and when. Attributes that vary by controlling area, most importantly the cost element category that determines whether it is primary, secondary, revenue, or another type, are not stored here; they sit in CSKB, keyed additionally by controlling area.
Key fields
- MANDT - client
- KTOPL - chart of accounts, part of the key, must match a chart defined in the chart of accounts configuration table
- KSTAR - cost element number, for primary cost elements identical in value to the G/L account number in SKA1/SKB1
- DATAB - start of validity for this record
- DATBI - end of validity for this record, typically far in the future for the current record
- BKZKS - indicator that the cost element is also maintained as a G/L account (a primary cost element)
- ERSDA - date the record was created
- ERNAM - user who created the record
How it joins the data model
- CSKA-KTOPL = SKA1-KTOPL and CSKA-KSTAR = SKA1-SAKNR, since a primary cost element shares its number with the corresponding G/L account
- CSKA-KTOPL = T004-KTOPL, the chart of accounts referenced must exist in configuration
- CSKA-KSTAR = CSKB-KSTAR, restricted further by KOKRS, to pull the controlling-area-dependent attributes including cost element category
- CSKA-KSTAR = COEP-KSTAR, to trace CO line items posted against the cost element
- CSKA-KSTAR = COBK-... via COEP, when reconciling a CO document header back to the cost elements it touched
How to read it safely
Always filter on MANDT and KTOPL first; KTOPL is part of the key and a query without it scans across every chart of accounts in the client. Add a KSTAR range or exact value whenever the business question is about a specific cost element. Because the table is time-dependent, filter DATBI greater than or equal to the reference date to get the currently valid record rather than picking up an expired or not-yet-effective one. The table itself is small relative to CO transactional tables, so a scan restricted by KTOPL is cheap; the risk is not performance, it is picking the wrong validity slice or forgetting that BKZKS, not KATYP, is the only category-like flag available here.
How to prove it in the data
Symptom: a posting fails or a report shows a cost element as unknown in a specific controlling area. Select CSKA on KTOPL and KSTAR with DATBI covering the posting date. If a row exists, the cost element is defined at chart of accounts level, so the failure is not a master data gap at this level. Next select CSKB on the same KSTAR plus the controlling area (KOKRS) in question; if no row is returned there, the cost element was never extended to that controlling area, which is the actual root cause.
ECC vs S/4HANA
CSKA remains a valid table in S/4HANA and continues to carry chart-of-accounts-level cost element master data with essentially the same structure. The unification of cost elements and G/L accounts in S/4HANA changes how primary cost elements are maintained (through the G/L account master rather than a separate cost element transaction) but does not remove or restructure CSKA itself; secondary cost elements, which have no G/L account counterpart, are still maintained and stored the same way. Current maintenance is steered toward Fiori apps and compatible CDS views rather than the classic transactions, but reading CSKA directly for master data checks still returns correct results.
Common pitfalls
- Filtering on cost element category and getting nothing back from CSKA: category (KATYP) is not stored here, it lives in CSKB, so a query against CSKA for category always fails silently rather than erroring, and gets misread as no primary cost elements existing.
- Treating a CSKA row as proof the cost element can be used in a specific controlling area. It only proves the chart-of-accounts-level record exists; usability in a given controlling area requires a matching CSKB row for that KOKRS, and that extension step is a separate master data action.
- Joining CSKA to SKA1 unconditionally and dropping rows. Secondary cost elements have BKZKS off and no counterpart G/L account, so an inner join to SKA1 silently removes every secondary cost element from the result set.
- Ignoring DATAB/DATBI and querying without a date filter, which can return an expired record whose BKZKS or other attributes no longer match current reality, leading to a wrong conclusion about whether a cost element is currently primary.
- Searching CSKA for a description or long text. CSKA has no text field; descriptions are held in a separate text table for cost elements, or, for primary cost elements, can be read from the G/L account text table via the shared account number.
Whose problem this is
Cost element master data is functionally owned by the Controlling team responsible for cost accounting and the chart of accounts. Extensions to new controlling areas, category assignment, and secondary cost element creation are CO master data governance decisions. FI gets involved only for primary cost elements, since any change ripples into the linked G/L account master in SKA1/SKB1.
Related SAP objects
Reviewed pages this object connects to in the ERPClimb knowledge graph.
Source: ERPClimb — https://erpclimb.com/sap-tables/cskaERPClimb is an independent platform and is not affiliated with SAP SE. Reference pages are written and reviewed by SAP consultants for learning and troubleshooting.