offdataai
SAP · data model template

SAP Cost Center Controlling Analytics data model

Kimball warehouse for SAP cost center controlling: a single CO posting fact whose plan, actual, commitment, and statistical measures sit side by side for plan-vs-actual variance reporting by cost element and activity type. CO documents (belnr/buzei) are degenerate dimensions; the SCD2 cost-center dimension is role-played as the partner cost center for sender/receiver activity allocations; a version dimension separates value types; SAP fiscal year/period drives overhead absorption, activity quantity, and manager responsibility reporting.

SAP Overhead Cost Controlling / Cost Center Accounting (CO-OM-CCA) plan-vs-actual analytics migrated from ECC / S/4HANA into Snowflake. Models a single CO posting fact at cost center × cost element × activity type × value type × fiscal-period grain, carrying actual (COEP.wkgbtr), plan, commitment, and statistical measures side by side for variance reporting, over conformed cost-center (CSKS, SCD2 + role-played partner), cost-element (CSKB / SKA1), activity-type (CSLA), controlling-area (TKA01), company-code (T001), profit-center (CEPC), and CO-version (TKVS) dimensions with SAP fiscal-period accounting in the controlling-area currency. It is a Kimball dimensional model: fact tables at a declared grain surrounded by conformed dimensions, ready for BI tools and a semantic layer.

KimballSAPSOX
10
tables
87
columns
10
relationships
1
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

cost_center_controllingconformed_dimensions

Design decisions

  • Single posting fact carrying plan/actual/commitment/statistical side by side

    Cost center controlling reporting is fundamentally plan-vs-actual; storing actual, plan, commitment, and statistical measures (plus a derived variance) as parallel columns on one fact at a shared grain lets variance reports subtract plan from actual without a costly self-join across separate plan and actual facts.

  • SCD2 on the cost-center dimension

    Cost-center responsibility, hierarchy node, and profit-center assignment in CSKS change over time; type-2 history preserves the as-was manager and standard-hierarchy placement required for comparable, SOX-auditable responsibility reporting.

  • Role-playing the cost-center dimension as the partner cost center

    Activity allocations and assessments/distributions post a sender and a receiver cost center; pointing both cost_center_key and partner_cost_center_key at the same conformed dim_cost_center (two FKs, distinct columns) models sender/receiver flows without duplicating cost-center master data.

  • Dedicated version dimension for value types

    SAP CO separates postings by version (TKVS) and value type (actual, plan, commitment, statistical); a version dimension keeps that distinction conformed and queryable instead of encoding it as fact flags, so a measure column resolves unambiguously to its value type.

  • Measures stored in the controlling-area currency

    COEP.wkgbtr is the controlling-area-currency amount and the controlling area (TKA01) defines that currency and fiscal-year variant; anchoring measures and the currency attribute to the controlling-area dimension guarantees additivity across cost centers within an area.

Tables in the SAP Cost Center Controlling 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 (1)

fct_cost_center_posting

Grain: one row per cost center × cost element × activity type × value type × fiscal period

Plan/actual/commitment/statistical CO posting fact for variance reporting.

ColumnTypeKeys
cost_center_posting_keybigintPK
fiscal_period_keybigint
posting_date_keybigint
cost_center_keybigint
cost_element_keybigint
activity_type_keybigint
partner_cost_center_keybigint
company_code_keybigint
controlling_area_keybigint
profit_center_keybigint
version_keybigint
accounting_documentvarchar
document_linevarchar
actual_amountdecimal
plan_amountdecimal
commitment_amountdecimal
statistical_amountdecimal
variance_amountdecimal
actual_quantitydecimal
plan_quantitydecimal
activity_pricedecimal
currencyvarchar

Dimension tables (9)

dim_date

Grain: one row per calendar day

ColumnTypeKeys
date_keybigintPK
full_datedateBK
day_of_monthsmallint
month_numbersmallint
month_namevarchar
quartersmallint
yearsmallint
is_period_endboolean

dim_fiscal_period

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

ColumnTypeKeys
fiscal_period_keybigintPK
fiscal_period_codevarcharBK
fiscal_yearsmallint
fiscal_periodsmallint
fiscal_variantvarchar
period_start_datedate
period_end_datedate
period_statusvarchar

dim_cost_center

Grain: one row per cost center per SCD2 version (master CSKS)

SCD2 cost-center master; also role-played as the partner cost center.

SCD type 2

ColumnTypeKeys
cost_center_keybigintPK
cost_centervarcharBK
namevarchar
descriptionvarchar
cost_center_categoryvarchar
responsible_personvarcharPII
departmentvarchar
hierarchy_areavarchar
profit_centervarchar
company_codevarchar
valid_fromdate
valid_todate
is_activeboolean

dim_cost_element

Grain: one row per cost element (CSKB / in S/4 GL account SKA1)

ColumnTypeKeys
cost_element_keybigintPK
cost_elementvarcharBK
namevarchar
cost_element_categoryvarchar
cost_element_groupvarchar
is_primaryboolean
is_secondaryboolean

dim_activity_type

Grain: one row per activity type (master CSLA)

ColumnTypeKeys
activity_type_keybigintPK
activity_typevarcharBK
namevarchar
activity_unitvarchar
allocation_cost_elementvarchar
is_activeboolean

dim_controlling_area

Grain: one row per controlling area (TKA01)

ColumnTypeKeys
controlling_area_keybigintPK
controlling_areavarcharBK
namevarchar
currency_typevarchar
controlling_area_currencyvarchar
fiscal_year_variantvarchar
chart_of_accountsvarchar

dim_company_code

Grain: one row per SAP company code (T001)

ColumnTypeKeys
company_code_keybigintPK
company_codevarcharBK
company_namevarchar
countryvarchar
local_currencyvarchar

dim_profit_center

Grain: one row per profit center (CEPC)

ColumnTypeKeys
profit_center_keybigintPK
profit_centervarcharBK
namevarchar
controlling_areavarchar
segmentvarchar

dim_version

Grain: one row per CO version (TKVS)

ColumnTypeKeys
version_keybigintPK
versionvarcharBK
version_labelvarchar
value_typevarchar
plan_actual_indicatorvarchar
is_lockedboolean

Relationships

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

  • fct_cost_center_posting.fiscal_period_key → dim_fiscal_period (many-to-one)
  • fct_cost_center_posting.posting_date_key → dim_date (many-to-one)
  • fct_cost_center_posting.cost_center_key → dim_cost_center (many-to-one)
  • fct_cost_center_posting.cost_element_key → dim_cost_element (many-to-one)
  • fct_cost_center_posting.activity_type_key → dim_activity_type (many-to-one)
  • fct_cost_center_posting.partner_cost_center_key → dim_cost_center (many-to-one)
  • fct_cost_center_posting.company_code_key → dim_company_code (many-to-one)
  • fct_cost_center_posting.controlling_area_key → dim_controlling_area (many-to-one)
  • fct_cost_center_posting.profit_center_key → dim_profit_center (many-to-one)
  • fct_cost_center_posting.version_key → dim_version (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