offdataai
SAP · data model template

SAP Asset Accounting Analytics data model

Kimball warehouse for SAP FI-AA Asset Accounting: a transaction-grain line-item fact (ANEP / ACDOCA) and a periodic-snapshot fact (ANLC / ANLP) of per-area asset values and depreciation, sharing conformed asset (SCD2), asset-class, depreciation-area, transaction-type, cost-center, company-code, date and fiscal-period dimensions. The depreciation area is modelled as a dimension because each asset carries parallel valuations (book/tax/group/IFRS); accounting documents (belnr) are degenerate dimensions; SAP fiscal year/period drives Asset History Sheet, net-book-value and posted/planned depreciation reporting.

SAP Asset Accounting (FI-AA) reporting mart migrated from ECC / S/4HANA into Snowflake. Models fixed-asset accounting at two grains: an asset transaction / line-item fact (ANEP, ACDOCA) for acquisitions, retirements, transfers and write-ups, and a periodic-snapshot fact (ANLC / ANLP) carrying acquisition value, accumulated depreciation, net book value, and planned/posted depreciation per asset per depreciation area per fiscal period. Conformed dimensions cover the asset master (ANLA, SCD2, keyed bukrs+anln1+anln2), asset class (ANKA), depreciation area (afabe / T093) for parallel valuation, transaction type (bwasl / TABWT), cost center, company code (T001 / T093C), date and SAP fiscal period. Supports the Asset History Sheet, net-book-value, and depreciation reporting for SOX / IFRS / GAAP. It is a Kimball dimensional model: fact tables at a declared grain surrounded by conformed dimensions, ready for BI tools and a semantic layer.

KimballSAPSOXIFRSGAAP
10
tables
105
columns
16
relationships
2
PII columns

Opening the template creates a project with the ERD, platform-native DDL, a dbt project and documentation already generated (recommended platform: Snowflake). Edit it in plain English or on the canvas, then ship it to any supported warehouse.

Subject areas

asset_registerconformed_dimensions

Design decisions

  • Dual-fact design: transaction line items plus a periodic snapshot

    FI-AA posts discrete asset transactions in ANEP / ACDOCA (acquisitions, retirements, transfers, write-ups) but reports net book value and depreciation as period balances in ANLC / ANLP. A transaction-grain fact preserves every movement for audit while a periodic-snapshot fact gives fast, additive-by-period balances for the Asset History Sheet without re-aggregating millions of line items.

  • Depreciation area modelled as a conformed dimension

    Every SAP asset carries parallel valuations across depreciation areas (afabe, table T093) — book, local tax, group/consolidation, IFRS and cost-accounting — each with its own acquisition value and accumulated depreciation in ANLC. Making the area a dimension lets both facts store one row per asset per area, so reports can pick a single valuation basis (e.g. IFRS) without double counting.

  • SCD2 on the asset master (ANLA)

    Asset attributes that drive reporting — cost center / location assignment, responsible person, super number, description — change over an asset's life. Type-2 history on dim_asset preserves the as-was assignment so depreciation and net-book-value trends remain comparable and reconcilable across periods.

  • SAP fiscal-period accounting as a dedicated dimension

    FI-AA values (ANLC) and posted depreciation (ANLP) are keyed by fiscal year (gjahr) and posting period (perio, 1-16 including special closing periods) under a fiscal year variant (periv) that rarely matches the calendar. A separate fiscal-period dimension models that calendar so period-close and year-end reporting line up with the SAP ledger.

  • Auditability for SOX / IFRS / GAAP

    Fixed-asset balances are material to the financial statements, so the line-item fact retains accounting/reference documents (belnr, xblnr) as degenerate dimensions and transaction types (bwasl) categorise every movement. Together with the periodic snapshot this supports the full Asset History Sheet roll-forward (opening + additions - retirements - depreciation = closing) demanded by SOX controls and IFRS / GAAP disclosure.

Tables in the SAP Asset Accounting Analytics model

Every table with its grain, columns, types and keys. PK marks a primary key, BK a business key and PII a column classified as personal data, which gets a masking strategy by default.

Fact tables (2)

fct_asset_transaction

Grain: one row per FI-AA asset transaction / line item (ANEP, ACDOCA)

Transaction-grain asset accounting fact — acquisitions, retirements, transfers, write-ups.

ColumnTypeKeys
asset_transaction_keybigintPK
date_keybigint
asset_value_date_keybigint
fiscal_period_keybigint
asset_keybigint
asset_class_keybigint
cost_center_keybigint
company_code_keybigint
depreciation_area_keybigint
transaction_type_keybigint
accounting_documentvarchar
document_linevarchar
reference_documentvarchar
transaction_amountdecimal
acquisition_value_changedecimal
quantitydecimal
currencyvarchar

fct_asset_depreciation_period

Grain: one row per asset per depreciation area per fiscal period (ANLC / ANLP)

Periodic-snapshot fact — per-area asset values and depreciation by fiscal period for net-book-value and Asset History Sheet reporting.

