Help us improve
Share bugs, ideas, or general feedback.
From model-builder
Completes LBO Excel model templates for private equity deals by filling formulas, validating calculations, and applying adaptive professional formatting.
npx claudepluginhub anthropics/financial-services --plugin model-builderHow this skill is triggered — by the user, by Claude, or both
Slash command
/model-builder:lbo-modelThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
---
Completes LBO Excel model templates for private equity deals by filling formulas, validating calculations, and applying adaptive professional formatting.
Builds leveraged buyout (LBO) models in Excel with debt schedules, amortization, IRR, and MOIC analysis for private equity transactions and returns evaluation.
Use this skill for hands-on Excel financial model work: building models from scratch (SaaS, three-statement, revenue/COGS/EBITDA), auditing a spreadsheet for formula errors, explaining or mapping out model logic, converting cell references to named ranges, running what-if or scenario analysis, goal-seeking (what input value produces a target output?), or running Monte Carlo simulations. Also use when someone has inherited an unfamiliar model, calls it a "black box", or needs a specific formula (like WACC) checked. The trigger is a user who has a spreadsheet and needs to do something with it. Do NOT use for accounting theory, tax questions, investment advice, or finance questions with no model attached.
Share bugs, ideas, or general feedback.
This skill uses templates for LBO models. Always check for an attached template file first.
Before starting any LBO model:
examples/LBO_Model.xlsx as your starting point and populate it with the user's assumptionsIMPORTANT: 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.
If running inside Excel (Office Add-in / Office JS environment):
Excel.run(async (context) => {...})) directly — do NOT use Python/openpyxlrange.formulas = [["=B5*B6"]] — Office JS formulas recalculate natively in the live workbookrange.formulas, never range.values for anything that should be a calculationrange.format.font.color / range.format.fill.color for the blue/black/purple/green convention.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):
ws["D20"] = "=B5*B6"), then run recalc.py before deliveryThe rest of this skill is written with openpyxl examples, but the same principles apply to Office JS — just translate the API calls.
cell.value = "=B5*B6" (formula string), NOT cell.value = 1250 (computed result). The model must be dynamic and update when inputs change.examples/LBO_Model.xlsx or the user's provided template. Do not invent your own layout.=B4*B5, =SUM(), =-MAX(0,B4))=B9, =B45)=Assumptions!B5, ='Operating Model'!C10)#1F4E79 with white bold text#D9E1F2 with black bold text#F2F2F2 (or just white) — the blue font is the signal, fill is secondary#BDD7EE with black bold text$#,##0;($#,##0);"-" or $#,##0.0 depending on template0.0% (one decimal)0.0"x" (one decimal)0.00"x" (two decimals for precision)Before filling any formulas:
Before filling any formulas, examine the template thoroughly:
Map the structure - Identify where each section lives and how they relate to each other. Note which sections feed into others.
Understand the timeline - Which columns represent which periods? Is there a "Closing" or "Pro Forma" column? Where does the projection period start?
Identify input vs formula cells - Templates often use color coding, borders, or shading to indicate which cells need inputs vs formulas. Respect these conventions.
Read existing labels carefully - The row labels tell you exactly what calculation is expected. Don't assume - read what the template is asking for.
Check for existing formulas - Some templates come partially filled. Don't overwrite working formulas unless specifically asked.
Note template-specific conventions - Sign conventions, subtotal structures, how sections are organized, whether there are separate tabs for different components, etc.
For each cell that needs a formula, follow this hierarchy:
The following calculation patterns frequently cause issues across LBO models. Pay special attention when you encounter these:
[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.#BDD7EE) + bold font so the base case is visually anchored.$A5 for row input, B$4 for column input)python /mnt/skills/public/xlsx/recalc.py model.xlsx
Must return success with zero errors.
[base-2Δ, base-Δ, base, base+Δ, base+2Δ])#BDD7EE, bold font)| Error | What Goes Wrong | How to Fix |
|---|---|---|
| Hardcoding calculated values | Model doesn't update when inputs change | Always use formulas that reference source cells |
| Wrong cell references after copying | Formulas point to wrong cells | Verify all links, use appropriate $ anchoring |
| Circular reference errors | Model can't calculate | Use beginning balances for interest-type calcs, break the circle |
| Sections don't balance | Totals that should match don't | Ensure one item is the plug (calculated as difference) |
| Negative balances where impossible | Paying/using more than available | Use MAX(0, ...) or MIN functions appropriately |
| IRR/return errors | Wrong signs or incomplete ranges | Check cash flow signs and ensure formula covers all periods |
| Sensitivity table shows same value | Formula not varying with inputs | Check cell references - need mixed references ($A5, B$4) |
| Roll-forwards don't tie | Beginning ≠ prior ending | Verify links between periods |
| Inconsistent sign conventions | Additions become subtractions or vice versa | Follow template's convention consistently throughout |
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.