Skip to main content
Glama

CRE Capital: capital stack calculator

Build a CRE capital stack

capital_stack
Read-onlyIdempotent

Runs the cre.capital stack builder on a deal: senior loan, mezzanine, preferred equity and the common equity left over, with an optional one-tier JV split. Returns each layer's amount, share of cost and attachment/detachment LTV and LTC, blended cost of capital, cost of debt and preferred, common equity IRR and multiple, unlevered IRR, senior and all-debt DSCR, coverage including pref current pay, debt yields, LP and sponsor IRRs, the exit and the yearly cash flows. Rates you leave out start from the current 10-year Treasury plus Altus Group Q2 2026 average quotes. Arithmetic on your inputs, not a quote or a projection.

Input Schema

NameRequiredDescriptionDefault
noiYesYear-one net operating income in dollars, e.g. 1400000.
valueNoAs-is value or price in dollars, used for the LTV figures. Defaults to total_cost.
hold_yearsNoHold period in whole years, 1 to 30. Default 5.
hurdle_pctNoCumulative, non-compounded preferred return to the JV partners in percent. Default 6.
total_costYesTotal cost in dollars: price plus closing costs plus capex, e.g. 20000000.
mezz_amountNoMezzanine loan amount in dollars (interest only). Default 0.
pref_amountNoPreferred equity amount in dollars. Default 0.
promote_pctNoPromote to the sponsor above the preferred return, in percent of the remaining cash. Default 20.
exit_cap_pctNoExit cap rate in percent applied to the next year's NOI, e.g. 7. Default 7.
lp_share_pctNoLP share of the common equity in percent; 0 or 100 turns the JV split off. Default 90.
mezz_rate_pctNoMezzanine rate in percent. Default: 10-year Treasury + 759 bp (Altus Q2 2026, fixed mezzanine).
pref_rate_pctNoPreferred return in percent. Default 13.57 (Altus Q2 2026, fixed preferred equity).
sale_cost_pctNoSale costs in percent of the sale price. Default 2.
senior_amountYesSenior loan amount in dollars, e.g. 11000000. Use 0 for no senior loan.
noi_growth_pctNoNOI growth per year in percent, e.g. 3. Default 3.
senior_rate_pctNoSenior loan rate in percent. Default: 10-year Treasury + 195 bp (Altus Q2 2026, 10-year fixed, LTV up to 65%).
pref_current_pctNoPart of the preferred return paid currently, in percent; the rest accrues to the exit. Default 8.
senior_amort_yearsNoSenior amortization in years; 0 means interest only. Default 30.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already cover safety (readOnly, idempotent, non-destructive, closed-world), so the description's job is to add semantics — and it does: omitted rates fall back to the 10-year Treasury plus Altus Q2 2026 average quotes, and results are arithmetic on the inputs rather than a quote or projection. It does not discuss validation failures or what happens at boundary inputs, but the default-derivation disclosure is genuinely useful.

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?

Two sentences, front-loaded with the core action and layer list, followed by the default policy and the 'not a quote' disclaimer. The long output-metric enumeration in sentence one is dense but justified since there is no output schema.

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

Completeness4/5

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

With 18 parameters and no output schema, the description carries return-value explanation and does so thoroughly (per-layer amounts, LTV/LTC, DSCR, IRRs, cash flows). Combined with the 100%-covered schema, an agent has nearly everything needed; only guidance on choosing this over the sibling cost/provider tools is absent.

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

Parameters3/5

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

Schema description coverage is 100%, with per-parameter descriptions already carrying the default rules (e.g. senior rate = Treasury + 195 bp) and ranges. The description only restates the general default policy, adding no parameter-level detail beyond what the schema provides, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('Runs the cre.capital stack builder on a deal') and enumerates the layers constructed: senior loan, mezzanine, preferred equity, common equity, optional JV split. This clearly separates it as a computation tool rather than a lookup, though no sibling tool is named to reinforce the distinction.

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

Usage Guidelines3/5

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

Usage is implied rather than stated: the tool is a calculator that fills in missing rates from Treasury plus Altus Q2 2026 quotes. There is no explicit 'use this when...' or 'prefer get_capital_costs for...' guidance, so the agent must infer the split from siblings on its own.

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.

Resources