How it works · For your data team

Built for the decision-owner. Documented for your data team.

The people who own the expansion decision get a platform they can run themselves. The data and engineering teams behind them get a documented API, an MCP server, and full governance, so IRIS fits into your stack instead of becoming another thing to work around. Neither team has to do the other's job. And the method fits the data: a transparent statistical model your team can open and check where the data is thin, and machine learning where it earns its place.

A data and engineering team at work on an open-plan office floor

How it connects

Three ways to reach the forecast

One forecast, three ways to reach it. Every path returns the point estimate with its 80% interval, and your data stays in the EU and yours.

Input

Your data

Your store, customer and transaction records.

Hosted in the EUStays yours
Model

IRIS model

Your own calibrated model scores locations and runs scenarios.

Out-of-sample80% interval
Access
REST APIQuery from your own stack
MCP serverPoint your agent at the engine
ExportCSV, XLSX, GeoJSON. No lock-in
Destination

Your stack

BI and dashboards, your own apps, and AI assistants.

Point estimate plus its  80%  interval Validated  out-of-sample Your data stays in the  EU and yours

A documented REST API

IRIS isn't a closed platform your technical team has to work around. A full, documented REST API sits behind everything you see in the app, so your data and engineering teams can integrate IRIS into your own systems rather than treat it as a dead end.

Every forecast the API returns carries the same honest signature the app shows: a point estimate, its 80% interval, and a flag confirming the model was validated out-of-sample. No score arrives without the interval around it.

  • Read scores, predicted sales and the drivers behind them for any location, directly, instead of exporting screenshots.
  • Run scenarios end to end: open, close or relocate locations, process the scenario, and compare its output against a baseline to read the network impact.
  • Bulk operations: create locations in one call, and export scenarios, locations or areas as CSV or XLSX.
  • Role-based access: Reader, Editor and Owner roles control who can read, edit or export a given model.

Full API documentation is available on request during onboarding.

A documented REST API

A built-in assistant that never sees your raw data

The assistant inside the platform is private by design. It calls the same functions the API exposes and only ever sees the result, a score, a forecast, an impact summary, never your underlying store, customer or transaction records. Your team gets an assistant that speeds up the work without handing sensitive data to a language model.

CALLiris.forecast_location(4012)
200 OK
// the assistant calls an IRIS tool, not your database
{
  "predicted_sales": 1200000,
  "interval_80": [1000000, 1400000],
  "site_score": 84,
  "validated_out_of_sample": true
}
// returned to the model: the result only
// never in the payload: store, customer or transaction rows
Calls IRIS tools, not your database Sees results, never raw records Runs inside the platform No raw data handed to a language model

Or bring your own agent

For power users, IRIS exposes an MCP server, so your team can point their own enterprise agents at it, from Claude and ChatGPT to an in-house tool. Ask in plain language and the agent runs the work through IRIS: forecast a site, open, close or relocate a location, and read the network impact back, all against your own data. The agent does the orchestration; IRIS does the modelling, and every number it returns is one you can trace and defend.

About this demo: every figure is an illustrative sample, not a measurement of any client. A working demo on sample Amsterdam data: a real slice of IRIS, not the full platform. Book a demo to run it on your own market and stores.

assistantMCP
youWe're opening a new site in Amsterdam Centrum. How much of its trade is genuinely new, and how much comes from stores we already run?
iris add_site(scenario="Amsterdam Centrum")
iris scenario_process_and_wait()
iris scenario_output_compare(base_scenario_id=8801)

About 44% of the new site's catchment is genuinely new demand; the other 56% overlaps stores you already run. The pull lands on four nearby Burgr sites: 13 and 14 give up about 27% of their catchment each, 15 gives up 22%, and 16 gives up 17%. It's on the map, new capture in blue, cannibalised in red.

A still frame of the IRIS product. Illustrative sample.

Why not a general-purpose chatbot?

Site selection is a spatial problem, not a language one

A revenue forecast is arithmetic over who can reach a site, what they will spend, and which rivals sit in the way, checked against the stores you already run. A general-purpose chatbot has none of that: no map of your estate, no calibration on your stores. Ask it directly and the confident figure it returns has nothing underneath it.

The tool

Revenue is arithmetic over geography

A forecast weighs who can reach a site, what they spend, and which rivals block them, checked against stores you already run. Language fluency does not turn a few hundred stores into that spatial model.

Calibration

Confidence is not calibration

A chatbot's certainty is a property of its prose, not of your geography. On thin data, a narrow, confident band is not accuracy. It is a number lying to you politely.

Auditability

A number you cannot open is not an answer

You cannot open a chatbot's driver, disagree with it, override it, and still have the number run. IRIS attaches the drivers and dependency charts to every score, so you can argue with it before you sign a lease.

The division of labour

The assistant drives, IRIS models

Point a chatbot at IRIS through the MCP server and it handles the language while IRIS does the modelling. The model becomes your interface to the method, never a substitute for it, and every number returns with its 80% interval and out-of-sample flag.

A fluent answer ends the conversation. A traceable one lets you keep asking, until the number is one you can defend in the room where the capital is committed.

Built and hosted in the EU, and yours to keep

Everything your team reaches through the API and MCP runs on EU infrastructure. Your data is stored, and every forecast is processed, inside the bloc, with no transfer to third countries. It stays yours.

Hosted in the EU GDPR-aligned No US mobile panel Your data trains only your model Full export, yours to keep

On GDPR: IRIS processes almost no personal data. The location signals behind a forecast are hex-aggregated and k-anonymised, so the review your procurement team runs is short, not a project, and the DPA and data-flow note they need are on file.

The full ownership, portability and no-shared-training detail lives in trust and data protection. The methodology covers the forecasts themselves.

Run it on your own data

Bring your data or engineering lead and put real history through it. Book a demo to walk the API and MCP first, then the Validation Sprint measures how good your past site calls really were, and estimates the accuracy IRIS would hit on stores of your own the model was never shown, mostly one person pulling exports across a kickoff and a results session. It starts at €4,000 for the Kick Start, €12,000 all-in, and that €12,000 is the first build sprint rather than a separate study, so it credits in full if you proceed. The report is yours to keep either way.