PA0008 table — PA0008 Basic Pay Infotype Table
PA0008 stores the Basic Pay infotype (0008) for each personnel number: pay scale classification, annual salary, working time percentage, and up to twenty wage type and amount pairs valid for a date range. Each row is one time-sliced version of an employee's pay structure, delimited by BEGDA and ENDDA, and is the primary input to payroll valuation and remuneration statements.
PA0008 holds the time-sliced Basic Pay record for every personnel number, carrying pay scale group and level, annual salary, and the wage type/amount pairs that feed payroll. This page covers the fields consultants actually query, the joins into org assignment and wage type valuation, and the pitfalls that come from treating a delimited infotype as a flat master record.
Published 15 Sept 2026· 1,125 words
What it stores
One row is a single validity-delimited version of an employee's basic pay as held in infotype 0008. A personnel number can have several rows in this table simultaneously, each covering a non-overlapping BEGDA to ENDDA period, plus a SEQNR for same-day changes. A row carries the pay scale type, area, group and level (TRFAR, TRFGB, TRFGR, TRFST), the capacity utilization level (BSGRD), annual salary (ANSAL) and currency (WAERS), and up to twenty pairs of wage type and amount fields (LGA01 through LGA20 with BET01 through BET20, and corresponding number fields) that represent the fixed and recurring pay components valid for that period. It does not store one-time payments, that belongs to other infotypes; PA0008 is specifically the recurring, structurally-driven pay elements.
Key fields
- PERNR - personnel number, links every infotype row to one employee
- SUBTY - subtype, usually blank for basic pay
- BEGDA / ENDDA - validity start and end date of this pay record version
- SEQNR - sequence number distinguishing multiple rows with the same BEGDA
- TRFAR / TRFGB / TRFGR / TRFST - pay scale type, area, group and level
- ANSAL - annual salary derived from the wage type amounts
- WAERS - currency key for the amounts on this row
- BSGRD - capacity utilization level as a percentage
- LGA01 to LGA20 - wage type keys for each pay component slot
- BET01 to BET20 - amount for the corresponding LGAnn wage type
- AEDTM / UNAME - date and user of the last change to this record
How it joins the data model
- PA0008-PERNR = PA0001-PERNR restricted to overlapping BEGDA/ENDDA, to bring in org unit, position and cost center for the same period
- PA0008-PERNR = PA0000-PERNR to check the employment status active on the same date, since a locked or terminated action can leave stray future-dated PA0008 rows
- PA0008-LGA01..LGA20 = T512W-LGART to resolve wage type texts, valuation classes and processing classes for each populated pay component
- PA0008-PERNR = PA0007-PERNR for working time status, since BSGRD on PA0008 should be consistent with the work schedule rule on PA0007
- PA0008 joins to T549Q indirectly through the payroll area on PA0001, when checking whether a change fell inside an already-run payroll period
How to read it safely
MANDT is the client field, always restrict on it first in any direct table access. PERNR plus the date range is the real key for selectivity; never select PA0008 without at least one of PERNR, a personnel number range, or a payroll area join, because the table carries one row per employee per pay change and grows continuously across the org. When checking pay 'as of' a date, filter BEGDA less than or equal to the key date and ENDDA greater than or equal to it, do not assume the most recent row by AEDTM is the currently valid one; changed-on date and validity date are unrelated. SPRPS marks a locked row awaiting approval, exclude it unless the check is specifically about pending changes.
How to prove it in the data
Symptom: an employee reports the wrong salary on a remuneration statement for a given month. Select PA0008 for that PERNR with BEGDA less than or equal to the pay period end date and ENDDA greater than or equal to the pay period start date, order by BEGDA descending. Compare TRFGR/TRFST and the LGAnn/BETnn pairs on the row that actually covers that period against what was expected. If two rows overlap or there is a gap between ENDDA of one row and BEGDA of the next, the payroll driver will have picked up the wrong or no record for part of the period.
ECC vs S/4HANA
PA0008 remains a live transparent table in S/4HANA on-premise for employees managed through classic or concurrent employment personnel administration; it has not been dropped. Reporting and CDS-based extraction increasingly go through compatibility views and HCM-specific CDS layers rather than direct table access, but the underlying storage and infotype logic are unchanged. Where an organization has migrated payroll and core HR to SuccessFactors Employee Central, basic pay is maintained in the cloud system and only replicated into PA0008 for on-premise payroll processing, so the table becomes a downstream replica rather than the system of entry.
Common pitfalls
- Reading only the row with the highest BEGDA and assuming it is current, when a future-dated change (a promotion effective next month) already exists and is the row actually returned by a naive query
- Ignoring SEQNR and picking an arbitrary row when two records share the same BEGDA, which happens when a same-day correction was entered; the payroll-relevant row is the one with the highest SEQNR for that date, not the first one found
- Treating ANSAL as the authoritative annualized figure without checking BSGRD and the underlying wage type amounts, since ANSAL is a derived display field and can be stale relative to a very recent wage type change that has not been re-saved
- Assuming a gap in validity periods means the employee had no pay, when it usually means an infotype delimitation error was made during a transfer or leave action and payroll will actually error out rather than silently pay zero
- Comparing LGA/BET pairs across employees positionally, for example assuming LGA01 always means the same wage type for every personnel number; the slot order is whatever was entered and differs by employee and country grouping
- Forgetting that basic pay changes triggered by an organizational reassignment on PA0001 do not automatically propagate to PA0008, so the two can legitimately disagree until an infotype 0008 action is run
Whose problem this is
Payroll configuration consultants own the wage type structure and valuation logic feeding this table; PA/OM consultants own the infotype maintenance and authorization side. When SuccessFactors Employee Central is in scope, a data discrepancy is first a replication/integration question for the EC-to-payroll integration team, not a table-level fix.
Related SAP objects
Reviewed pages this object connects to in the ERPClimb knowledge graph.
Source: ERPClimb — https://erpclimb.com/sap-tables/pa0008ERPClimb is an independent platform and is not affiliated with SAP SE. Reference pages are written and reviewed by SAP consultants for learning and troubleshooting.