Asset Balances
The net-book-value snapshot of every fixed asset — acquisition cost (APC), accumulated depreciation, and the resulting net book value — per asset class and depreciation area (the old S_ALR_87011964), built on ACDOCA.
Sample build of the Asset Balances report — the net-book-value position per class and depreciation area, reconciled to the asset reconciliation accounts on the balance sheet, and rendered tool-neutral so it runs in Power BI, SAC, or Tableau.
| Asset class | Acquisition cost | Accum. deprec. | Net book value |
|---|---|---|---|
| 1000 · Buildings | 40,000,000 | 16,200,000 | 23,800,000 |
| 2000 · Machinery | 28,000,000 | 13,200,000 | 14,800,000 |
| 3000 · Vehicles | 9,500,000 | 5,600,000 | 3,900,000 |
| 4000 · IT Equipment | 6,800,000 | 4,400,000 | 2,400,000 |
Each asset class as a snapshot — total acquisition cost, accumulated depreciation, and the resulting net book value, per depreciation area. NBV = APC − accumulated depreciation, reconciled to the asset reconciliation accounts on the balance sheet.
IT Equipment (class 4000) is 65% depreciated — 4.40M of 6.80M cost written off. Assets near zero book value still in service point to a refresh cycle due, or assets that should be retired off the register.
Accumulated depreciation is a contra-asset — it reduces NBV. If a report shows it positive and adds it (SAP KBA 2631063), book value is overstated. Confirm the sign and reconcile NBV to the asset reconciliation accounts before close.
The report's query logic — generic SQL on ACDOCA, where asset values now live. It nets acquisition cost against accumulated depreciation per asset class and area to give the net book value. The same SQL becomes a dbt model in your warehouse.
Show / hide SQL
WITH asset_lines AS (
SELECT m.anlkl AS asset_class,
a.afabe AS deprec_area,
a.anbwa, a.hsl,
CASE
WHEN a.fiscalperiod = 0
OR a.anbwa BETWEEN '100' AND '399' THEN 'APC' -- cost + carryforward
ELSE 'DEPREC' -- accumulated depreciation
END AS value_type
FROM acdoca a
JOIN anla m ON m.bukrs = a.rbukrs
AND m.anln1 = a.anln1
AND m.anln2 = a.anln2
WHERE a.rbukrs = :P_COMPANY_CODE
AND a.gjahr = :P_FISCAL_YEAR
AND a.afabe = :P_DEPRECIATION_AREA -- 01 book / 15 tax / 32 IFRS
AND a.anln1 <> '' -- asset postings only
AND a.budat <= :P_KEY_DATE -- position as of the reporting date
)
SELECT asset_class, deprec_area,
SUM(CASE WHEN value_type = 'APC' THEN hsl ELSE 0 END) AS apc,
SUM(CASE WHEN value_type = 'DEPREC' THEN hsl ELSE 0 END) AS accumulated_deprec,
SUM(hsl) AS net_book_value
FROM asset_lines
GROUP BY asset_class, deprec_area
ORDER BY asset_class;The data-warehouse model — one fact surrounded by conformed dimensions (what you slice by) and measures (what you aggregate), expressed as dbt so it migrates with you. Grain: one row per asset · depreciation area · reporting date.
| Element | Type | Definition |
|---|---|---|
| dim_asset | dimension | Asset master (ANLA) — class, description, capitalization date |
| dim_deprec_area | dimension | Depreciation area & accounting principle — book / tax / IFRS |
| dim_company_code | dimension | Company code & ledger context (RLDNR) |
| dim_date | dimension | Conformed calendar — fiscal year & period |
| apc | measure | Acquisition cost (APC) — cumulative cost incl. carryforward |
| accumulated_deprec | measure | Accumulated depreciation — the contra-asset, reduces NBV |
| net_book_value | measure | Net book value — APC less accumulated depreciation |
Every source object behind this report. Each linked object has its own page — with its fields and its real S/4HANA status, so you build on the right thing.
| Object | Role | Key fields | S/4HANA status |
|---|---|---|---|
| ACDOCA | Universal Journal — asset values post here (ANLN1 · AFABE · ANBWA) | 6 PK · 360+ | Transparent table |
| ANLA | Asset master — class, description, capitalization date | ANLN1 · ANLN2 | Transparent table |
| ANLZ / ANLB | Time-dependent assignments & depreciation terms (key, useful life) | ANLN1 | Transparent table |
| I_FixedAsset | Released asset-master CDS view — class, attributes | released | Released CDS view |
| I_AssetValuationForLedger | Released asset-values CDS view (ledger-dependent) | released | Released CDS view |
| ANEP / ANLC | Legacy asset line / value tables — FAAV_* views, do not extract | — | Compat view → ACDOCA |
| FAAT_PLAN_VALUES | Planned depreciation per asset · area · period — for the forecast | reference | Transparent table |