Skip to main content
Glama

Rundum Immo Real Estate Appraisal

Calculate German purchase price allocation

calculate_purchase_price_allocation
Read-onlyIdempotent

Calculate a free, non-binding German property purchase-price allocation (Kaufpreisaufteilung) through AfaMax using the BMF Arbeitshilfe.

Use this to divide acquisition costs between non-depreciable land and the depreciable building. Inventory is deducted before allocation. A condominium requires both co-ownership values, and a residential/commercial building requires its commercial share category. Provide monthlyNetColdRent when known so the income method can be calculated; otherwise only the asset method is available. Comparative valuation is unavailable because this public contract excludes surveyor-only factors. The result does not replace tax or legal advice.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
localeNoLanguage for the disclaimer and AfaMax attribution link. Defaults to German.de
garagesNoNumber of enclosed garage spaces. Defaults to 0.
landAreaYesPlot area in square metres.
floorAreaYesLiving or usable floor area in square metres.
propertyTypeYesGerman residential property category.
purchaseDateYesDate of the notarized purchase contract in YYYY-MM-DD format; must be from 1990-01-01 through today.
commercialShareNoRequired for RESIDENTIAL_COMMERCIAL_BUILDING: whether the commercial share is under or over 50%.
constructionYearYesOriginal construction year; it cannot be later than the purchase year.
includedInventoryNoMovable inventory included in the purchase price, in EUR. It is deducted before allocation.
standardLandValueYesStandard land value (Bodenrichtwert) in EUR per square metre.
monthlyNetColdRentNoTotal monthly net cold rent in EUR. A positive value enables the income method; omitting or passing 0 leaves it unavailable.
totalPurchasePriceYesTotal notarized purchase price in EUR.
coOwnershipNumeratorNoCo-ownership numerator (Miteigentumsanteil); required with the denominator for a condominium.
purchaseRelatedCostsNoLand transfer tax, notary, land-register, and broker costs in EUR. Defaults to 0.
coOwnershipDenominatorNoCo-ownership denominator; required with the numerator for a condominium.
undergroundParkingSpacesNoNumber of underground parking spaces. Defaults to 0.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
metaYes
inputYes
appliedYes
methodsYes
skippedYes
degenerateYes
disclaimerYes
attributionYes
calculationIdYes
assetMethodDefaultsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnly and idempotent, but the description adds substantial behavioral context beyond them: free and non-binding, inventory is deducted before allocation, income method availability depends on monthlyNetColdRent, comparative valuation is excluded, and the result is not tax/legal advice. No contradiction with 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 compact and front-loaded with the primary purpose, then supplies only decision-relevant conditions. Each sentence adds value, and the legal disclaimer is placed last without weighing the text down.

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 16-parameter tool with an output schema, the description covers the key context an agent needs: what the calculation does, prerequisites for special property types, method availability, and limitations. Return details are covered by the output schema, so nothing critical is missing.

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

Parameters5/5

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

Schema coverage is 100%, so the baseline is 3, but the description meaningfully supplements the schema. It explains that includedInventory is deducted before allocation, that coOwnership numerator/denominator are both required for condominiums, that commercialShare applies only to RESIDENTIAL_COMMERCIAL_BUILDING, and that monthlyNetColdRent enables the income method versus the asset-only fallback.

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 a free, non-binding German property purchase-price allocation (Kaufpreisaufteilung)' and immediately clarifies the mechanism (AfaMax, BMF Arbeitshilfe). It states the core function—dividing acquisition costs between land and building—which differentiates it from the sibling calculate_property_depreciation.

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 provides explicit usage context: 'Use this to divide acquisition costs...' and details conditional requirements (condominium co-ownership values, commercial share category, monthlyNetColdRent enabling the income method). It does not explicitly name an alternative tool, but the contrast with depreciation is implied.

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.