@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.
- package/.claude-plugin/plugin.json +8 -0
- package/.mcp.json +25 -0
- package/AGENTS.md +244 -0
- package/CHANGELOG.md +265 -0
- package/LICENSE +21 -0
- package/README.md +211 -0
- package/bin/build-plugin.js +30 -0
- package/bin/cli.js +1064 -0
- package/bin/commands/add.js +533 -0
- package/bin/commands/add.test.js +77 -0
- package/bin/commands/build-desktop.js +166 -0
- package/bin/commands/changelog.js +443 -0
- package/bin/commands/diff.js +325 -0
- package/bin/commands/lint.js +419 -0
- package/bin/commands/lint.test.js +103 -0
- package/bin/commands/mcp-setup.js +246 -0
- package/bin/commands/pull.js +287 -0
- package/bin/commands/pull.test.js +36 -0
- package/bin/commands/push.js +231 -0
- package/bin/commands/push.test.js +14 -0
- package/bin/commands/search.js +344 -0
- package/bin/commands/search.test.js +115 -0
- package/bin/commands/setup.js +545 -0
- package/bin/commands/setup.test.js +46 -0
- package/bin/commands/sync-profile.js +405 -0
- package/bin/commands/sync-profile.test.js +14 -0
- package/bin/commands/sync-source.js +418 -0
- package/bin/commands/sync-source.test.js +14 -0
- package/bin/commands/watch.js +206 -0
- package/bin/lib/generators/claude-plugin.js +266 -0
- package/bin/lib/generators/claude-plugin.test.js +110 -0
- package/bin/lib/generators/index.js +116 -0
- package/bin/lib/generators/shared.js +282 -0
- package/bin/lib/licensing/index.js +35 -0
- package/bin/lib/licensing/storage.js +364 -0
- package/bin/lib/licensing/storage.test.js +55 -0
- package/bin/lib/licensing/validator.js +213 -0
- package/bin/lib/licensing/validator.test.js +137 -0
- package/bin/lib/microsoft-mcp.js +176 -0
- package/bin/lib/microsoft-mcp.test.js +106 -0
- package/bin/lib/skills.js +84 -0
- package/bin/mcp/powerbi-modeling-launcher.js +38 -0
- package/bin/postinstall.js +44 -0
- package/bin/utils/errors.js +159 -0
- package/bin/utils/git.js +298 -0
- package/bin/utils/logger.js +142 -0
- package/bin/utils/mcp-detect.js +274 -0
- package/bin/utils/mcp-detect.test.js +105 -0
- package/bin/utils/pbix.js +305 -0
- package/bin/utils/pbix.test.js +37 -0
- package/bin/utils/profiles.js +312 -0
- package/bin/utils/projects.js +168 -0
- package/bin/utils/readline.js +206 -0
- package/bin/utils/readline.test.js +47 -0
- package/bin/utils/tui.js +314 -0
- package/bin/utils/tui.test.js +127 -0
- package/commands/contributions.md +265 -0
- package/commands/data-model-design.md +468 -0
- package/commands/dax-doctor.md +248 -0
- package/commands/fabric-scripts.md +452 -0
- package/commands/migration-assistant.md +290 -0
- package/commands/model-documenter.md +242 -0
- package/commands/pbi-connect.md +239 -0
- package/commands/project-kickoff.md +905 -0
- package/commands/report-layout.md +296 -0
- package/commands/rls-design.md +533 -0
- package/commands/theme-tweaker.md +624 -0
- package/config.example.json +23 -0
- package/config.json +23 -0
- package/desktop-extension/manifest.json +37 -0
- package/desktop-extension/package.json +10 -0
- package/desktop-extension/server.js +95 -0
- package/docs/openrouter-free-models.md +92 -0
- package/library/examples/README.md +151 -0
- package/library/examples/finance-reporting/README.md +351 -0
- package/library/examples/finance-reporting/data-model.md +267 -0
- package/library/examples/finance-reporting/measures.dax +557 -0
- package/library/examples/hr-analytics/README.md +371 -0
- package/library/examples/hr-analytics/data-model.md +315 -0
- package/library/examples/hr-analytics/measures.dax +460 -0
- package/library/examples/marketing-analytics/README.md +37 -0
- package/library/examples/marketing-analytics/data-model.md +62 -0
- package/library/examples/marketing-analytics/measures.dax +110 -0
- package/library/examples/retail-analytics/README.md +439 -0
- package/library/examples/retail-analytics/data-model.md +288 -0
- package/library/examples/retail-analytics/measures.dax +481 -0
- package/library/examples/supply-chain/README.md +37 -0
- package/library/examples/supply-chain/data-model.md +69 -0
- package/library/examples/supply-chain/measures.dax +77 -0
- package/library/examples/udf-library/README.md +228 -0
- package/library/examples/udf-library/functions.dax +571 -0
- package/library/snippets/dax/README.md +292 -0
- package/library/snippets/dax/business-domains.md +576 -0
- package/library/snippets/dax/calculate-patterns.md +276 -0
- package/library/snippets/dax/calculation-groups.md +489 -0
- package/library/snippets/dax/error-handling.md +495 -0
- package/library/snippets/dax/iterators-and-aggregations.md +474 -0
- package/library/snippets/dax/kpis-and-metrics.md +293 -0
- package/library/snippets/dax/rankings-and-topn.md +235 -0
- package/library/snippets/dax/security-patterns.md +413 -0
- package/library/snippets/dax/text-and-formatting.md +316 -0
- package/library/snippets/dax/time-intelligence.md +196 -0
- package/library/snippets/dax/user-defined-functions.md +477 -0
- package/library/snippets/dax/virtual-tables.md +546 -0
- package/library/snippets/excel-formulas/README.md +84 -0
- package/library/snippets/excel-formulas/aggregations.md +330 -0
- package/library/snippets/excel-formulas/dates-and-times.md +361 -0
- package/library/snippets/excel-formulas/dynamic-arrays.md +314 -0
- package/library/snippets/excel-formulas/lookups.md +169 -0
- package/library/snippets/excel-formulas/text-functions.md +363 -0
- package/library/snippets/governance/naming-conventions.md +97 -0
- package/library/snippets/governance/review-checklists.md +107 -0
- package/library/snippets/power-query/README.md +389 -0
- package/library/snippets/power-query/api-integration.md +707 -0
- package/library/snippets/power-query/connections.md +434 -0
- package/library/snippets/power-query/data-cleaning.md +298 -0
- package/library/snippets/power-query/error-handling.md +526 -0
- package/library/snippets/power-query/parameters.md +350 -0
- package/library/snippets/power-query/performance.md +506 -0
- package/library/snippets/power-query/transformations.md +330 -0
- package/library/snippets/report-design/accessibility.md +78 -0
- package/library/snippets/report-design/chart-selection.md +54 -0
- package/library/snippets/report-design/layout-patterns.md +87 -0
- package/library/templates/data-models/README.md +93 -0
- package/library/templates/data-models/finance-model.md +627 -0
- package/library/templates/data-models/retail-star-schema.md +473 -0
- package/library/templates/excel/README.md +83 -0
- package/library/templates/excel/budget-tracker.md +432 -0
- package/library/templates/excel/data-entry-form.md +533 -0
- package/library/templates/power-bi/README.md +72 -0
- package/library/templates/power-bi/finance-report.md +449 -0
- package/library/templates/power-bi/kpi-scorecard.md +461 -0
- package/library/templates/power-bi/sales-dashboard.md +281 -0
- package/library/themes/excel/README.md +436 -0
- package/library/themes/power-bi/README.md +271 -0
- package/library/themes/power-bi/accessible.json +307 -0
- package/library/themes/power-bi/bi-superpowers-default.json +858 -0
- package/library/themes/power-bi/corporate-blue.json +291 -0
- package/library/themes/power-bi/dark-mode.json +291 -0
- package/library/themes/power-bi/minimal.json +292 -0
- package/library/themes/power-bi/print-friendly.json +309 -0
- package/package.json +93 -0
- package/skills/contributions/SKILL.md +267 -0
- package/skills/data-model-design/SKILL.md +470 -0
- package/skills/data-modeling/SKILL.md +254 -0
- package/skills/data-quality/SKILL.md +664 -0
- package/skills/dax/SKILL.md +708 -0
- package/skills/dax-doctor/SKILL.md +250 -0
- package/skills/dax-udf/SKILL.md +489 -0
- package/skills/deployment/SKILL.md +320 -0
- package/skills/excel-formulas/SKILL.md +463 -0
- package/skills/fabric-scripts/SKILL.md +454 -0
- package/skills/fast-standard/SKILL.md +509 -0
- package/skills/governance/SKILL.md +205 -0
- package/skills/migration-assistant/SKILL.md +292 -0
- package/skills/model-documenter/SKILL.md +244 -0
- package/skills/pbi-connect/SKILL.md +241 -0
- package/skills/power-query/SKILL.md +406 -0
- package/skills/project-kickoff/SKILL.md +907 -0
- package/skills/query-performance/SKILL.md +480 -0
- package/skills/report-design/SKILL.md +207 -0
- package/skills/report-layout/SKILL.md +298 -0
- package/skills/rls-design/SKILL.md +535 -0
- package/skills/semantic-model/SKILL.md +237 -0
- package/skills/testing-validation/SKILL.md +643 -0
- package/skills/theme-tweaker/SKILL.md +626 -0
- package/src/content/base.md +237 -0
- package/src/content/mcp-requirements.json +69 -0
- package/src/content/routing.md +203 -0
- package/src/content/skills/contributions.md +259 -0
- package/src/content/skills/data-model-design.md +462 -0
- package/src/content/skills/data-modeling.md +246 -0
- package/src/content/skills/data-quality.md +656 -0
- package/src/content/skills/dax-doctor.md +242 -0
- package/src/content/skills/dax-udf.md +481 -0
- package/src/content/skills/dax.md +700 -0
- package/src/content/skills/deployment.md +312 -0
- package/src/content/skills/excel-formulas.md +455 -0
- package/src/content/skills/fabric-scripts.md +446 -0
- package/src/content/skills/fast-standard.md +501 -0
- package/src/content/skills/governance.md +197 -0
- package/src/content/skills/migration-assistant.md +284 -0
- package/src/content/skills/model-documenter.md +236 -0
- package/src/content/skills/pbi-connect.md +233 -0
- package/src/content/skills/power-query.md +398 -0
- package/src/content/skills/project-kickoff.md +899 -0
- package/src/content/skills/query-performance.md +472 -0
- package/src/content/skills/report-design.md +199 -0
- package/src/content/skills/report-layout.md +290 -0
- package/src/content/skills/rls-design.md +527 -0
- package/src/content/skills/semantic-model.md +229 -0
- package/src/content/skills/testing-validation.md +635 -0
- 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)
|