Skip to main content
Glama

Worth Sheet: apartment building value at today's loan rates

How loan rates move what a buyer can pay

rate_sensitivity
Read-onlyIdempotent

For an apartment building's net operating income, the price a financed buyer can carry and the income-limited loan size at a ladder of 10-year Treasury levels around today's (default -100 to +100 bp), at 80% LTV and 1.25x DSCR by default. Answers "what is my building worth to a buyer if rates drop half a point?".

Input Schema

NameRequiredDescriptionDefault
dscrNoMin debt service coverage, times. Default 1.25 (both agencies' term sheets).
ltv_pctNoMax loan-to-value, percent. Default 80 (Fannie Mae and Freddie Mac conventional term sheets).
shifts_bpNoMoves in the 10-year to test, in basis points. Default [-100,-50,-25,0,25,50,100].
tax_resetNoTrue if a sale resets the property tax bill to a share of the price; value is then solved with taxes at tax_rate_pct of price.
noi_annualYesNet operating income per year in US dollars, e.g. 300000.
spread_pctNoLender spread over the 10-year, percent. Default 1.75, the worksheet's placeholder (not a quote).
tax_rate_pctNoTax rate on the new value, percent of price (county millage as a percent). Default 1.5. Used only when tax_reset is true.
treasury_10yr_pctNo10-year Treasury yield to use, percent. Default: the latest daily par yield the site has (U.S. Treasury).
amortization_yearsNoAmortization in years. Default 30.
property_taxes_annualNoCurrent property taxes inside that NOI, US dollars. Needed only with tax_reset.

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 declare this a read-only, idempotent, closed-world computation, so the safety profile is covered. The description adds real behavioral substance beyond that: the sizing is income-limited via DSCR as well as LTV, the ladder is centered on today's Treasury by default, and the default scenario set is -100 to +100 bp. It does not describe the shape of the returned ladder (units, length), which is the remaining gap given no output schema.

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 with no filler; the key defaults and the ladder range are front-loaded ahead of the example question. The first sentence is syntactically dense and slightly hard to parse on a first read, which costs a point.

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?

For a ten-parameter pricing model with no output schema, the description conveys what is being solved (constrained price and loan size), the default scenario grid, and the default underwriting assumptions. What is missing is the return shape — whether the output is a table keyed by shift, and in what units — which matters for an agent that must interpret results.

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% and all ten parameters carry defaults and rationale (agency term sheets, placeholder spread, tax reset semantics), so the schema does the heavy lifting. The description only corroborates the 80% LTV, 1.25x DSCR and default shift range rather than adding new meaning. Baseline 3 is appropriate.

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?

The description states a specific computation on a specific resource: it solves the price a financed buyer can carry and the income-limited loan size across a ladder of 10-year Treasury shifts for a given NOI. That is far more than a restatement of the name. It does not explicitly name the sibling it is not (value_at_rate, get_rates_and_loan_limits), so an agent must infer the difference from the 'ladder' framing.

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 conveyed only by the illustrative question ('what is my building worth to a buyer if rates drop half a point?') and the ladder framing. There is no explicit when-to-use or when-not-to-use statement, and the sibling value_at_rate is never mentioned even though the two are close enough to confuse an agent.

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