SAP Finance FI/CO EDW data model
Data Vault 2.0 raw vault for SAP Finance: hubs (gl_account/cost_center/profit_center/accounting_document/company_code), transactional posting links (G/L posting with dmbtr/wrbtr, cost-center posting) plus a cost-center-to-company link, and satellites for SKA1/SKB1, CSKS, CEPC, BKPF, T001 with a G/L-account effectivity satellite. Hash keys and DV metadata are generated by the DDL layer.
SAP FI/CO financial accounting and controlling modeled as a Data Vault 2.0 raw vault: G/L account, cost center, profit center, accounting document, and company-code hubs anchored on SAP business keys (saknr, kostl, prctr, belnr+bukrs+gjahr, bukrs); transactional G/L and cost-center posting links carrying amounts (dmbtr/wrbtr); and satellites mirroring SKA1/SKB1, CSKS, CEPC, BKPF, and T001. Built for SOX/IFRS audit lineage and multi-source financial consolidation. It is a Data Vault 2.0 raw vault: hubs for business keys, links for relationships and satellites for descriptive history, with hash keys and hash diffs generated in the DDL.
- 14
- tables
- 95
- columns
- 14
- relationships
- 3
- 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
Design decisions
Hubs anchor on stable SAP finance business keys
SAP financial keys (saknr, kostl, prctr, belnr+bukrs+gjahr) are stable and shared across FI/CO modules, so hubs built on them let postings and master data from multiple SAP and non-SAP ledgers integrate by business key.
Composite business key for accounting documents
A BKPF document number is only unique within a company code and fiscal year, so the accounting-document hub uses the composite belnr+bukrs+gjahr business key to guarantee a stable, collision-free hash.
Non-historized link for G/L line postings
G/L line items are immutable posting events; modeling them as a non-historized link carrying dmbtr/wrbtr directly avoids a satellite and keeps the financial ledger insert-only and auditable.
Effectivity satellite on G/L account status
Account posting blocks and deletion flags change over time; an effectivity satellite records the valid period of each status for as-of period-close reporting.
Auditability drives DV for SAP finance
load_date + record_source on every row provide a queryable SOX/IFRS audit trail for the financial ledger without scraping change-document logs.
Tables in the SAP Finance FI/CO EDW 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.
Hubs (5)
hub_gl_account
Grain: one row per unique hub_gl_account business key
SAP G/L account business key (SKA1.SAKNR).
| Column | Type | Keys |
|---|---|---|
| saknr | varchar | BK |
| load_date | timestamp | |
| record_source | varchar |
hub_cost_center
Grain: one row per unique hub_cost_center business key
SAP cost center business key (CSKS.KOSTL).
| Column | Type | Keys |
|---|---|---|
| kostl | varchar | BK |
| load_date | timestamp | |
| record_source | varchar |
hub_profit_center
Grain: one row per unique hub_profit_center business key
SAP profit center business key (CEPC.PRCTR).
| Column | Type | Keys |
|---|---|---|
| prctr | varchar | BK |
| load_date | timestamp | |
| record_source | varchar |
hub_accounting_document
Grain: one row per unique hub_accounting_document business key
SAP accounting document business key (BKPF.BELNR+BUKRS+GJAHR).
| Column | Type | Keys |
|---|---|---|
| belnr | varchar | BK |
| bukrs | varchar | BK |
| gjahr | varchar | BK |
| load_date | timestamp | |
| record_source | varchar |
hub_company_code
Grain: one row per unique hub_company_code business key
SAP company code business key (T001.BUKRS).
| Column | Type | Keys |
|---|---|---|
| bukrs | varchar | BK |
| load_date | timestamp | |
| record_source | varchar |
Links (3)
lnk_gl_posting
Grain: one row per G/L line posting (non-historized transactional link)
Transactional link — SAP G/L line item postings (BSEG) carrying amounts.
| Column | Type | Keys |
|---|---|---|
| accounting_document_hk | binary | |
| gl_account_hk | binary | |
| company_code_hk | binary | |
| buzei | varchar | BK |
| shkzg | varchar | |
| dmbtr | decimal | |
| wrbtr | decimal | |
| waers | varchar | |
| load_date | timestamp | |
| record_source | varchar |
lnk_cost_center_posting
Grain: one row per cost center line posting (non-historized transactional link)
Transactional link — controlling cost center postings (COEP) carrying amounts.
| Column | Type | Keys |
|---|---|---|
| cost_center_hk | binary | |
| gl_account_hk | binary | |
| accounting_document_hk | binary | |
| buzei | varchar | BK |
| wkgbtr | decimal | |
| kwaer | varchar | |
| load_date | timestamp | |
| record_source | varchar |
lnk_cost_center_company
Grain: one row per lnk_cost_center_company relationship
Which company code a cost center is assigned to (CSKS).
| Column | Type | Keys |
|---|---|---|
| cost_center_hk | binary | |
| company_code_hk | binary | |
| load_date | timestamp | |
| record_source | varchar |
Satellites (6)
sat_gl_account_master
Grain: one row per gl_account_hk per change
G/L account master satellite (SKA1 / SKB1 / SKAT).
| Column | Type | Keys |
|---|---|---|
| gl_account_hk | binary | PK |
| load_date | timestamp | PK |
| txt50 | varchar | |
| ktoks | varchar | |
| xbilk | boolean | |
| gvtyp | varchar | |
| mwskz | varchar | |
| waers | varchar | |
| load_end_date | timestamp | |
| record_source | varchar |
sat_cost_center_master
Grain: one row per cost_center_hk per change
Cost center master satellite (CSKS / CSKT).
| Column | Type | Keys |
|---|---|---|
| cost_center_hk | binary | PK |
| load_date | timestamp | PK |
| ktext | varchar | |
| verak | varchar | PII |
| kosar | varchar | |
| kokrs | varchar | |
| datbi | date | |
| load_end_date | timestamp | |
| record_source | varchar |
sat_profit_center_master
Grain: one row per profit_center_hk per change
Profit center master satellite (CEPC / CEPCT).
| Column | Type | Keys |
|---|---|---|
| profit_center_hk | binary | PK |
| load_date | timestamp | PK |
| ktext | varchar | |
| verak | varchar | PII |
| kokrs | varchar | |
| segment | varchar | |
| load_end_date | timestamp | |
| record_source | varchar |
sat_accounting_doc_header
Grain: one row per accounting_document_hk per change
Accounting document header satellite (BKPF).
| Column | Type | Keys |
|---|---|---|
| accounting_document_hk | binary | PK |
| load_date | timestamp | PK |
| blart | varchar | |
| budat | date | |
| bldat | date | |
| monat | varchar | |
| waers | varchar | |
| usnam | varchar | PII |
| xreversal | varchar | |
| load_end_date | timestamp | |
| record_source | varchar |
sat_gl_account_status
Grain: one row per G/L account per status effectivity change
Effectivity satellite — G/L account blocking/deletion status over time.
| Column | Type | Keys |
|---|---|---|
| gl_account_hk | binary | PK |
| load_date | timestamp | PK |
| blocking_status | varchar | |
| mark_for_deletion | boolean | |
| effective_from | date | |
| effective_to | date | |
| is_active | boolean | |
| load_end_date | timestamp | |
| record_source | varchar |
sat_company_code_master
Grain: one row per company_code_hk per change
Company code master satellite (T001).
| Column | Type | Keys |
|---|---|---|
| company_code_hk | binary | PK |
| load_date | timestamp | PK |
| butxt | varchar | |
| land1 | varchar | |
| waers | varchar | |
| ktopl | varchar | |
| periv | varchar | |
| load_end_date | timestamp | |
| record_source | varchar |
Relationships
Each relationship is a foreign key on the first table referencing the second.
- lnk_gl_posting.accounting_document_hk → hub_accounting_document (many-to-one)
- lnk_gl_posting.gl_account_hk → hub_gl_account (many-to-one)
- lnk_gl_posting.company_code_hk → hub_company_code (many-to-one)
- lnk_cost_center_posting.cost_center_hk → hub_cost_center (many-to-one)
- lnk_cost_center_posting.gl_account_hk → hub_gl_account (many-to-one)
- lnk_cost_center_posting.accounting_document_hk → hub_accounting_document (many-to-one)
- lnk_cost_center_company.cost_center_hk → hub_cost_center (many-to-one)
- lnk_cost_center_company.company_code_hk → hub_company_code (many-to-one)
- sat_gl_account_master.gl_account_hk → hub_gl_account (many-to-one)
- sat_cost_center_master.cost_center_hk → hub_cost_center (many-to-one)
- sat_profit_center_master.profit_center_hk → hub_profit_center (many-to-one)
- sat_accounting_doc_header.accounting_document_hk → hub_accounting_document (many-to-one)
- sat_gl_account_status.gl_account_hk → hub_gl_account (many-to-one)
- sat_company_code_master.company_code_hk → hub_company_code (many-to-one)
Related templates
All templates →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.
