@luquimbo/bi-superpowers 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (193) hide show
  1. package/.claude-plugin/plugin.json +8 -0
  2. package/.mcp.json +25 -0
  3. package/AGENTS.md +244 -0
  4. package/CHANGELOG.md +265 -0
  5. package/LICENSE +21 -0
  6. package/README.md +211 -0
  7. package/bin/build-plugin.js +30 -0
  8. package/bin/cli.js +1064 -0
  9. package/bin/commands/add.js +533 -0
  10. package/bin/commands/add.test.js +77 -0
  11. package/bin/commands/build-desktop.js +166 -0
  12. package/bin/commands/changelog.js +443 -0
  13. package/bin/commands/diff.js +325 -0
  14. package/bin/commands/lint.js +419 -0
  15. package/bin/commands/lint.test.js +103 -0
  16. package/bin/commands/mcp-setup.js +246 -0
  17. package/bin/commands/pull.js +287 -0
  18. package/bin/commands/pull.test.js +36 -0
  19. package/bin/commands/push.js +231 -0
  20. package/bin/commands/push.test.js +14 -0
  21. package/bin/commands/search.js +344 -0
  22. package/bin/commands/search.test.js +115 -0
  23. package/bin/commands/setup.js +545 -0
  24. package/bin/commands/setup.test.js +46 -0
  25. package/bin/commands/sync-profile.js +405 -0
  26. package/bin/commands/sync-profile.test.js +14 -0
  27. package/bin/commands/sync-source.js +418 -0
  28. package/bin/commands/sync-source.test.js +14 -0
  29. package/bin/commands/watch.js +206 -0
  30. package/bin/lib/generators/claude-plugin.js +266 -0
  31. package/bin/lib/generators/claude-plugin.test.js +110 -0
  32. package/bin/lib/generators/index.js +116 -0
  33. package/bin/lib/generators/shared.js +282 -0
  34. package/bin/lib/licensing/index.js +35 -0
  35. package/bin/lib/licensing/storage.js +364 -0
  36. package/bin/lib/licensing/storage.test.js +55 -0
  37. package/bin/lib/licensing/validator.js +213 -0
  38. package/bin/lib/licensing/validator.test.js +137 -0
  39. package/bin/lib/microsoft-mcp.js +176 -0
  40. package/bin/lib/microsoft-mcp.test.js +106 -0
  41. package/bin/lib/skills.js +84 -0
  42. package/bin/mcp/powerbi-modeling-launcher.js +38 -0
  43. package/bin/postinstall.js +44 -0
  44. package/bin/utils/errors.js +159 -0
  45. package/bin/utils/git.js +298 -0
  46. package/bin/utils/logger.js +142 -0
  47. package/bin/utils/mcp-detect.js +274 -0
  48. package/bin/utils/mcp-detect.test.js +105 -0
  49. package/bin/utils/pbix.js +305 -0
  50. package/bin/utils/pbix.test.js +37 -0
  51. package/bin/utils/profiles.js +312 -0
  52. package/bin/utils/projects.js +168 -0
  53. package/bin/utils/readline.js +206 -0
  54. package/bin/utils/readline.test.js +47 -0
  55. package/bin/utils/tui.js +314 -0
  56. package/bin/utils/tui.test.js +127 -0
  57. package/commands/contributions.md +265 -0
  58. package/commands/data-model-design.md +468 -0
  59. package/commands/dax-doctor.md +248 -0
  60. package/commands/fabric-scripts.md +452 -0
  61. package/commands/migration-assistant.md +290 -0
  62. package/commands/model-documenter.md +242 -0
  63. package/commands/pbi-connect.md +239 -0
  64. package/commands/project-kickoff.md +905 -0
  65. package/commands/report-layout.md +296 -0
  66. package/commands/rls-design.md +533 -0
  67. package/commands/theme-tweaker.md +624 -0
  68. package/config.example.json +23 -0
  69. package/config.json +23 -0
  70. package/desktop-extension/manifest.json +37 -0
  71. package/desktop-extension/package.json +10 -0
  72. package/desktop-extension/server.js +95 -0
  73. package/docs/openrouter-free-models.md +92 -0
  74. package/library/examples/README.md +151 -0
  75. package/library/examples/finance-reporting/README.md +351 -0
  76. package/library/examples/finance-reporting/data-model.md +267 -0
  77. package/library/examples/finance-reporting/measures.dax +557 -0
  78. package/library/examples/hr-analytics/README.md +371 -0
  79. package/library/examples/hr-analytics/data-model.md +315 -0
  80. package/library/examples/hr-analytics/measures.dax +460 -0
  81. package/library/examples/marketing-analytics/README.md +37 -0
  82. package/library/examples/marketing-analytics/data-model.md +62 -0
  83. package/library/examples/marketing-analytics/measures.dax +110 -0
  84. package/library/examples/retail-analytics/README.md +439 -0
  85. package/library/examples/retail-analytics/data-model.md +288 -0
  86. package/library/examples/retail-analytics/measures.dax +481 -0
  87. package/library/examples/supply-chain/README.md +37 -0
  88. package/library/examples/supply-chain/data-model.md +69 -0
  89. package/library/examples/supply-chain/measures.dax +77 -0
  90. package/library/examples/udf-library/README.md +228 -0
  91. package/library/examples/udf-library/functions.dax +571 -0
  92. package/library/snippets/dax/README.md +292 -0
  93. package/library/snippets/dax/business-domains.md +576 -0
  94. package/library/snippets/dax/calculate-patterns.md +276 -0
  95. package/library/snippets/dax/calculation-groups.md +489 -0
  96. package/library/snippets/dax/error-handling.md +495 -0
  97. package/library/snippets/dax/iterators-and-aggregations.md +474 -0
  98. package/library/snippets/dax/kpis-and-metrics.md +293 -0
  99. package/library/snippets/dax/rankings-and-topn.md +235 -0
  100. package/library/snippets/dax/security-patterns.md +413 -0
  101. package/library/snippets/dax/text-and-formatting.md +316 -0
  102. package/library/snippets/dax/time-intelligence.md +196 -0
  103. package/library/snippets/dax/user-defined-functions.md +477 -0
  104. package/library/snippets/dax/virtual-tables.md +546 -0
  105. package/library/snippets/excel-formulas/README.md +84 -0
  106. package/library/snippets/excel-formulas/aggregations.md +330 -0
  107. package/library/snippets/excel-formulas/dates-and-times.md +361 -0
  108. package/library/snippets/excel-formulas/dynamic-arrays.md +314 -0
  109. package/library/snippets/excel-formulas/lookups.md +169 -0
  110. package/library/snippets/excel-formulas/text-functions.md +363 -0
  111. package/library/snippets/governance/naming-conventions.md +97 -0
  112. package/library/snippets/governance/review-checklists.md +107 -0
  113. package/library/snippets/power-query/README.md +389 -0
  114. package/library/snippets/power-query/api-integration.md +707 -0
  115. package/library/snippets/power-query/connections.md +434 -0
  116. package/library/snippets/power-query/data-cleaning.md +298 -0
  117. package/library/snippets/power-query/error-handling.md +526 -0
  118. package/library/snippets/power-query/parameters.md +350 -0
  119. package/library/snippets/power-query/performance.md +506 -0
  120. package/library/snippets/power-query/transformations.md +330 -0
  121. package/library/snippets/report-design/accessibility.md +78 -0
  122. package/library/snippets/report-design/chart-selection.md +54 -0
  123. package/library/snippets/report-design/layout-patterns.md +87 -0
  124. package/library/templates/data-models/README.md +93 -0
  125. package/library/templates/data-models/finance-model.md +627 -0
  126. package/library/templates/data-models/retail-star-schema.md +473 -0
  127. package/library/templates/excel/README.md +83 -0
  128. package/library/templates/excel/budget-tracker.md +432 -0
  129. package/library/templates/excel/data-entry-form.md +533 -0
  130. package/library/templates/power-bi/README.md +72 -0
  131. package/library/templates/power-bi/finance-report.md +449 -0
  132. package/library/templates/power-bi/kpi-scorecard.md +461 -0
  133. package/library/templates/power-bi/sales-dashboard.md +281 -0
  134. package/library/themes/excel/README.md +436 -0
  135. package/library/themes/power-bi/README.md +271 -0
  136. package/library/themes/power-bi/accessible.json +307 -0
  137. package/library/themes/power-bi/bi-superpowers-default.json +858 -0
  138. package/library/themes/power-bi/corporate-blue.json +291 -0
  139. package/library/themes/power-bi/dark-mode.json +291 -0
  140. package/library/themes/power-bi/minimal.json +292 -0
  141. package/library/themes/power-bi/print-friendly.json +309 -0
  142. package/package.json +93 -0
  143. package/skills/contributions/SKILL.md +267 -0
  144. package/skills/data-model-design/SKILL.md +470 -0
  145. package/skills/data-modeling/SKILL.md +254 -0
  146. package/skills/data-quality/SKILL.md +664 -0
  147. package/skills/dax/SKILL.md +708 -0
  148. package/skills/dax-doctor/SKILL.md +250 -0
  149. package/skills/dax-udf/SKILL.md +489 -0
  150. package/skills/deployment/SKILL.md +320 -0
  151. package/skills/excel-formulas/SKILL.md +463 -0
  152. package/skills/fabric-scripts/SKILL.md +454 -0
  153. package/skills/fast-standard/SKILL.md +509 -0
  154. package/skills/governance/SKILL.md +205 -0
  155. package/skills/migration-assistant/SKILL.md +292 -0
  156. package/skills/model-documenter/SKILL.md +244 -0
  157. package/skills/pbi-connect/SKILL.md +241 -0
  158. package/skills/power-query/SKILL.md +406 -0
  159. package/skills/project-kickoff/SKILL.md +907 -0
  160. package/skills/query-performance/SKILL.md +480 -0
  161. package/skills/report-design/SKILL.md +207 -0
  162. package/skills/report-layout/SKILL.md +298 -0
  163. package/skills/rls-design/SKILL.md +535 -0
  164. package/skills/semantic-model/SKILL.md +237 -0
  165. package/skills/testing-validation/SKILL.md +643 -0
  166. package/skills/theme-tweaker/SKILL.md +626 -0
  167. package/src/content/base.md +237 -0
  168. package/src/content/mcp-requirements.json +69 -0
  169. package/src/content/routing.md +203 -0
  170. package/src/content/skills/contributions.md +259 -0
  171. package/src/content/skills/data-model-design.md +462 -0
  172. package/src/content/skills/data-modeling.md +246 -0
  173. package/src/content/skills/data-quality.md +656 -0
  174. package/src/content/skills/dax-doctor.md +242 -0
  175. package/src/content/skills/dax-udf.md +481 -0
  176. package/src/content/skills/dax.md +700 -0
  177. package/src/content/skills/deployment.md +312 -0
  178. package/src/content/skills/excel-formulas.md +455 -0
  179. package/src/content/skills/fabric-scripts.md +446 -0
  180. package/src/content/skills/fast-standard.md +501 -0
  181. package/src/content/skills/governance.md +197 -0
  182. package/src/content/skills/migration-assistant.md +284 -0
  183. package/src/content/skills/model-documenter.md +236 -0
  184. package/src/content/skills/pbi-connect.md +233 -0
  185. package/src/content/skills/power-query.md +398 -0
  186. package/src/content/skills/project-kickoff.md +899 -0
  187. package/src/content/skills/query-performance.md +472 -0
  188. package/src/content/skills/report-design.md +199 -0
  189. package/src/content/skills/report-layout.md +290 -0
  190. package/src/content/skills/rls-design.md +527 -0
  191. package/src/content/skills/semantic-model.md +229 -0
  192. package/src/content/skills/testing-validation.md +635 -0
  193. package/src/content/skills/theme-tweaker.md +618 -0
