Decision Engine

AI-ready residential energy decisions.

Transparent assumptions. Verifiable results. European energy models. Structured output.

What it does

It does not price a system. It answers what to do. One model sizes the heat pump to the building, lays a solar array over the roof surfaces it actually has, sizes storage, applies the German public support rules, computes three alternatives, and returns the decision with the reasons behind it. The website is one client of that model. So is your agent.

It is decide rather than system on purpose: an apartment, a commercial building, a heat network or a vehicle is the same question asked of a different building. The verb survives that.

Call it

GET  https://ione.energy/v1/decide?postcode=80331&floorArea=160
POST https://ione.energy/v1/decide

Both doors run the same logic. GET exists so a result has an address: an answer given to a person carries a link, and a link is a GET. Interface description: /openapi.json (OpenAPI 3.1).

A worked example — a 160 m² house in Munich built before 1979, original insulation, old gas boiler, gable roof facing south.

What comes back

{
  "decision":  "Replace the old gas boiler",
  "why":       [ "The monthly budget falls from €424 to €155 …", … ],
  "recommendation":     { "option": "full_system", "monthlyBudget": 155 },
  "alternatives":       [ { "option": "heating_only",   "monthlyBudget": 300 },
                          { "option": "full_system",    "monthlyBudget": 155 },
                          { "option": "equipment_only", "monthlyBudget": 105 } ],
  "components":         { "heatPump": …, "battery": …, "solar": …, "emitters": … },
  "economics":          { "publicSupport": …, "monthlyBudget": …, "annualEnergy": … },
  "missingInformation": [ { "field": "insulation",
                            "ask":   "Has the building been insulated since it was built?",
                            "changesMonthlyBudgetBy": { "low": 215, "high": 340 } } ],
  "nextQuestion":       "Has the building been insulated since it was built?",
  "confidence":         { "score": 0.64, "derivedFrom": "missingInformation …" },
  "sources":            { "solarYield": { "source": "PVGIS 5.2 …" }, … }
}

One call, or a conversation

missingInformation is the field to act on. Each entry is a question worth asking, with how far the monthly figure would move once it is answered — measured by running the model across the values the answer could take, not asserted. Ask the one at the top, call again with it, and the spread closes. That is the difference between a calculator and an engine an agent can hold a conversation with.

Why an agent can trust the number

Because it does not have to. Every answer carries assumptions, confidence and provenance: which figures were measured, which were assumed, from what source, and what lowered the confidence. An agent acting for a person can repeat that reasoning to them instead of asking them to take a figure on faith.

Solar yield comes from PVGIS 5.2 (European Commission JRC) per roof surface for the postcode given. Public support follows the German BEG Heizungsförderung with its 70 % share cap and €30,000 eligible-cost ceiling. Prices are gross, including VAT. No live electricity tariff and no bank scoring are connected yet, and the response says so.

What it is not

An estimate, never a quotation. Indicative example. Final pricing depends on the building, installation requirements, financing approval, energy use and available public support.

Reading, writing and consent

Reading is open: design as many systems as you like, no key, no registration. Writing — saving a configuration against a person’s contact details — happens only with that person’s explicit instruction, and is disallowed to crawlers in robots.txt.

Also published

G.T. GmbH · Berlin · An independent European home-energy platform.