offdataai
Energy & Utilities · data model template

Carbon Accounting & ESG (GHG Protocol) data model

Kimball warehouse for carbon accounting: the CO2e emission fact (scope 1/2/3) with activity data and versioned emission factors, energy consumption, and reduction targets over conformed organization, facility, source, factor, gas, and supplier dimensions.

Corporate greenhouse-gas accounting under the GHG Protocol: activity data (energy, fuel, travel, purchased goods) converted to CO2e via versioned emission factors, classified across Scopes 1, 2, and 3, per organization, facility, emission source, and value-chain supplier — with energy consumption and science-based reduction targets for ISO 14064 / CSRD reporting. It is a Kimball dimensional model: fact tables at a declared grain surrounded by conformed dimensions, ready for BI tools and a semantic layer.

KimballEnergy & UtilitiesGHG ProtocolISO 14064CSRDTCFD
12
tables
91
columns
15
relationships
0
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

inventoryenergytargetsconformed_dimensions

Design decisions

  • Activity data + emission factor → CO2e fact

    The GHG Protocol computes emissions by multiplying activity data by an emission factor; modeling both and the resulting CO2e supports audit and recalculation.

  • Versioned emission factors

    Factors change yearly (and by GWP version AR5/AR6); a factor dimension with validity dates lets historical emissions be recomputed correctly.

  • Scope carried on the fact

    Reporting splits totals by Scope 1/2/3 (and Scope 3 categories 1-15); scope is a fast filter on the emission fact.

Tables in the Carbon Accounting & ESG (GHG Protocol) 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 (4)

fct_emission

Grain: one row per emission calculation

The core CO2e fact — additive across scope, source, facility.

ColumnTypeKeys
emission_keybigintPK
date_keybigint
organization_keybigint
facility_keybigint
emission_source_keybigint
emission_factor_keybigint
supplier_keybigint
gas_keybigint
scopesmallint
activity_quantitydecimal
activity_unitvarchar
co2e_tonnesdecimal
is_estimatedboolean
data_quality_scoresmallint

fct_activity_data

Grain: one row per raw activity record

ColumnTypeKeys
activity_data_keybigintPK
date_keybigint
facility_keybigint
emission_source_keybigint
activity_type_keybigint
quantitydecimal
unit_of_measurevarchar
costdecimal
is_primary_databoolean

fct_energy_consumption

Grain: one row per facility per energy type per month

ColumnTypeKeys
date_keybigint
facility_keybigint
energy_typevarchar
consumption_quantitydecimal
unit_of_measurevarchar
renewable_percentdecimal
co2e_tonnesdecimal

fct_emission_target

Grain: one row per reduction target

ColumnTypeKeys
emission_target_keybigintPK
organization_keybigint
base_year_date_keybigint
target_year_date_keybigint
scopesmallint
baseline_co2e_tonnesdecimal
target_co2e_tonnesdecimal
reduction_percentdecimal
is_science_basedboolean

Dimension tables (6)

dim_date

Grain: one row per calendar day

ColumnTypeKeys
date_keybigintPK
full_datedateBK
month_numbersmallint
quartersmallint
yearsmallint
reporting_yearsmallint

dim_organization

Grain: one row per reporting organization/entity

ColumnTypeKeys
organization_keybigintPK
organization_idvarcharBK
organization_namevarchar
industryvarchar
reporting_boundaryvarchar
base_yearsmallint
countryvarchar

dim_facility

Grain: one row per facility/site

ColumnTypeKeys
facility_keybigintPK
facility_idvarcharBK
organization_keybigint
facility_namevarchar
facility_typevarchar
countryvarchar
regionvarchar
latitudedecimal
longitudedecimal

dim_emission_source

Grain: one row per emission source category

ColumnTypeKeys
emission_source_keybigintPK
source_codevarcharBK
source_namevarchar
scopesmallint
categoryvarchar
scope3_category_numbersmallint

dim_emission_factor

Grain: one row per emission factor version

ColumnTypeKeys
emission_factor_keybigintPK
factor_codevarcharBK
factor_namevarchar
source_databasevarchar
activity_unitvarchar
co2e_per_unitdecimal
gwp_versionvarchar
valid_fromdate
valid_todate

dim_supplier

Grain: one row per value-chain supplier (Scope 3)

ColumnTypeKeys
supplier_keybigintPK
supplier_idvarcharBK
supplier_namevarchar
countryvarchar
industryvarchar
spend_categoryvarchar
has_science_based_targetboolean

Lookup tables (2)

dim_gas

Grain: one row per greenhouse gas

ColumnTypeKeys
gas_keybigintPK
gas_codevarcharBK
gas_namevarchar
global_warming_potentialdecimal

dim_activity_type

Grain: one row per activity type

ColumnTypeKeys
activity_type_keybigintPK
activity_codevarcharBK
activity_namevarchar
unit_of_measurevarchar

Relationships

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

  • dim_facility.organization_key → dim_organization (many-to-one)
  • fct_emission.date_key → dim_date (many-to-one)
  • fct_emission.organization_key → dim_organization (many-to-one)
  • fct_emission.facility_key → dim_facility (many-to-one)
  • fct_emission.emission_source_key → dim_emission_source (many-to-one)
  • fct_emission.emission_factor_key → dim_emission_factor (many-to-one)
  • fct_emission.supplier_key → dim_supplier (many-to-one)
  • fct_emission.gas_key → dim_gas (many-to-one)
  • fct_activity_data.date_key → dim_date (many-to-one)
  • fct_activity_data.facility_key → dim_facility (many-to-one)
  • fct_activity_data.emission_source_key → dim_emission_source (many-to-one)
  • fct_activity_data.activity_type_key → dim_activity_type (many-to-one)
  • fct_energy_consumption.date_key → dim_date (many-to-one)
  • fct_energy_consumption.facility_key → dim_facility (many-to-one)
  • fct_emission_target.organization_key → dim_organization (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