Turner & Townsend / Fabric Medallion / PBI 10

Budget Information — Column Treatment

All columns from the Budget Information table in the existing GL SL semantic model. Source is BUDGETTRANSACTIONLINE joined to BUDGETTRANSACTIONHEADER, BUDGETMODEL, BUDGETTRANSACTIONCODE, and the BudgetType enum. Target is fct_generalledgerbudget plus the new dim_budgetmodel dimension. All PBI 10 absorption items are now implemented — pending sync, Silver run, then Gold run.

Done Implemented in Gold config and notebook
No action No task required — covered elsewhere, redundant, or technical
Done — Added to fct_generalledgerbudget (Gold config and nb_fct_generalledgerbudget updated)
Column Name Type Source Treatment Notes
Is One Time Amendment boolean BUDGETTRANSACTIONHEADER.ISONETIMEAMENDMENT Done Added to gold_config and nb_fct_generalledgerbudget as IsOneTimeAmendment boolean. Derived: 1 → True, otherwise False.
Budget Transaction Name string BUDGETTRANSACTIONCODE.DESCRIPTION (via header.BudgetTransactionCode) Done Added to gold_config and nb_fct_generalledgerbudget as BudgetTransactionName. Silver budgettransactioncode table created and joined via bhead.BudgetTransactionCodebtcode.RecID.
Budget Transaction Type string BUDGETTRANSACTIONCODE.NAME Done Added to gold_config and nb_fct_generalledgerbudget as BudgetTransactionType. Same Silver source and join as Budget Transaction Name. Distinct from IsExpenseRevenue: this is the transaction-record category (Budget, Forecast, etc.) rather than the line nature (Expense vs Revenue).
Comment string BUDGETTRANSACTIONLINE.COMMENT Done Added to gold_config and nb_fct_generalledgerbudget as Comment. Sourced directly from bline.Comment in Silver.
Done — Covered by new dim_budgetmodel (BudgetModelKey FK on fct_generalledgerbudget)
Column Name Type Source Treatment Notes
Budget Model ID string BUDGETMODEL.MODELID (via header BudgetModelID + BudgetSubModelID + BudgetModelDataAreaID) Done Available as ModelID on dim_budgetmodel. New Silver budgetmodel source created. Fact joins via the three-part natural key and stores BudgetModelKey as the FK. Defensive dropDuplicates applied to guard against any duplicate natural-key rows.
Budget Sub Model ID string BUDGETMODEL.SUBMODELID Done Available as SubModelID on dim_budgetmodel. Part of the three-part natural key (with ModelID and CompanyCode). BudgetSubModelID also added to budgettransactionheader in Silver to support the join.
Budget Model Name string BUDGETMODEL.TXT Done Available as ModelName on dim_budgetmodel. The only non-key attribute on the dimension — the merge updates it on RowHash change.
No action — redundant with existing build
Column Name Type Source Treatment Notes
Budget Type string SRSANALYSISENUMS lookup on BUDGETTRANSACTIONLINE.BUDGETTYPE No action Already covered by IsExpenseRevenue on fct_generalledgerbudget (Expense vs Revenue derived from budgettype). Use the existing column rather than duplicating.
No action — technical
Column Name Type Source Treatment Notes
RECID int64 BUDGETTRANSACTIONLINE.RECID No action D365 internal record ID. GeneralLedgerBudgetUID (surrogate key) serves this purpose in Gold.