Skip to content

Commit 30797bc

Browse files
author
Alex Bikeyev
committed
feat: add group management to financial modeling skill with 08_groups.openm files for all example models
Add section 15 to skill files documenting group create/add/detach/delete/rename/list commands for organizing dimension items into outline sections (Revenue, COGS, Operating Expenses, etc.). Create 08_groups.openm files for SaaS, manufacturing CapEx, and business valuation examples with P&L, balance sheet, driver, and check groupings. Update build.openm files to source groups after formatting
1 parent 4711bc9 commit 30797bc

9 files changed

Lines changed: 344 additions & 7 deletions

File tree

‎docs/agent-skills/financial-modeling/SKILLS.md‎

Lines changed: 56 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -351,7 +351,58 @@ rule BS::@.font_weight:BSAccount.TotalAssets:Year.*:Scenario.* = 700
351351
rule BS::@.fill:BSAccount.TotalAssets:Year.*:Scenario.* = "#e2e8f0"
352352
```
353353

354-
## 15. Output Format
354+
## 15. Group Management
355+
356+
Financial models benefit from grouping dimension items into outline sections. For example, a P&L account dimension can be grouped into Revenue, COGS, Operating Expenses, and Totals.
357+
358+
See the full `om-core-group-management` skillset for command syntax. The available REPL commands are:
359+
360+
```text
361+
group create <dim> <label> [parent=<group>] [item1 item2 ...]
362+
group add <dim> <group> <item1 item2 ...>
363+
group detach <dim> <item1 item2 ...>
364+
group delete <dim> <group>
365+
group rename <dim> <group> <new_label>
366+
group list <dim>
367+
```
368+
369+
Add a `08_groups.openm` file and source it after `07_formatting.openm` and before `calc`:
370+
371+
```text
372+
source 00_variables.openm
373+
source 01_dimensions.openm
374+
source 02_cubes.openm
375+
source 03_inputs.openm
376+
source 04_rules.openm
377+
source 05_checks.openm
378+
source 06_views.openm
379+
source 07_formatting.openm
380+
source 08_groups.openm
381+
calc
382+
```
383+
384+
Example P&L grouping:
385+
386+
```text
387+
om> group create PLAccount "Revenue" Revenue
388+
om> group create PLAccount "COGS" COGS
389+
om> group create PLAccount "Operating Expenses" Salaries Marketing Rent
390+
om> group create PLAccount "Totals" GrossProfit EBITDA NetIncome
391+
```
392+
393+
Example balance sheet grouping:
394+
395+
```text
396+
om> group create BSAccount "Current Assets" Cash AccountsReceivable Inventory
397+
om> group create BSAccount "Fixed Assets" GrossPPE AccumulatedDepreciation NetPPE
398+
om> group create BSAccount "Liabilities" AccountsPayable Debt
399+
om> group create BSAccount "Equity" Equity
400+
om> group create BSAccount "Total" TotalAssets TotalLiabilitiesAndEquity
401+
```
402+
403+
Groups affect only the outline presentation; rules continue to reference individual items.
404+
405+
## 16. Output Format
355406

356407
When asked to build a model, return:
357408

@@ -475,6 +526,8 @@ examples/manufacturing-capex-model/
475526
04_rules.openm
476527
05_checks.openm
477528
06_views.openm
529+
07_formatting.openm
530+
08_groups.openm
478531
build.openm
479532
```
480533

@@ -499,6 +552,8 @@ examples/business-valuation-model/
499552
04_rules.openm
500553
05_checks.openm
501554
06_views.openm
555+
07_formatting.openm
556+
08_groups.openm
502557
build.openm
503558
```
504559

‎skills/om-core-financial-modeling/SKILLS.md‎

Lines changed: 61 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -351,7 +351,58 @@ rule BS::@.font_weight:BSAccount.TotalAssets:Year.*:Scenario.* = 700
351351
rule BS::@.fill:BSAccount.TotalAssets:Year.*:Scenario.* = "#e2e8f0"
352352
```
353353

354-
## 15. Output Format
354+
## 15. Group Management
355+
356+
Financial models benefit from grouping dimension items into outline sections. For example, a P&L account dimension can be grouped into Revenue, COGS, Operating Expenses, and Totals.
357+
358+
See the full `om-core-group-management` skillset for command syntax. The available REPL commands are:
359+
360+
```text
361+
group create <dim> <label> [parent=<group>] [item1 item2 ...]
362+
group add <dim> <group> <item1 item2 ...>
363+
group detach <dim> <item1 item2 ...>
364+
group delete <dim> <group>
365+
group rename <dim> <group> <new_label>
366+
group list <dim>
367+
```
368+
369+
Add a `08_groups.openm` file and source it after `07_formatting.openm` and before `calc`:
370+
371+
```text
372+
source 00_variables.openm
373+
source 01_dimensions.openm
374+
source 02_cubes.openm
375+
source 03_inputs.openm
376+
source 04_rules.openm
377+
source 05_checks.openm
378+
source 06_views.openm
379+
source 07_formatting.openm
380+
source 08_groups.openm
381+
calc
382+
```
383+
384+
Example P&L grouping:
385+
386+
```text
387+
om> group create PLAccount "Revenue" Revenue
388+
om> group create PLAccount "COGS" COGS
389+
om> group create PLAccount "Operating Expenses" Salaries Marketing Rent
390+
om> group create PLAccount "Totals" GrossProfit EBITDA NetIncome
391+
```
392+
393+
Example balance sheet grouping:
394+
395+
```text
396+
om> group create BSAccount "Current Assets" Cash AccountsReceivable Inventory
397+
om> group create BSAccount "Fixed Assets" GrossPPE AccumulatedDepreciation NetPPE
398+
om> group create BSAccount "Liabilities" AccountsPayable Debt
399+
om> group create BSAccount "Equity" Equity
400+
om> group create BSAccount "Total" TotalAssets TotalLiabilitiesAndEquity
401+
```
402+
403+
Groups affect only the outline presentation; rules continue to reference individual items.
404+
405+
## 16. Output Format
355406