@@ -0,0 +1,432 @@
1
+ # Budget Tracker Template
2
+
3
+ ## Overview
4
+
5
+ A comprehensive Excel workbook for tracking departmental or project budgets against actuals, with variance analysis and forecasting capabilities.
6
+
7
+ ---
8
+
9
+ ## Target Audience
10
+
11
+ - Budget Managers
12
+ - Project Managers
13
+ - Department Heads
14
+ - Finance Analysts
15
+ - Small Business Owners
16
+
17
+ ---
18
+
19
+ ## Workbook Structure
20
+
21
+ ### Sheet 1: Dashboard
22
+
23
+ **Purpose:** Visual summary of budget status
24
+
25
+ | Section | Position | Content |
26
+ |---------|----------|---------|
27
+ | Header | A1:H2 | Title, Current Period, Last Updated |
28
+ | KPI Cards | A4:H6 | Total Budget, Spent, Remaining, % Used |
29
+ | Budget vs Actual Chart | A8:E20 | Clustered column chart by category |
30
+ | Trend Chart | F8:H20 | Line chart showing monthly spend vs budget |
31
+ | Category Breakdown | A22:D35 | Pie chart of spend by category |
32
+ | Alerts Table | E22:H35 | Over-budget items highlighted |
33
+
34
+ ### Sheet 2: Budget Input
35
+
36
+ **Purpose:** Annual budget setup by category
37
+
38
+ | Column | Header | Description |
39
+ |--------|--------|-------------|
40
+ | A | Category | Budget category (e.g., Salaries, Marketing) |
41
+ | B | Subcategory | Detailed line item |
42
+ | C | Annual Budget | Total annual budget |
43
+ | D-O | Jan-Dec | Monthly allocation (can be equal or custom) |
44
+
45
+ **Sample Categories:**
46
+ ```
47
+ Personnel
48
+ - Salaries
49
+ - Benefits
50
+ - Contractors
51
+ - Training
52
+
53
+ Operations
54
+ - Rent
55
+ - Utilities
56
+ - Insurance
57
+ - Maintenance
58
+
59
+ Technology
60
+ - Software
61
+ - Hardware
62
+ - Cloud Services
63
+ - IT Support
64
+
65
+ Marketing
66
+ - Advertising
67
+ - Events
68
+ - Content
69
+ - PR
70
+
71
+ Travel
72
+ - Airfare
73
+ - Hotels
74
+ - Meals
75
+ - Ground Transport
76
+ ```
77
+
78
+ ### Sheet 3: Actuals Input
79
+
80
+ **Purpose:** Record actual expenses
81
+
82
+ | Column | Header | Description |
83
+ |--------|--------|-------------|
84
+ | A | Date | Transaction date |
85
+ | B | Category | Budget category (dropdown) |
86
+ | C | Subcategory | Line item (dependent dropdown) |
87
+ | D | Description | Transaction description |
88
+ | E | Vendor | Vendor/Supplier name |
89
+ | F | Amount | Expense amount |
90
+ | G | Payment Method | Cash/Card/Transfer |
91
+ | H | Reference | Invoice/PO number |
92
+ | I | Notes | Additional notes |
93
+
94
+ ### Sheet 4: Variance Analysis
95
+
96
+ **Purpose:** Compare budget to actuals
97
+
98
+ | Column | Header | Formula Concept |
99
+ |--------|--------|-----------------|
100
+ | A | Category | From Budget Input |
101
+ | B | Budget MTD | SUMIFS by category and month |
102
+ | C | Actual MTD | SUMIFS from Actuals |
103
+ | D | Variance MTD | Budget - Actual |
104
+ | E | Variance % | Variance / Budget |
105
+ | F | Budget YTD | SUMIFS YTD budget |
106
+ | G | Actual YTD | SUMIFS YTD actuals |
107
+ | H | Variance YTD | Budget YTD - Actual YTD |
108
+ | I | Status | Conditional formula for status |
109
+ | J | Forecast | Projected year-end based on trend |
110
+
111
+ ### Sheet 5: Monthly Summary
112
+
113
+ **Purpose:** Month-by-month tracking
114
+
115
+ | Structure | Description |
116
+ |-----------|-------------|
117
+ | Rows | Categories and subcategories |
118
+ | Columns | Jan Budget, Jan Actual, Jan Var, Feb Budget, Feb Actual, Feb Var, ... |
119
+ | Totals | Row totals, Column totals |
120
+
121
+ ### Sheet 6: Settings
122
+
123
+ **Purpose:** Configuration and reference data
124
+
125
+ | Section | Content |
126
+ |---------|---------|
127
+ | Category List | Master list of categories |
128
+ | Subcategory List | Dependent list by category |
129
+ | Current Period | Month/Year selection |
130
+ | Thresholds | Alert thresholds (e.g., 90%, 100%, 110%) |
131
+ | User Info | Prepared by, Department, Fiscal Year |
132
+
133
+ ---
134
+
135
+ ## Key Formulas
136
+
137
+ ### Budget Calculations
138
+
139
+ ```excel
140
+ // Total Budget
141
+ =SUM(BudgetInput[Annual Budget])
142
+
143
+ // Budget for Current Month
144
+ =SUMIFS(BudgetInput[Jan], BudgetInput[Category], "<>")
145
+ // Or dynamically:
146
+ =SUMIFS(
147
+ INDEX(BudgetInput, 0, MATCH(CurrentMonth, BudgetInput[#Headers], 0)),
148
+ BudgetInput[Category], "<>"
149
+ )
150
+
151
+ // Budget YTD
152
+ =SUMPRODUCT(
153
+ (BudgetInput[Category]<>"") *
154
+ MMULT(
155
+ BudgetInput[[Jan]:[Dec]] * (COLUMN(BudgetInput[[Jan]:[Dec]]) - COLUMN(BudgetInput[Jan]) + 1 <= CurrentMonthNum),
156
+ TRANSPOSE(COLUMN(BudgetInput[[Jan]:[Dec]])^0)
157
+ )
158
+ )
159
+ ```
160
+
161
+ ### Actuals Calculations
162
+
163
+ ```excel
164
+ // Total Spent
165
+ =SUM(Actuals[Amount])
166
+
167
+ // Spent by Category
168
+ =SUMIFS(Actuals[Amount], Actuals[Category], A2)
169
+
170
+ // Spent This Month
171
+ =SUMIFS(
172
+ Actuals[Amount],
173
+ Actuals[Date], ">="&DATE(YEAR(TODAY()), MONTH(TODAY()), 1),
174
+ Actuals[Date], "<="&EOMONTH(TODAY(), 0)
175
+ )
176
+
177
+ // Spent YTD
178
+ =SUMIFS(
179
+ Actuals[Amount],
180
+ Actuals[Date], ">="&DATE(FiscalYear, 1, 1),
181
+ Actuals[Date], "<="&TODAY()
182
+ )
183
+ ```
184
+
185
+ ### Variance Analysis
186
+
187
+ ```excel
188
+ // Variance (Favorable when under budget)
189
+ =Budget - Actual
190
+
191
+ // Variance %
192
+ =IFERROR((Budget - Actual) / Budget, 0)
193
+
194
+ // Status Indicator
195
+ =IFS(
196
+ Actual/Budget > 1.1, "Over Budget",
197
+ Actual/Budget > 1, "At Risk",
198
+ Actual/Budget > 0.9, "On Track",
199
+ TRUE, "Under Utilized"
200
+ )
201
+
202
+ // Conditional Icon
203
+ =IFS(
204
+ Variance% < -0.1, UNICHAR(9660), // Down arrow (bad)
205
+ Variance% < 0, UNICHAR(9679), // Dot (caution)
206
+ TRUE, UNICHAR(9650) // Up arrow (good)
207
+ )
208
+ ```
209
+
210
+ ### Forecasting
211
+
212
+ ```excel
213
+ // Linear Forecast to Year End
214
+ =Actual_YTD / MonthsElapsed * 12
215
+
216
+ // Trend-based Forecast
217
+ =FORECAST(12, ActualsArray, MonthsArray)
218
+
219
+ // Remaining Budget
220
+ =Annual_Budget - Actual_YTD
221
+
222
+ // Months of Runway
223
+ =Remaining_Budget / (Actual_YTD / MonthsElapsed)
224
+ ```
225
+
226
+ ### Dashboard Formulas
227
+
228
+ ```excel
229
+ // % of Budget Used
230
+ =Actual_YTD / Budget_YTD
231
+
232
+ // Sparkline for trend
233
+ =SPARKLINE(MonthlyActuals, {"charttype","column";"color","#0078D4"})
234
+
235
+ // Conditional Color (for Excel 365)
236
+ =LET(
237
+ pct, Actual/Budget,
238
+ IF(pct > 1, "Red", IF(pct > 0.9, "Yellow", "Green"))
239
+ )
240
+ ```
241
+
242
+ ---
243
+
244
+ ## Data Validation
245
+
246
+ ### Category Dropdown
247
+
248
+ ```
249
+ Data Validation > List
250
+ Source: =Settings!CategoryList
251
+ ```
252
+
253
+ ### Dependent Subcategory Dropdown
254
+
255
+ ```
256
+ Data Validation > List
257
+ Source: =INDIRECT(Category_Cell)
258
+ // Requires named ranges for each category's subcategories
259
+ ```
260
+
261
+ ### Date Validation
262
+
263
+ ```
264
+ Data Validation > Date
265
+ Between: Start of fiscal year AND Today
266
+ ```
267
+
268
+ ### Amount Validation
269
+
270
+ ```
271
+ Data Validation > Decimal
272
+ Greater than: 0
273
+ ```
274
+
275
+ ---
276
+
277
+ ## Conditional Formatting
278
+
279
+ ### Variance Column
280
+
281
+ | Rule | Format |
282
+ |------|--------|
283
+ | Value > 0 | Green background, dark green text |
284
+ | Value = 0 | No format |
285
+ | Value < 0 | Red background, dark red text |
286
+
287
+ ### Status Column
288
+
289
+ | Rule | Format |
290
+ |------|--------|
291
+ | = "Over Budget" | Red background |
292
+ | = "At Risk" | Yellow background |
293
+ | = "On Track" | Green background |
294
+ | = "Under Utilized" | Blue background |
295
+
296
+ ### Data Bars
297
+
298
+ Apply to Actual columns:
299
+ - Minimum: 0
300
+ - Maximum: Corresponding budget cell
301
+ - Bar color: #0078D4
302
+
303
+ ### Icon Sets
304
+
305
+ Apply to Variance % column:
306
+ - Green up arrow: > 0
307
+ - Yellow dash: = 0
308
+ - Red down arrow: < 0
309
+
310
+ ---
311
+
312
+ ## Charts Configuration
313
+
314
+ ### Budget vs Actual (Clustered Column)
315
+
316
+ ```
317
+ Data: Categories, Budget, Actual
318
+ Chart Type: Clustered Column
319
+ Budget Series: Gray (#808080)
320
+ Actual Series: Blue (#0078D4)
321
+ Data Labels: Outside End
322
+ Gap Width: 50%
323
+ ```
324
+
325
+ ### Spend Trend (Line Chart)
326
+
327
+ ```
328
+ Data: Months, Budget Line, Actual Line
329
+ Chart Type: Line with Markers
330
+ Budget Line: Dashed gray
331
+ Actual Line: Solid blue
332
+ Add trendline to Actual if desired
333
+ ```
334
+
335
+ ### Category Breakdown (Pie/Donut)
336
+
337
+ ```
338
+ Data: Categories, Actual Spend
339
+ Chart Type: Doughnut
340
+ Hole Size: 50%
341
+ Show percentages as data labels
342
+ Explode largest slice
343
+ ```
344
+
345
+ ---
346
+
347
+ ## Pivot Tables (Optional)
348
+
349
+ ### Spend by Category and Month
350
+
351
+ ```
352
+ Rows: Category, Subcategory
353
+ Columns: Month (from Date)
354
+ Values: Sum of Amount
355
+ Filter: Year
356
+ ```
357
+
358
+ ### Vendor Analysis
359
+
360
+ ```
361
+ Rows: Vendor
362
+ Columns: Category
363
+ Values: Sum of Amount
364
+ Sort: Descending by total
365
+ ```
366
+
367
+ ---
368
+
369
+ ## Protection Settings
370
+
371
+ ### Protected Elements
372
+
373
+ - Dashboard sheet: Full protection (view only)
374
+ - Variance Analysis: Formula cells protected
375
+ - Settings: Admin-only access
376
+
377
+ ### Unprotected Elements
378
+
379
+ - Actuals Input: Data entry cells
380
+ - Budget Input: Budget allocation cells
381
+
382
+ ### Recommended Protection
383
+
384
+ ```
385
+ Sheet Protection:
386
+ - Select locked cells: Yes
387
+ - Select unlocked cells: Yes
388
+ - Format cells: No
389
+ - Insert rows: No (except Actuals)
390
+ - Delete rows: No
391
+ ```
392
+
393
+ ---
394
+
395
+ ## Print Layout
396
+
397
+ ### Dashboard Print Area
398
+
399
+ - Fit to 1 page wide
400
+ - Landscape orientation
401
+ - Include header with date/page number
402
+ - Gridlines off
403
+
404
+ ### Variance Report Print
405
+
406
+ - Portrait orientation
407
+ - Repeat header row on each page
408
+ - Include category subtotals
409
+ - Page break after each category
410
+
411
+ ---
412
+
413
+ ## Implementation Checklist
414
+
415
+ - [ ] Set up Settings sheet with categories and parameters
416
+ - [ ] Create Budget Input table with annual allocations
417
+ - [ ] Build Actuals Input table with data validation
418
+ - [ ] Create Variance Analysis with all formulas
419
+ - [ ] Build Dashboard with charts and KPIs
420
+ - [ ] Apply conditional formatting throughout
421
+ - [ ] Test formulas with sample data
422
+ - [ ] Apply sheet protection
423
+ - [ ] Configure print areas
424
+ - [ ] Document instructions for users
425
+
426
+ ---
427
+
428
+ ## Related Resources
429
+
430
+ - [Excel Aggregation Functions](../../snippets/excel-formulas/aggregations.md)
431
+ - [Date Functions](../../snippets/excel-formulas/dates-and-times.md)
432
+ - [Dynamic Arrays](../../snippets/excel-formulas/dynamic-arrays.md)