SKAT table — G/L Account Master Text by Language
SKAT holds the language-dependent short and long descriptions for G/L accounts defined in a chart of accounts. One row is one account's text in one language. It has no company code data and no balances; it exists purely so the same account number can display a different description in German, English, or any other maintained language.
SKAT is the text table sitting behind SKA1, storing the description of each G/L account per chart of accounts and language key. This page covers the fields worth selecting on, the joins into SKA1 and SKB1, and the recurring mistake of treating SKAT content as historically accurate when it is only ever current-state master data.
Published 15 Sept 2026· 894 words
What it stores
Each row in SKAT represents the description of one G/L account, for one chart of accounts, in one language. SAP separates the language-independent attributes of a G/L account (control data, account group, sample account indicators) into SKA1, and the language-dependent name into SKAT, because the same account number can carry different descriptions in different logon languages without duplicating the master record. When a G/L account is created or its text is changed, a corresponding row is written or updated per language that has been maintained. If a language was never maintained for an account, no row exists for that language and the account will display blank or fall back to the account number in reports run in that language.
Key fields
- MANDT - client
- SPRAS - language key the text is maintained in
- KTOPL - chart of accounts
- SAKNR - G/L account number, only unique together with KTOPL
- TXT20 - short description, used on narrow report columns and list displays
- TXT50 - long description, used on account statements and most standard reports
How it joins the data model
SKAT is joined to the control record and to the company code segment almost every time it appears in a query, because on its own it has no company code and no balance.
- SKAT-KTOPL = SKA1-KTOPL and SKAT-SAKNR = SKA1-SAKNR
- SKA1-KTOPL = T004-KTOPL
- SKB1-SAKNR = SKA1-SAKNR and SKB1-BUKRS = T001-BUKRS
- T001-KTOPL = SKA1-KTOPL to find which chart of accounts a given company code uses before selecting SKAT
How to read it safely
MANDT is the first restriction, as always. After that, KTOPL and SPRAS are the two fields that actually control what comes back. Selecting on SAKNR alone across multiple charts of accounts will return one row per chart, per language, and can look like duplicate master data when it is not. If SPRAS is left open, the result set fans out to one row per maintained language, which is the single most common reason a quick SE16 pull looks wrong to someone expecting one row per account. The table itself is small and cheap to read; the risk is entirely in under-restricting it, not in its size.
How to prove it in the data
Symptom: a report run in a second logon language shows the account number instead of a description for certain G/L accounts. Select SKAT with KTOPL equal to the chart of accounts in use, SAKNR equal to the account in question, and SPRAS equal to the language the report was run in. No row returned confirms the text was never maintained in that language; a row returned with blank TXT50 confirms only the short text was maintained.
ECC vs S/4HANA
SKAT continues to exist as a transparent table in S/4HANA in the same shape as in ECC. It was not absorbed into ACDOCA, since ACDOCA carries posted line item data and SKAT is master data text, not a transactional table. G/L account master maintenance in S/4HANA writes to the same underlying SKA1 and SKAT structures even where the maintenance transaction itself has been consolidated under a newer account master app.
Common pitfalls
- Assuming SKAT is historically accurate. It is not versioned. If an account is renamed, every past and future report using that account number will show the new name, including on documents posted years earlier under the old description.
- Selecting SAKNR without KTOPL. The same account number can exist under a different meaning in a different chart of accounts, and the query will silently mix unrelated accounts together.
- Leaving SPRAS unrestricted in a program or ad hoc query and being surprised by multiple rows per account.
- Treating a missing SKAT row as a missing G/L account. The account can be fully valid in SKA1 and posted to in SKB1 with no text at all in a particular language.
- Editing TXT50 directly in the table to fix a typo instead of going through the account maintenance transaction. Direct table edits bypass change logging and can leave the account's other language texts inconsistent.
- Confusing TXT20 truncation for a data error. Reports that only show TXT20 will cut off longer names; the full name is still correct in TXT50.
Whose problem this is
The chart of accounts owner, usually a central FI master data or GL accounting function, owns account descriptions. Local company code teams cannot rename an account for their own entity, since the description is tied to the chart of accounts, not to the company code, and a change is visible everywhere that chart of accounts is used.
Related SAP objects
Reviewed pages this object connects to in the ERPClimb knowledge graph.
Source: ERPClimb — https://erpclimb.com/sap-tables/skatERPClimb is an independent platform and is not affiliated with SAP SE. Reference pages are written and reviewed by SAP consultants for learning and troubleshooting.