356407
When asked to build a model, return:
357408

@@ -378,7 +429,7 @@ model/
378429

379430
Then include each file in a separate code block.
380431

381-
## 16. Validation Checklist
432+
## 17. Validation Checklist
382433

383434
Before finalizing a model, check:
384435

@@ -393,7 +444,7 @@ Before finalizing a model, check:
393444
* At least one view exists for every cube.
394445
* The model can be loaded through `source build.openm`.
395446

396-
## 17. Example Minimal P&L Model
447+
## 18. Example Minimal P&L Model
397448

398449
File tree:
399450

@@ -462,7 +513,7 @@ Run:
462513
om> source build.openm
463514
```
464515

465-
## 18. Example Manufacturing CapEx & Depreciation Model
516+
## 19. Example Manufacturing CapEx & Depreciation Model
466517

467518
File tree:
468519

@@ -475,6 +526,8 @@ examples/manufacturing-capex-model/
475526
04_rules.openm
476527
05_checks.openm
477528
06_views.openm
529+
07_formatting.openm
530+
08_groups.openm
478531
build.openm
479532
```
480533

@@ -486,7 +539,7 @@ Run:
486539
om> source build.openm
487540
```
488541

489-
## 19. Example Business Valuation Model
542+
## 20. Example Business Valuation Model
490543

491544
File tree:
492545

@@ -499,6 +552,8 @@ examples/business-valuation-model/
499552
04_rules.openm
500553
05_checks.openm
501554
06_views.openm
555+
07_formatting.openm
556+
08_groups.openm
502557
build.openm
503558
```
504559

@@ -510,7 +565,7 @@ Run:
510565
om> source build.openm
511566
```
512567

513-
## 20. Agent Behavior Rules
568+
## 21. Agent Behavior Rules
514569

515570
The agent must not:
516571

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Dimension outline groups for presentation
2+
3+
group create PLAccount Revenue Revenue
4+
5+
group create PLAccount COGS COGS
6+
7+
group create PLAccount "Operating Expenses" SGA Depreciation
8+
9+
group create PLAccount Profitability GrossProfit EBITDA EBIT NetIncome
10+
11+
group create BSAccount "Current Assets" Cash AccountsReceivable Inventory
12+
13+
group create BSAccount "Fixed Assets" NetFixedAssets
14+
15+
group create BSAccount "Total Assets" TotalAssets
16+
17+
group create BSAccount Liabilities AccountsPayable Debt
18+
19+
group create BSAccount Equity Equity
20+
21+
group create BSAccount "Total Liabilities & Equity" TotalLiabilitiesAndEquity
22+
23+
group create CFSAccount "Cash Flow" NetIncome Depreciation ChangeInWC CapEx FCFF
24+
25+
group create ValAccount "WACC Inputs" WACC CostOfEquity CostOfDebt
26+
27+
group create ValAccount Valuation DiscountFactor TerminalValue PVFCFF EnterpriseValue EquityValue

‎skills/om-core-financial-modeling/examples/business-valuation-model/build.openm‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@ source 04_rules.openm
66
source 05_checks.openm
77
source 06_views.openm
88
source 07_formatting.openm
9+
source 08_groups.openm
910
calc
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Dimension outline groups for presentation
2+
3+
group create Account Inputs CapEx OpeningGrossBlock
4+
5+
group create Account "Asset Value" GrossBlock AccumulatedDepreciation NetBookValue
6+
7+
group create Account "Expense" DepreciationExpense
8+
9+
group create Driver "Drivers" UsefulLife OpeningGrossBlock CapEx
10+
11+
group create AssetType "Asset Types" Machinery Equipment Vehicles

‎skills/om-core-financial-modeling/examples/manufacturing-capex-model/build.openm‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@ source 04_rules.openm
66
source 05_checks.openm
77
source 06_views.openm
88
source 07_formatting.openm
9+
source 08_groups.openm
910
calc
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Dimension outline groups for presentation
2+
3+
group create Account "Revenue Metrics" Revenue ARPU
4+
5+
group create Account Customers Customers NewCustomers ChurnedCustomers ChurnRate
6+
7+
group create Account Profitability COGS GrossProfit OperatingExpense EBITDA
8+
9+
group create Driver "Customer Drivers" StartingCustomers NewCustomers ChurnRate
10+
11+
group create Driver "Revenue Drivers" ARPU COGS_Rate OperatingExpense
12+
13+
group create Check Checks RevenueCheck GrossProfitCheck EBITDACheck

‎skills/om-core-financial-modeling/examples/saas-revenue-model/build.openm‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@ source 04_rules.openm
66
source 05_checks.openm
77
source 06_views.openm
88
source 07_formatting.openm
9+
source 08_groups.openm
910
calc

0 commit comments

Comments
 (0)