Skill Tracer
Skills › Financial Services › lbo-model

lbo-model

skill · 274 lines · Apache-2.0 · plugins/vertical-plugins/financial-analysis/skills/lbo-model/SKILL.md

The facts

Its description

This skill should be used when completing LBO (Leveraged Buyout) model templates in Excel for private equity transactions, deal materials, or investment committee presentations. The skill fills in formulas, validates calculations, and ensures professional formatting standards that adapt to any template structure.

The description the agent reads to decide when to use it.

From its settingsline 3

When it starts

The agent sees only the name and description, which say the skill is for completing LBO (Leveraged Buyout) model templates in Excel for private equity transactions, deal materials, or investment committee presentations. So it fires when someone asks to fill in, validate, or format a leveraged buyout model — especially when an LBO template file is attached.

Things a person might say (the model's guesses)

  • “Here's our LBO template — can you fill in the formulas for this deal?”
  • “Build the buyout model for this target: sources and uses, debt schedule, and returns.”
  • “Can you check the IRR and MOIC in this LBO and make sure the formatting follows the usual conventions?”

A model's summary of when it is used.

A model's reading

Runs scripts

python /mnt/skills/public/xlsx/recalc.py

Scripts the text names. Found by matching words, so treat them as pointers.

Found by matching wordsline 166

Stops for a person

3 lines stop to ask a person

Lines that stop and wait for a person before going on. Found by matching words, so treat them as pointers.

Found by matching wordsline 14 line 77 line 119

What leads to it

Other skills that hand off to this one, call it, require it or offer it instead, as a model read them.

A model's reading

Names skills outside this collection

Skills the text names that are not in this collection, as a model read them.

A model's reading

Licence

Apache-2.0, from LICENSE

The terms its author shares it under, which let it be shown here.

From the repositorylicence text

The text

Open on GitHub

Most marks come from matching words in the file, so treat them as pointers.

1---
2name: lbo-model
3description: This skill should be used when completing LBO (Leveraged Buyout) model templates in Excel for private equity transactions, deal materials, or investment committee presentations. The skill fills in formulas, validates calculations, and ensures professional formatting standards that adapt to any template structure.
4---
5
6---
7
8## TEMPLATE REQUIREMENT
9
10**This skill uses templates for LBO models. Always check for an attached template file first.**
12Before starting any LBO model:
131. **If a template file is attached/provided**: Use that template's structure exactly - copy it and populate with the user's data
142. **If no template is attached**: Ask the user: *"Do you have a specific LBO template you'd like me to use? If not, I can use the standard template which includes Sources & Uses, Operating Model, Debt Schedule, and Returns Analysis."*
153. **If using the standard template**: Copy `examples/LBO_Model.xlsx` as your starting point and populate it with the user's assumptions
17**IMPORTANT**: When a file like `LBO_Model.xlsx` is attached, you MUST use it as your template - do not build from scratch. Even if the template seems complex or has more features than needed, copy it and adapt it to the user's requirements. Never decide to "build from scratch" when a template is provided.
19---

TEMPLATE REQUIREMENT

This skill uses templates for LBO models. Always check for an attached template file first.

Before starting any LBO model:

  1. If a template file is attached/provided: Use that template's structure exactly - copy it and populate with the user's data
  2. If no template is attached: Ask the user: "Do you have a specific LBO template you'd like me to use? If not, I can use the standard template which includes Sources & Uses, Operating Model, Debt Schedule, and Returns Analysis."
  3. If using the standard template: Copy examples/LBO_Model.xlsx as your starting point and populate it with the user's assumptions

IMPORTANT: When a file like LBO_Model.xlsx is attached, you MUST use it as your template - do not build from scratch. Even if the template seems complex or has more features than needed, copy it and adapt it to the user's requirements. Never decide to "build from scratch" when a template is provided.


Raw lines 8 to 20
Involves a person Ask the user :14
21## CRITICAL INSTRUCTIONS FOR CLAUDE - READ FIRST

CRITICAL INSTRUCTIONS FOR CLAUDE - READ FIRST

Raw lines 21 to 22
23### Environment: Office JS vs Python
25**If running inside Excel (Office Add-in / Office JS environment):**
26- Use Office JS (`Excel.run(async (context) => {...})`) directly — do NOT use Python/openpyxl
27- Write formulas via `range.formulas = [["=B5*B6"]]` — Office JS formulas recalculate natively in the live workbook
28- The same formulas-over-hardcodes rule applies: set `range.formulas`, never `range.values` for anything that should be a calculation
29- Use `range.format.font.color` / `range.format.fill.color` for the blue/black/purple/green convention
30- No separate recalc step needed — Excel handles calculation natively
31- **Merged cell pitfall:** Do NOT call `.merge()` then set `.values` on the merged range (throws `InvalidArgument` — range still reports original dimensions). Instead: write value to top-left cell alone (`ws.getRange("A7").values = [["SOURCES & USES"]]`), then merge + format the full range (`ws.getRange("A7:F7").merge(); ws.getRange("A7:F7").format.fill.color = "#1F4E79";`)
33**If generating a standalone .xlsx file (no live Excel session):**
34- Use Python/openpyxl as described below
35- Write formula strings (`ws["D20"] = "=B5*B6"`), then run `recalc.py` before delivery
37The rest of this skill is written with openpyxl examples, but the same principles apply to Office JS — just translate the API calls.

Environment: Office JS vs Python

If running inside Excel (Office Add-in / Office JS environment):

  • Use Office JS (Excel.run(async (context) => {...})) directly — do NOT use Python/openpyxl
  • Write formulas via range.formulas = [["=B5*B6"]] — Office JS formulas recalculate natively in the live workbook
  • The same formulas-over-hardcodes rule applies: set range.formulas, never range.values for anything that should be a calculation
  • Use range.format.font.color / range.format.fill.color for the blue/black/purple/green convention
  • No separate recalc step needed — Excel handles calculation natively
  • Merged cell pitfall: Do NOT call .merge() then set .values on the merged range (throws InvalidArgument — range still reports original dimensions). Instead: write value to top-left cell alone (ws.getRange("A7").values = [["SOURCES & USES"]]), then merge + format the full range (ws.getRange("A7:F7").merge(); ws.getRange("A7:F7").format.fill.color = "#1F4E79";)

If generating a standalone .xlsx file (no live Excel session):

  • Use Python/openpyxl as described below
  • Write formula strings (ws["D20"] = "=B5*B6"), then run recalc.py before delivery

The rest of this skill is written with openpyxl examples, but the same principles apply to Office JS — just translate the API calls.

Raw lines 23 to 38
39### Core Principles
40* **Every calculation must be an Excel formula** - NEVER compute values in Python and hardcode results into cells. When using openpyxl, write `cell.value = "=B5*B6"` (formula string), NOT `cell.value = 1250` (computed result). The model must be dynamic and update when inputs change.
41* **Use the template structure** - Follow the organization in `examples/LBO_Model.xlsx` or the user's provided template. Do not invent your own layout.
42* **Use proper cell references** - All formulas should reference the appropriate cells. Never type numbers that should come from other cells.
43* **Maintain sign convention consistency** - Follow whatever sign convention the template uses (some use negative for outflows, some use positive). Be consistent throughout.
44* **Work section by section, verify with user at each step** - Complete one section fully, show the user what was built, run the section's verification checks, and get confirmation BEFORE moving to the next section. Do NOT build the entire model end-to-end and then present it — later sections depend on earlier ones, so catching a mistake in Sources & Uses after the returns are already built means rework everywhere.

Core Principles

  • Every calculation must be an Excel formula - NEVER compute values in Python and hardcode results into cells. When using openpyxl, write cell.value = "=B5*B6" (formula string), NOT cell.value = 1250 (computed result). The model must be dynamic and update when inputs change.
  • Use the template structure - Follow the organization in examples/LBO_Model.xlsx or the user's provided template. Do not invent your own layout.
  • Use proper cell references - All formulas should reference the appropriate cells. Never type numbers that should come from other cells.
  • Maintain sign convention consistency - Follow whatever sign convention the template uses (some use negative for outflows, some use positive). Be consistent throughout.
  • Work section by section, verify with user at each step - Complete one section fully, show the user what was built, run the section's verification checks, and get confirmation BEFORE moving to the next section. Do NOT build the entire model end-to-end and then present it — later sections depend on earlier ones, so catching a mistake in Sources & Uses after the returns are already built means rework everywhere.
Raw lines 39 to 45
46### Formula Color Conventions
47* **Blue (0000FF)**: Hardcoded inputs - typed numbers that don't reference other cells
48* **Black (000000)**: Formulas with calculations - any formula using operators or functions (`=B4*B5`, `=SUM()`, `=-MAX(0,B4)`)
49* **Purple (800080)**: Links to cells on the **same tab** - direct references with no calculation (`=B9`, `=B45`)
50* **Green (008000)**: Links to cells on **different tabs** - cross-sheet references (`=Assumptions!B5`, `='Operating Model'!C10`)

Formula Color Conventions

  • Blue (0000FF): Hardcoded inputs - typed numbers that don't reference other cells
  • Black (000000): Formulas with calculations - any formula using operators or functions (=B4*B5, =SUM(), =-MAX(0,B4))
  • Purple (800080): Links to cells on the same tab - direct references with no calculation (=B9, =B45)
  • Green (008000): Links to cells on different tabs - cross-sheet references (=Assumptions!B5, ='Operating Model'!C10)
Raw lines 46 to 51
52### Fill Color Palette — Professional Blues & Greys (Default unless user/template specifies otherwise)
53* **Keep it minimal** — only use blues and greys for cell fills. Do NOT introduce greens, yellows, reds, or multiple accents. A professional LBO model uses restraint.
54* **Default fill palette:**
55 * **Section headers** (Sources & Uses, Operating Model, etc.): Dark blue `#1F4E79` with white bold text
56 * **Column headers** (Year 1, Year 2, etc.): Light blue `#D9E1F2` with black bold text
57 * **Input cells**: Light grey `#F2F2F2` (or just white) — the blue *font* is the signal, fill is secondary
58 * **Formula/calculated cells**: White, no fill
59 * **Key outputs** (IRR, MOIC, Exit Equity): Medium blue `#BDD7EE` with black bold text
60* **That's the whole palette.** 3 blues + 1 grey + white. If the template uses its own colors, follow the template instead.
61* Note: The blue/black/purple/green **font** colors above are for distinguishing inputs vs formulas vs links. Those are separate from the **fill** palette here — both work together.

Fill Color Palette — Professional Blues & Greys (Default unless user/template specifies otherwise)

  • Keep it minimal — only use blues and greys for cell fills. Do NOT introduce greens, yellows, reds, or multiple accents. A professional LBO model uses restraint.
  • Default fill palette:
  • Section headers (Sources & Uses, Operating Model, etc.): Dark blue #1F4E79 with white bold text
  • Column headers (Year 1, Year 2, etc.): Light blue #D9E1F2 with black bold text
  • Input cells: Light grey #F2F2F2 (or just white) — the blue font is the signal, fill is secondary
  • Formula/calculated cells: White, no fill
  • Key outputs (IRR, MOIC, Exit Equity): Medium blue #BDD7EE with black bold text
  • That's the whole palette. 3 blues + 1 grey + white. If the template uses its own colors, follow the template instead.
  • Note: The blue/black/purple/green font colors above are for distinguishing inputs vs formulas vs links. Those are separate from the fill palette here — both work together.
Raw lines 52 to 62
63### Number Formatting Standards
64* **Currency**: `$#,##0;($#,##0);"-"` or `$#,##0.0` depending on template
65* **Percentages**: `0.0%` (one decimal)
66* **Multiples**: `0.0"x"` (one decimal)
67* **MOIC/Detailed Ratios**: `0.00"x"` (two decimals for precision)
68* **All numeric cells**: Right-aligned
70---

Number Formatting Standards

  • Currency: $#,##0;($#,##0);"-" or $#,##0.0 depending on template
  • Percentages: 0.0% (one decimal)
  • Multiples: 0.0"x" (one decimal)
  • MOIC/Detailed Ratios: 0.00"x" (two decimals for precision)
  • All numeric cells: Right-aligned

Raw lines 63 to 71
72### Clarify Requirements First
74Before filling any formulas:
76* **Examine the template structure** - Identify all sections, understand the timeline (which columns are which periods), note any existing formulas
77* **Ask the user if anything is unclear** - If the template structure, calculation methods, or requirements are ambiguous, ask before proceeding
78* **Confirm key assumptions** - Any key inputs, calculation preferences, or specific requirements
79* **ONLY AFTER understanding the template**, proceed to fill in formulas
81---

Clarify Requirements First

Before filling any formulas:

  • Examine the template structure - Identify all sections, understand the timeline (which columns are which periods), note any existing formulas
  • Ask the user if anything is unclear - If the template structure, calculation methods, or requirements are ambiguous, ask before proceeding
  • Confirm key assumptions - Any key inputs, calculation preferences, or specific requirements
  • ONLY AFTER understanding the template, proceed to fill in formulas

Raw lines 72 to 82
Involves a person Ask the user :77
83## TEMPLATE ANALYSIS PHASE - DO THIS FIRST
85Before filling any formulas, examine the template thoroughly:
871. **Map the structure** - Identify where each section lives and how they relate to each other. Note which sections feed into others.
892. **Understand the timeline** - Which columns represent which periods? Is there a "Closing" or "Pro Forma" column? Where does the projection period start?
913. **Identify input vs formula cells** - Templates often use color coding, borders, or shading to indicate which cells need inputs vs formulas. Respect these conventions.
934. **Read existing labels carefully** - The row labels tell you exactly what calculation is expected. Don't assume - read what the template is asking for.
955. **Check for existing formulas** - Some templates come partially filled. Don't overwrite working formulas unless specifically asked.
976. **Note template-specific conventions** - Sign conventions, subtotal structures, how sections are organized, whether there are separate tabs for different components, etc.
99---

TEMPLATE ANALYSIS PHASE - DO THIS FIRST

Before filling any formulas, examine the template thoroughly:

  1. Map the structure - Identify where each section lives and how they relate to each other. Note which sections feed into others.
  1. Understand the timeline - Which columns represent which periods? Is there a "Closing" or "Pro Forma" column? Where does the projection period start?
  1. Identify input vs formula cells - Templates often use color coding, borders, or shading to indicate which cells need inputs vs formulas. Respect these conventions.
  1. Read existing labels carefully - The row labels tell you exactly what calculation is expected. Don't assume - read what the template is asking for.
  1. Check for existing formulas - Some templates come partially filled. Don't overwrite working formulas unless specifically asked.
  1. Note template-specific conventions - Sign conventions, subtotal structures, how sections are organized, whether there are separate tabs for different components, etc.

Raw lines 83 to 100
101## FILLING FORMULAS - GENERAL APPROACH
103For each cell that needs a formula, follow this hierarchy:

FILLING FORMULAS - GENERAL APPROACH

For each cell that needs a formula, follow this hierarchy:

Raw lines 101 to 104
105### Step 1: Check the Template
106* Does the cell already have a formula? If yes, verify it's correct and move on.
107* Is there a comment or note indicating the expected calculation?
108* Does the row/column label make the calculation obvious?
109* Do neighboring cells show a pattern you should follow?

Step 1: Check the Template

  • Does the cell already have a formula? If yes, verify it's correct and move on.
  • Is there a comment or note indicating the expected calculation?
  • Does the row/column label make the calculation obvious?
  • Do neighboring cells show a pattern you should follow?
Raw lines 105 to 110
111### Step 2: Check the User's Instructions
112* Did the user specify a particular calculation method?
113* Are there stated assumptions that affect this formula?
114* Any special requirements mentioned?

Step 2: Check the User's Instructions

  • Did the user specify a particular calculation method?
  • Are there stated assumptions that affect this formula?
  • Any special requirements mentioned?
Raw lines 111 to 115
116### Step 3: Apply Standard Practice
117* If neither template nor user specifies, use standard LBO modeling conventions
118* Document any assumptions you make
119* If genuinely uncertain, ask the user
121---

Step 3: Apply Standard Practice

  • If neither template nor user specifies, use standard LBO modeling conventions
  • Document any assumptions you make
  • If genuinely uncertain, ask the user

Raw lines 116 to 122
Involves a person ask the user :119
123## COMMON PROBLEM AREAS
125The following calculation patterns frequently cause issues across LBO models. Pay special attention when you encounter these:

COMMON PROBLEM AREAS

The following calculation patterns frequently cause issues across LBO models. Pay special attention when you encounter these:

Raw lines 123 to 126
127### Balancing Sections
128* When two sections must equal (e.g., Sources = Uses), one item is typically the "plug" (balancing figure)
129* Identify which item is the plug and calculate it as the difference

Balancing Sections

  • When two sections must equal (e.g., Sources = Uses), one item is typically the "plug" (balancing figure)
  • Identify which item is the plug and calculate it as the difference
Raw lines 127 to 130
131### Tax Calculations
132* Tax formulas should only reference the relevant income line and tax rate
133* Should NOT reference unrelated sections (e.g., debt schedules)
134* Consider whether losses create tax shields or are simply ignored

Tax Calculations

  • Tax formulas should only reference the relevant income line and tax rate
  • Should NOT reference unrelated sections (e.g., debt schedules)
  • Consider whether losses create tax shields or are simply ignored
Raw lines 131 to 135
136### Interest and Circular References
137* Interest calculations can create circularity if they reference balances affected by cash flows
138* Use **Beginning Balance** (not average or ending) to break circular references
139* Pattern: Interest → Cash Flow → Paydown → Ending Balance (if interest uses ending balance, this circles back)

Interest and Circular References

  • Interest calculations can create circularity if they reference balances affected by cash flows
  • Use Beginning Balance (not average or ending) to break circular references
  • Pattern: Interest → Cash Flow → Paydown → Ending Balance (if interest uses ending balance, this circles back)
Raw lines 136 to 140
141### Debt Paydown / Cash Sweeps
142* When multiple debt tranches exist, there's usually a priority order
143* Cash sweep should respect the priority waterfall
144* Balances cannot go negative - use MAX or MIN functions appropriately

Debt Paydown / Cash Sweeps

  • When multiple debt tranches exist, there's usually a priority order
  • Cash sweep should respect the priority waterfall
  • Balances cannot go negative - use MAX or MIN functions appropriately
Raw lines 141 to 145
146### Returns Calculations (IRR/MOIC)
147* Cash flows must have correct signs: Investment = negative, Proceeds = positive
148* If using XIRR, need corresponding dates
149* If using IRR, cash flows should be in consecutive periods
150* MOIC = Total Proceeds / Total Investment

Returns Calculations (IRR/MOIC)

  • Cash flows must have correct signs: Investment = negative, Proceeds = positive
  • If using XIRR, need corresponding dates
  • If using IRR, cash flows should be in consecutive periods
  • MOIC = Total Proceeds / Total Investment
Raw lines 146 to 151
152### Sensitivity Tables
153* **Use ODD dimensions** (5×5 or 7×7) — never 4×4 or 6×6. Odd dimensions guarantee a true center cell.
154* **Center cell = base case.** Build the row and column axis values symmetrically around the model's actual assumptions (e.g., if base entry multiple = 10.0x, axis = `[8.0x, 9.0x, 10.0x, 11.0x, 12.0x]`). The center cell's IRR/MOIC MUST then equal the model's actual IRR/MOIC output — this is the proof the table is wired correctly.
155* **Highlight the center cell** — medium-blue fill (`#BDD7EE`) + bold font so the base case is visually anchored.
156* Excel's DATA TABLE function may not work with openpyxl — instead write explicit formulas that reference row/column headers
157* Each cell should show a DIFFERENT value — if all same, formulas aren't varying correctly
158* Use mixed references (e.g., `$A5` for row input, `B$4` for column input)
160---

Sensitivity Tables

  • Use ODD dimensions (5×5 or 7×7) — never 4×4 or 6×6. Odd dimensions guarantee a true center cell.
  • Center cell = base case. Build the row and column axis values symmetrically around the model's actual assumptions (e.g., if base entry multiple = 10.0x, axis = [8.0x, 9.0x, 10.0x, 11.0x, 12.0x]). The center cell's IRR/MOIC MUST then equal the model's actual IRR/MOIC output — this is the proof the table is wired correctly.
  • Highlight the center cell — medium-blue fill (#BDD7EE) + bold font so the base case is visually anchored.
  • Excel's DATA TABLE function may not work with openpyxl — instead write explicit formulas that reference row/column headers
  • Each cell should show a DIFFERENT value — if all same, formulas aren't varying correctly
  • Use mixed references (e.g., $A5 for row input, B$4 for column input)

Raw lines 152 to 161
162## VERIFICATION CHECKLIST - RUN AFTER COMPLETION

VERIFICATION CHECKLIST - RUN AFTER COMPLETION

Raw lines 162 to 163
164### Run Formula Validation
165```bash
166python /mnt/skills/public/xlsx/recalc.py model.xlsx
167```
168Must return success with zero errors.

Run Formula Validation

python /mnt/skills/public/xlsx/recalc.py model.xlsx

Must return success with zero errors.

Raw lines 164 to 169
Runs code python /mnt/skills/public/xlsx/recalc.py :166
170### Section Balancing
171- [ ] Any sections that must balance (Sources/Uses, Assets/Liabilities) balance exactly
172- [ ] Plug items are calculated correctly as the balancing figure
173- [ ] Amounts that should match across sections are consistent

Section Balancing

  • [ ] Any sections that must balance (Sources/Uses, Assets/Liabilities) balance exactly
  • [ ] Plug items are calculated correctly as the balancing figure
  • [ ] Amounts that should match across sections are consistent
Raw lines 170 to 174
175### Income/Operating Projections
176- [ ] Revenue/top-line builds correctly from drivers or growth rates
177- [ ] All cost and expense items calculated appropriately
178- [ ] Subtotals and totals sum correctly
179- [ ] Margins and ratios are reasonable
180- [ ] Links to assumptions are correct

Income/Operating Projections

  • [ ] Revenue/top-line builds correctly from drivers or growth rates
  • [ ] All cost and expense items calculated appropriately
  • [ ] Subtotals and totals sum correctly
  • [ ] Margins and ratios are reasonable
  • [ ] Links to assumptions are correct
Raw lines 175 to 181
182### Balance Sheet (if applicable)
183- [ ] Assets = Liabilities + Equity (must balance)
184- [ ] All items link to appropriate schedules or roll-forwards
185- [ ] Beginning balances = prior period ending balances
186- [ ] Check row included and shows zero

Balance Sheet (if applicable)

  • [ ] Assets = Liabilities + Equity (must balance)
  • [ ] All items link to appropriate schedules or roll-forwards
  • [ ] Beginning balances = prior period ending balances
  • [ ] Check row included and shows zero
Raw lines 182 to 187
188### Cash Flow (if applicable)
189- [ ] Starts with correct income figure
190- [ ] Non-cash items added/subtracted appropriately
191- [ ] Working capital changes have correct signs
192- [ ] Ending Cash = Beginning Cash + Net Cash Flow
193- [ ] Cash balances are consistent across statements

Cash Flow (if applicable)

  • [ ] Starts with correct income figure
  • [ ] Non-cash items added/subtracted appropriately
  • [ ] Working capital changes have correct signs
  • [ ] Ending Cash = Beginning Cash + Net Cash Flow
  • [ ] Cash balances are consistent across statements
Raw lines 188 to 194
195### Supporting Schedules
196- [ ] Roll-forward schedules balance (Beginning + Changes = Ending)
197- [ ] Schedules link correctly to main statements
198- [ ] Calculated items use appropriate drivers
199- [ ] All periods are calculated consistently

Supporting Schedules

  • [ ] Roll-forward schedules balance (Beginning + Changes = Ending)
  • [ ] Schedules link correctly to main statements
  • [ ] Calculated items use appropriate drivers
  • [ ] All periods are calculated consistently
Raw lines 195 to 200
201### Debt/Financing Schedules (if applicable)
202- [ ] Beginning balances tie to sources or prior period
203- [ ] Interest calculated on appropriate balance (typically beginning)
204- [ ] Paydowns respect cash availability and priority
205- [ ] Ending balances cannot be negative
206- [ ] Totals sum tranches correctly

Debt/Financing Schedules (if applicable)

  • [ ] Beginning balances tie to sources or prior period
  • [ ] Interest calculated on appropriate balance (typically beginning)
  • [ ] Paydowns respect cash availability and priority
  • [ ] Ending balances cannot be negative
  • [ ] Totals sum tranches correctly
Raw lines 201 to 207
208### Returns/Output Analysis
209- [ ] Exit/terminal values calculated correctly
210- [ ] All relevant adjustments included
211- [ ] Cash flow signs are correct (negative for investment, positive for proceeds)
212- [ ] IRR/MOIC formulas reference complete ranges
213- [ ] Results are reasonable for the scenario

Returns/Output Analysis

  • [ ] Exit/terminal values calculated correctly
  • [ ] All relevant adjustments included
  • [ ] Cash flow signs are correct (negative for investment, positive for proceeds)
  • [ ] IRR/MOIC formulas reference complete ranges
  • [ ] Results are reasonable for the scenario
Raw lines 208 to 214
215### Sensitivity Tables (if applicable)
216- [ ] Grid dimensions are ODD (5×5 or 7×7) — there is a true center cell
217- [ ] Row and column axis values are symmetric around the base case (`[base-2Δ, base-Δ, base, base+Δ, base+2Δ]`)
218- [ ] Center cell output equals the model's actual IRR/MOIC — confirms the table is wired correctly
219- [ ] Center cell is highlighted (medium-blue fill `#BDD7EE`, bold font)
220- [ ] Row and column headers contain appropriate input values
221- [ ] Each data cell contains a formula (not hardcoded)
222- [ ] Each data cell shows a DIFFERENT value
223- [ ] Values move in expected directions (higher exit multiple → higher IRR, etc.)

Sensitivity Tables (if applicable)

  • [ ] Grid dimensions are ODD (5×5 or 7×7) — there is a true center cell
  • [ ] Row and column axis values are symmetric around the base case ([base-2Δ, base-Δ, base, base+Δ, base+2Δ])
  • [ ] Center cell output equals the model's actual IRR/MOIC — confirms the table is wired correctly
  • [ ] Center cell is highlighted (medium-blue fill #BDD7EE, bold font)
  • [ ] Row and column headers contain appropriate input values
  • [ ] Each data cell contains a formula (not hardcoded)
  • [ ] Each data cell shows a DIFFERENT value
  • [ ] Values move in expected directions (higher exit multiple → higher IRR, etc.)
Raw lines 215 to 224
225### Formatting
226- [ ] Hardcoded inputs are blue (0000FF)
227- [ ] Calculated formulas are black (000000)
228- [ ] Same-tab links are purple (800080)
229- [ ] Cross-tab links are green (008000)
230- [ ] All numbers are right-aligned
231- [ ] Appropriate number formats applied throughout
232- [ ] No cells show error values (#REF!, #DIV/0!, #VALUE!, #NAME?)

Formatting

  • [ ] Hardcoded inputs are blue (0000FF)
  • [ ] Calculated formulas are black (000000)
  • [ ] Same-tab links are purple (800080)
  • [ ] Cross-tab links are green (008000)
  • [ ] All numbers are right-aligned
  • [ ] Appropriate number formats applied throughout
  • [ ] No cells show error values (#REF!, #DIV/0!, #VALUE!, #NAME?)
Raw lines 225 to 233
234### Logical Sanity Checks
235- [ ] Numbers are reasonable order of magnitude
236- [ ] Trends make sense (growth, decline, stabilization as expected)
237- [ ] No obviously wrong values (negative where should be positive, impossible percentages, etc.)
238- [ ] Key outputs are within reasonable ranges for the type of analysis
240---

Logical Sanity Checks

  • [ ] Numbers are reasonable order of magnitude
  • [ ] Trends make sense (growth, decline, stabilization as expected)
  • [ ] No obviously wrong values (negative where should be positive, impossible percentages, etc.)
  • [ ] Key outputs are within reasonable ranges for the type of analysis

Raw lines 234 to 241
242## COMMON ERRORS TO AVOID
244| Error | What Goes Wrong | How to Fix |
245|-------|-----------------|------------|
246| Hardcoding calculated values | Model doesn't update when inputs change | Always use formulas that reference source cells |
247| Wrong cell references after copying | Formulas point to wrong cells | Verify all links, use appropriate $ anchoring |
248| Circular reference errors | Model can't calculate | Use beginning balances for interest-type calcs, break the circle |
249| Sections don't balance | Totals that should match don't | Ensure one item is the plug (calculated as difference) |
250| Negative balances where impossible | Paying/using more than available | Use MAX(0, ...) or MIN functions appropriately |
251| IRR/return errors | Wrong signs or incomplete ranges | Check cash flow signs and ensure formula covers all periods |
252| Sensitivity table shows same value | Formula not varying with inputs | Check cell references - need mixed references ($A5, B$4) |
253| Roll-forwards don't tie | Beginning ≠ prior ending | Verify links between periods |
254| Inconsistent sign conventions | Additions become subtractions or vice versa | Follow template's convention consistently throughout |
256---

COMMON ERRORS TO AVOID

ErrorWhat Goes WrongHow to Fix
Hardcoding calculated valuesModel doesn't update when inputs changeAlways use formulas that reference source cells
Wrong cell references after copyingFormulas point to wrong cellsVerify all links, use appropriate $ anchoring
Circular reference errorsModel can't calculateUse beginning balances for interest-type calcs, break the circle
Sections don't balanceTotals that should match don'tEnsure one item is the plug (calculated as difference)
Negative balances where impossiblePaying/using more than availableUse MAX(0, ...) or MIN functions appropriately
IRR/return errorsWrong signs or incomplete rangesCheck cash flow signs and ensure formula covers all periods
Sensitivity table shows same valueFormula not varying with inputsCheck cell references - need mixed references ($A5, B$4)
Roll-forwards don't tieBeginning ≠ prior endingVerify links between periods
Inconsistent sign conventionsAdditions become subtractions or vice versaFollow template's convention consistently throughout

Raw lines 242 to 257
258## WORKING WITH THE USER — SECTION-BY-SECTION CHECKPOINTS
260* **If the template structure is unclear**, ask before proceeding
261* **If the user's requirements conflict with the template**, confirm their preference
262* **After completing each major section**, STOP and verify with the user before continuing:
263 - **After Sources & Uses** → show the balanced table, confirm the plug is correct, get sign-off before building the operating model
264 - **After Operating Model / Projections** → show the projected P&L, confirm growth rates and margins look right, get sign-off before the debt schedule
265 - **After Debt Schedule** → show beginning/ending balances and interest, confirm the waterfall logic, get sign-off before returns
266 - **After Returns (IRR/MOIC)** → show the cash flow series and outputs, confirm signs and ranges, get sign-off before sensitivity tables
267 - **After Sensitivity Tables** → show that each cell varies, confirm the base case lands where expected
268* **If errors are found during verification**, fix them before moving to the next section
269* **Show your work** - explain key formulas or assumptions when helpful
270* **Never present a completed model without having checked in at each section** — it's faster to catch a wrong cell reference at the source than to trace it backwards from a broken IRR
272---
274**This skill produces investment banking-quality LBO models by filling templates with correct formulas, proper formatting, and validated calculations. The skill adapts to any template structure while ensuring financial accuracy and professional presentation standards.**

WORKING WITH THE USER — SECTION-BY-SECTION CHECKPOINTS

  • If the template structure is unclear, ask before proceeding
  • If the user's requirements conflict with the template, confirm their preference
  • After completing each major section, STOP and verify with the user before continuing:
  • After Sources & Uses → show the balanced table, confirm the plug is correct, get sign-off before building the operating model
  • After Operating Model / Projections → show the projected P&L, confirm growth rates and margins look right, get sign-off before the debt schedule
  • After Debt Schedule → show beginning/ending balances and interest, confirm the waterfall logic, get sign-off before returns
  • After Returns (IRR/MOIC) → show the cash flow series and outputs, confirm signs and ranges, get sign-off before sensitivity tables
  • After Sensitivity Tables → show that each cell varies, confirm the base case lands where expected
  • If errors are found during verification, fix them before moving to the next section
  • Show your work - explain key formulas or assumptions when helpful
  • Never present a completed model without having checked in at each section — it's faster to catch a wrong cell reference at the source than to trace it backwards from a broken IRR

This skill produces investment banking-quality LBO models by filling templates with correct formulas, proper formatting, and validated calculations. The skill adapts to any template structure while ensuring financial accuracy and professional presentation standards.

Raw lines 258 to 274

From anthropics/financial-services at 6056506, 2026-10-28. Skills read by DeepSeek V4.1 Flash on 2026-11-04. Summary and techniques by Claude Opus 5.5 on 2026-11-06.