ColumnTypeKeys
asset_depreciation_keybigintPK
fiscal_period_keybigint
asset_keybigint
asset_class_keybigint
cost_center_keybigint
company_code_keybigint
depreciation_area_keybigint
date_keybigint
acquisition_valuedecimal
accumulated_depreciationdecimal
net_book_value_begindecimal
net_book_value_enddecimal
planned_ordinary_depreciationdecimal
posted_ordinary_depreciationdecimal
special_depreciationdecimal
unplanned_depreciationdecimal
write_up_amountdecimal
useful_life_remaining_periodssmallint
currencyvarchar

Dimension tables (8)

dim_date

Grain: one row per calendar day

ColumnTypeKeys
date_keybigintPK
full_datedateBK
day_of_monthsmallint
month_numbersmallint
month_namevarchar
quartersmallint
yearsmallint
is_business_dayboolean
is_period_endboolean

dim_fiscal_period

Grain: one row per SAP fiscal year/period (gjahr/period)

ColumnTypeKeys
fiscal_period_keybigintPK
fiscal_period_codevarcharBK
fiscal_yearsmallint
fiscal_periodsmallint
fiscal_variantvarchar
period_start_datedate
period_end_datedate
is_special_periodboolean
period_statusvarchar

dim_asset

Grain: one row per fixed asset per SCD2 version (ANLA, keyed bukrs+anln1+anln2)

SCD type 2

ColumnTypeKeys
asset_keybigintPK
asset_numbervarcharBK
asset_subnumbervarchar
descriptionvarchar
additional_descriptionvarchar
capitalization_datedate
deactivation_datedate
inventory_numbervarchar
serial_numbervarchar
asset_super_numbervarchar
business_areavarchar
locationvarchar
responsible_personvarcharPII
quantitydecimal
base_unitvarchar
is_activeboolean

dim_asset_class

Grain: one row per asset class (ANKA, classifies ANLA.anlkl)

ColumnTypeKeys
asset_class_keybigintPK
asset_classvarcharBK
descriptionvarchar
account_determinationvarchar
screen_layoutvarchar
number_rangevarchar
asset_class_typevarchar

dim_depreciation_area

Grain: one row per depreciation area (afabe, table T093) — parallel valuation view

ColumnTypeKeys
depreciation_area_keybigintPK
depreciation_areavarcharBK
descriptionvarchar
area_typevarchar
is_real_areaboolean
posts_to_glvarchar
currencyvarchar
target_groupvarchar

dim_transaction_type

Grain: one row per FI-AA asset transaction type (bwasl, table TABWT)

ColumnTypeKeys
transaction_type_keybigintPK
transaction_typevarcharBK
descriptionvarchar
transaction_categoryvarchar
debit_credit_indicatorvarchar
is_acquisitionboolean
is_retirementboolean

dim_cost_center

Grain: one row per cost center (CSKS, assigned in ANLZ.kostl)

ColumnTypeKeys
cost_center_keybigintPK
cost_centervarcharBK
namevarchar
profit_centervarchar
responsible_personvarcharPII
controlling_areavarchar

dim_company_code

Grain: one row per SAP company code (T001, with chart of depreciation T093C)

ColumnTypeKeys
company_code_keybigintPK
company_codevarcharBK
company_namevarchar
countryvarchar
local_currencyvarchar
chart_of_depreciationvarchar
fiscal_year_variantvarchar

Relationships

Each relationship is a foreign key on the first table referencing the second.

  • fct_asset_transaction.date_key → dim_date (many-to-one)
  • fct_asset_transaction.asset_value_date_key → dim_date (many-to-one)
  • fct_asset_transaction.fiscal_period_key → dim_fiscal_period (many-to-one)
  • fct_asset_transaction.asset_key → dim_asset (many-to-one)
  • fct_asset_transaction.asset_class_key → dim_asset_class (many-to-one)
  • fct_asset_transaction.cost_center_key → dim_cost_center (many-to-one)
  • fct_asset_transaction.company_code_key → dim_company_code (many-to-one)
  • fct_asset_transaction.depreciation_area_key → dim_depreciation_area (many-to-one)
  • fct_asset_transaction.transaction_type_key → dim_transaction_type (many-to-one)
  • fct_asset_depreciation_period.fiscal_period_key → dim_fiscal_period (many-to-one)
  • fct_asset_depreciation_period.asset_key → dim_asset (many-to-one)
  • fct_asset_depreciation_period.asset_class_key → dim_asset_class (many-to-one)
  • fct_asset_depreciation_period.cost_center_key → dim_cost_center (many-to-one)
  • fct_asset_depreciation_period.company_code_key → dim_company_code (many-to-one)
  • fct_asset_depreciation_period.depreciation_area_key → dim_depreciation_area (many-to-one)
  • fct_asset_depreciation_period.date_key → dim_date (many-to-one)

Related templates

All templates →
Start for $1

From requirements to AI-ready context, in one platform.

Describe your business in a conversation, start from a template or connect your own database. Your first model is ready in minutes.

Get startedBook a demo

Plans from $1/month · cancel any time