Skip to main content

Silver Models

8 cleaned, deduplicated, and standardized models in the epm_silver schema.

silver_gl_entries

GL entries joined with journal headers, with flattened dimension columns.

ColumnTypeDescriptionTest
recidInt64D365 record IDnot_null
data_area_idStringLegal entitynot_null
accounting_dateDatePosting datenot_null
fiscal_yearUInt16Fiscal year derived from accounting_date
fiscal_periodUInt8Fiscal period (1–12)
main_accountStringAccount code
debit_amountDecimal(18,2)Debit in accounting currency
credit_amountDecimal(18,2)Credit in accounting currency
accounting_currency_amountDecimal(18,2)Net amount (debit − credit)
dim_cost_centerStringCost center dimension
dim_departmentStringDepartment dimension
dim_business_unitStringBusiness unit dimension
journal_numberStringJournal entry number

Sources: bronze_general_journal_account_entries + bronze_general_journal_entries (joined on journal header RecId).

silver_main_accounts

Chart of accounts with readable account type labels.

ColumnTypeDescriptionTest
main_account_idStringAccount codenot_null, unique (warn)
account_nameStringAccount name
account_typeStringMapped type: Revenue, Expense, Asset, Liability, Equity, Total
account_categoryStringCategory from D365

Sources: bronze_main_accounts + bronze_main_account_categories. Account type mapping via map_account_type() macro.

Company master with currency.

ColumnTypeDescriptionTest
data_areaStringLegal entity codenot_null, unique
entity_nameStringCompany name
accounting_currencyStringFunctional currency code

Source: bronze_legal_entities.

silver_fiscal_periods

Standardized fiscal period lookup table.

ColumnTypeDescription
fiscal_calendar_idStringCalendar identifier
fiscal_yearUInt16Year
fiscal_periodUInt8Period number (0–13, including special periods)
period_startDateFirst day of period
period_endDateLast day of period
period_labelStringDisplay label
fiscal_quarterStringQuarter (Q1–Q4 or OPN/CLS)
fiscal_halfStringHalf (H1, H2 or OPN/CLS)

Sources: bronze_fiscal_calendars + bronze_fiscal_calendar_years. Generates monthly periods from year start/end dates.

silver_financial_dimensions

Dimension value master with active status.

ColumnTypeDescription
dimension_nameStringDimension name (e.g., CostCenter)
dimension_valueStringDimension value code
descriptionStringDisplay description
is_activeUInt81 = active

Sources: bronze_financial_dimensions + bronze_financial_dimension_values.

silver_exchange_rates

Cleaned exchange rates. D365 stores rates multiplied by 100; this model divides by 100.

ColumnTypeDescriptionTest
from_currencyStringSource currency code
to_currencyStringTarget currency code
exchange_rateFloat64Rate (D365 value ÷ 100)not_null
exchange_rate_typeStringRate type (e.g., Default)
valid_fromDateRate effective start date
valid_toDateRate effective end date

Sources: bronze_exchange_rate_currency_pairs + bronze_exchange_rate_types.

silver_budget_entries

Standardized budget lines joined with register headers.

ColumnTypeDescription
entry_numberStringBudget register entry number
budget_model_idStringBudget model
main_accountStringAccount code
data_area_idStringLegal entity
transaction_dateDateBudget date
fiscal_yearUInt16Fiscal year
fiscal_periodUInt8Fiscal period
amountDecimal(18,2)Budget amount
dim_cost_centerStringCost center
dim_departmentStringDepartment

Sources: bronze_budget_register_entries + bronze_budget_transaction_lines.

silver_trial_balance

Trial balance from D365 snapshot entity — used as a validation baseline against the computed trial balance.

ColumnTypeDescription
data_area_idStringLegal entity
fiscal_yearUInt16Fiscal year
main_accountStringAccount code
debit_amountDecimal(18,2)Annual debit total
credit_amountDecimal(18,2)Annual credit total

Source: bronze_trial_balance_snapshot.