Skip to main content
Glama
Rundum-Immo

immo.rundum/real-estate-appraisal

Official
by Rundum-Immo

Calculate German property depreciation

calculate_property_depreciation
Read-onlyIdempotent

Calculate German real-estate depreciation (AfA) estimates for residential property, including annual and monthly amounts, remaining useful life, and potential tax savings.

Instructions

Calculate an indicative German real-estate depreciation (AfA) estimate through AfaMax.

Use this for residential German property, including remaining useful life, annual/monthly AfA, statutory comparison, and estimated tax savings. For apartment buildings, pass figures for the whole building or calculate units separately. Ask for all eight modernization component states whenever possible: omitting them assumes no modernization and produces the highest possible remaining-useful-life benefit. The result is non-binding and does not replace tax or legal advice.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
localeNoLanguage for upstream explanations; defaults to German.
taxRateNoPersonal marginal tax rate as a decimal, e.g. 0.42.
landAreaNoLand area in square metres.
floorAreaYesLiving or usable floor area in square metres.
propertyTypeYesGerman residential property category.
modernizationNoKnown state of eight modernization components. Ask for all eight when possible.
purchasePriceNoTotal purchase price in EUR.
constructionYearYesOriginal year of construction.
includedInventoryNoMovable inventory included in the purchase price, in EUR.
standardLandValueNoStandard land value in EUR per square metre.
coreRenovationYearNoYear of a qualifying core renovation, if applicable.
modernizationLevelNoCoarse modernization level used when detailed component data is unavailable.
purchaseRelatedCostsNoPurchase-related costs in EUR.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
metaYes
inputYes
resultsYes
disclaimerYes
assumptionsYes
attributionYes
calculationIdYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds useful behavioral context beyond that by stating the estimate is 'indicative' and 'non-binding,' and by disclosing that omitting modernization components 'assumes no modernization and produces the highest possible remaining-useful-life benefit.' This gives the agent meaningful expectation-setting without contradicting the annotations.

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

Conciseness5/5

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

The description is front-loaded with the primary action and resource, and every sentence earns its place: purpose, usage scope, modernization guidance, and legal disclaimer. It is compact enough for a complex 13-parameter financial calculation tool while avoiding redundancy or filler.

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?

The description covers the core purpose, when to use it, apartment-building handling, an important assumption about missing modernization data, and the non-binding nature of the result. With annotations covering safety and an output schema present, the description is reasonably complete, though it could be stronger by explicitly naming the sibling tool and the situations that would route to it.

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?

Schema description coverage is 100%, so the baseline is 3. The description adds value beyond the schema by explaining the consequence of omitting the modernization object—it assumes no modernization and affects the remaining-useful-life result. It also gives guidance on how to pass floor-area figures for apartment buildings, which helps the agent reason about propertyType and floorArea semantics.

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 opens with a specific verb and resource: 'Calculate an indicative German real-estate depreciation (AfA) estimate through AfaMax.' This clearly identifies the tool's function and distinguishes it from the sibling calculate_purchase_price_allocation, which targets a different calculation even though the sibling is not named.

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 gives clear use context: 'Use this for residential German property' and provides special guidance for apartment buildings. It also instructs the agent to 'Ask for all eight modernization component states whenever possible,' but it does not explicitly state when not to use this tool or mention the alternative sibling, so it stops short of full when/when-not guidance.

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