{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/immokit-ai/json-schema/immokit-ai-bodenwert-response-schema.json",
  "title": "BodenwertResponse",
  "x-generated": "2026-11-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/immokit-ai-openapi.json#/components/schemas/BodenwertResponse",
  "type": "object",
  "properties": {
    "brw_input_euro_pro_m2": {
      "type": "number",
      "description": "The official Bodenrichtwert you provided (EUR/m²)."
    },
    "gfz_referenz": {
      "type": "number",
      "description": "Reference GFZ the value is based on (wertrelevante GFZ)."
    },
    "gfz_tatsaechlich": {
      "type": "number",
      "description": "Actual or permitted GFZ of the subject plot."
    },
    "koeffizient_referenz": {
      "type": "number",
      "description": "Conversion coefficient K(gfz_referenz) = 0.6·√GFZ + 0.2·GFZ + 0.2."
    },
    "koeffizient_tatsaechlich": {
      "type": "number",
      "description": "Conversion coefficient K(gfz_tatsaechlich)."
    },
    "faktor": {
      "type": "number",
      "description": "Conversion factor K(gfz_tatsaechlich) / K(gfz_referenz)."
    },
    "bodenrichtwert_tatsaechlich_euro_pro_m2": {
      "type": "number",
      "description": "The actual (density-adjusted) Bodenrichtwert for the plot (EUR/m²)."
    },
    "grundstuecksflaeche_m2": {
      "type": "number",
      "description": "Plot area — present only when `flaeche` was supplied."
    },
    "bodenwert_euro": {
      "type": "number",
      "description": "The Bodenwert (total plot value) — ONE canonical total field. Present only when `flaeche` was\nsupplied. Without a Vorderland/Hinterland split: bodenrichtwert_tatsaechlich × flaeche. With a\nsplit: vorderland_wert_euro + hinterland_wert_euro (same field, now blended).\n"
    },
    "hinterland_flaeche_m2": {
      "type": "number",
      "description": "Echo of the input (m²). Present only when the Vorderland/Hinterland split was used."
    },
    "hinterland_faktor": {
      "type": "number",
      "description": "Echo of the input (0 to 1). Present only when the Vorderland/Hinterland split was used."
    },
    "vorderland_flaeche_m2": {
      "type": "number",
      "description": "grundstuecksflaeche_m2 minus hinterland_flaeche_m2. Present only when the Vorderland/Hinterland split was used."
    },
    "vorderland_wert_euro": {
      "type": "number",
      "description": "Front-plot share of the total value (bodenrichtwert_tatsaechlich × vorderland_flaeche_m2).\nPresent only when the Vorderland/Hinterland split was used. This breakdown is additional\ndetail — the MCP tool's text summary deliberately mentions only the ONE total, bodenwert_euro.\n"
    },
    "hinterland_wert_euro": {
      "type": "number",
      "description": "Rear-plot share of the total value (bodenrichtwert_tatsaechlich × hinterland_faktor ×\nhinterland_flaeche_m2). Present only when the Vorderland/Hinterland split was used.\n"
    },
    "modell": {
      "type": "string",
      "enum": [
        "amtliche-standardformel"
      ],
      "description": "The calculation model used."
    },
    "formel": {
      "type": "string",
      "description": "Human-readable description of the applied formula."
    },
    "hinweis": {
      "type": "string",
      "description": "Optional note. Can combine (space-joined) an extrapolation warning when a GFZ is outside the\nusual range with the mandatory Vorderland/Hinterland note (always present when that split is\nused — it is not an official model) and, depending on how far `hinterland_faktor` sits outside\nthe documented 0.10–0.50 core range, one additional band-specific note.\n"
    },
    "disclaimer": {
      "type": "string",
      "description": "Mandatory note that this is an orienting conversion using the standard formula — not the\nzone-specific official conversion table, and not a market value.\n"
    }
  },
  "required": [
    "brw_input_euro_pro_m2",
    "gfz_referenz",
    "gfz_tatsaechlich",
    "koeffizient_referenz",
    "koeffizient_tatsaechlich",
    "faktor",
    "bodenrichtwert_tatsaechlich_euro_pro_m2",
    "modell",
    "formel",
    "disclaimer"
  ]
}