Skip to main content
Glama

Valuein — SEC EDGAR Fundamentals & Smart-Money Data

Compute LBO Returns (IRR + MOIC)

compute_lbo
Read-onlyIdempotent

Leveraged buyout returns analysis: caller provides entry/exit multiples, leverage, and a hold period; the tool builds a Day-1 pro-forma opening balance sheet from the deal's own sources & uses (cash-free, debt-free convention — entry_debt = leverage_multiple x EBITDA, sponsor_equity = entry_enterprise_value + minimum_cash - entry_debt), then runs it through the same linked three-statement engine as project_three_statement (100% FCF-to-debt-paydown sweep by default). Returns MOIC and IRR (solved by bounded bisection over the sponsor's cash flow stream — interim dividends if any, plus exit equity proceeds). EBITDA is PROXIED by operating income (no separate D&A concept exists in the dataset) unless entry_ebitda_override is supplied — see result.entry_ebitda_is_proxy. result.irr.converged:false means no root was found (e.g. a total wipeout) — never a fabricated rate. Every simplification is listed in result.caveats[]. Tier: sp500+.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tickerYesStock ticker symbol of the LBO target, e.g. AAPL.
tax_rateNoEffective tax rate on positive pretax income. Default 0.21.
as_of_dateNoPoint-in-time cutoff (YYYY-MM-DD) for the seed period. Omit to use the latest knowable annual period.
minimum_cashNoMinimum operating cash left on the pro-forma opening balance sheet. Default 0.
exit_multipleNoEV/EBITDA multiple assumed at exit. Defaults to entry_multiple (no multiple expansion/contraction) when omitted.
cash_sweep_pctNoFraction (0-1) of each year's FCF swept to debt paydown. Default 1.0 (standard LBO — 100% sweep).
entry_multipleYesEV/EBITDA multiple paid at entry (e.g. 10 = 10x).
hold_period_yearsNoHold period in years (1-10). Defaults to 5.
leverage_multipleYesDebt/EBITDA raised at entry (e.g. 5 = 5x leverage).
dividend_payout_pctNoFraction (0-1) of net income distributed to the sponsor each year (dividend recap style). Default 0 — most LBOs return capital only at exit.
revenue_growth_rateYesFlat annual revenue growth rate applied every year of the hold (e.g. 0.05 = 5%/yr).
entry_ebitda_overrideNoOverride the EBITDA figure used for both entry and exit multiples. Without this, EBITDA is proxied by operating income.
interest_rate_on_debtNoAnnual interest rate on beginning-of-period LBO debt. Default 0.08 (leveraged debt typically prices above IG).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
_metaYesProvenance envelope — data lineage for every MCP response
resultYes
tickerYes
seed_period_endYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / properties / _meta / properties / fundamentals_as_of / description
      Previous value: -"ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt. Use THIS — not `last_updated` — when telling a user how current the fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to."New value: +"ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export."
  2. Changed2 schema fields changed
    • addedOutput schema / properties / _meta / properties / fundamentals_as_of
      Added value: +{
      +  "description": "ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt. Use THIS — not `last_updated` — when telling a user how current the fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / _meta / properties / price_as_of
      Added value: +{
      +  "description": "ISO timestamp when the price surfaces were last refreshed.",
      +  "type": "string"
      +}
  3. Added

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent annotations, the description discloses the cash-free/debt-free balance sheet convention with explicit formulas, the 100% FCF-to-debt sweep default, and the bounded-bisection IRR solver with honest converged:false semantics. It also flags the EBITDA-by-operating-income proxy, a material data limitation the annotations cannot convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense but disciplined: each sentence covers a distinct facet — purpose and mechanics, outputs and numerical method, the EBITDA proxy, failure semantics, and caveats/tier. The key outputs (MOIC, IRR) appear early, with no filler or repetition of schema content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex 13-parameter financial model, the description covers model construction, solver behavior on failure, the key data limitation, and directs the caller to result.caveats[] for exhaustive simplifications. Since an output schema exists, return-value documentation is handled elsewhere, making the description complete for correct invocation and interpretation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents all 13 parameters with 100% coverage, so the baseline is 3. The description adds value by explaining how parameters combine — entry_debt = leverage_multiple × EBITDA and sponsor_equity = entry_enterprise_value + minimum_cash − entry_debt — plus tie-ins such as the EBITDA proxy unless entry_ebitda_override is supplied.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific analytic ('Leveraged buyout returns analysis'), identifies the outputs (MOIC and IRR), and details the model mechanics. It is clearly distinct from sibling tools like compute_dcf and compute_accretion_dilution, which serve different valuation and M&A analyses.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states what the caller must supply (entry/exit multiples, leverage, hold period) and the access restriction (Tier: sp500+), giving a clear picture of the intended call. It does not explicitly route to alternatives such as generate_lbo_xlsx or state exclusions, so a small gap remains.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.