NPLW · RVO · Warmtetransitie

Het dataportaal, vooringevuld

Gemeentelijke warmteprogramma's en uitvoeringsplannen worden automatisch gelezen en omgezet naar vooringevulde records voor het RVO dataportaal warmtetransitie. Het model is de vooringevulde belastingaangifte: de gemeente hoeft alleen te bevestigen.

40

gemeenten verwerkt

704

gebiedsrecords

487

records met officiële CBS-gebiedscode

87 tot 93%

van de bewijscitaten letterlijk verifieerbaar

Hoe het werkt

01

Document in de projectopslag

Het brondocument staat als PDF in de projectopslag.

02

Eerste leesronde

Het Europese taalmodel Mistral Medium 3 inventariseert alle transitiegebieden in het document.

03

Tweede leesronde per gebied

Alle circa 55 attributen van het NPLW-datamodel V1.3 worden ingevuld; ruim 40 daarvan als bewijscellen, de rest (gemeente-, document- en CBS-gegevens) deterministisch. Elke bewijscel krijgt een status en een letterlijk citaat met paginanummer.

04

CBS-koppeling

Gebiedsnamen worden gekoppeld aan officiële CBS wijk- en buurtcodes (exacte match, fuzzy match of maatwerkspoor), zodat het portaal de contouren zelf kan tekenen.

05

Hervatbare jobs

Het platform maakt het werk zelf af: lange extracties lopen als hervatbare jobs die de scheduler elke 15 minuten voortzet.

Elke waarde is controleerbaar

Elke ingevulde waarde is een bewijscel met vijf onderdelen:

  • waardede ingevulde waarde voor het attribuut
  • statusbeantwoord, deels, expliciet geen, onduidelijk of niet vermeld
  • citaateen of meer letterlijke citaten uit het plan, elk met document en paginanummer
  • vertrouwenhoe zeker het model is van de waarde: hoog, middel of laag
  • notitiesopmerkingen van het model, bijvoorbeeld over bekende V1.3-onduidelijkheden

Gemeenten controleren tegen de geciteerde pagina in plaats van het onderzoek opnieuw te doen.

Europees taalmodel, verplicht

Rijksoverheidsbeleid staat voor deze toepassing alleen een Europees taalmodel toe. Het standaardmodel is Mistral Medium 3, gehost in de EU. Gemini-varianten bestaan alleen voor interne vergelijkingstests.

Voor NPLW: stap voor stap

Zo haalt u zelf de vooringevulde gegevens op.

  1. 1Log in op enqualia.io.
  2. 2Open het project Warmteprogramma Analyse NL.
  3. 3Kies Playground en daarna de API Dataportaal Voorinvulling / Prefill (NPLW).
  4. 4Kies een gemeente uit de dropdown.
  5. 5Kies een action: records toont de gegevens, export bouwt de Excel (de download-link is 72 uur geldig), status toont welke gemeenten beschikbaar zijn (met recordtellingen en lopende jobs). De dekking per attribuut staat in het Excel-tabblad Dekking.

Een nieuw document laten verwerken

  1. 1Upload de PDF via de Storage-pagina naar de map dataportaal/sources/.
  2. 2Start action prepare met de gemeentenaam en het bestandspad.
  3. 3U hoeft daarna niets te doen: de verwerking loopt vanzelf door en na enkele uren staat de gemeente in de lijst.

Voor RVO: integratie

Alle acties lopen via één endpoint. Stuur een POST naar /api/run/dataportaal-prefill-v1 met de projectsleutel in de X-API-KEY header.

POST https://enqualia.io/api/run/dataportaal-prefill-v1
X-API-KEY: <api_key>
Content-Type: application/json
status

Overzicht van beschikbare gemeenten, recordtellingen en open jobs.

Verzoek

{ "action": "status" }

Antwoord (ingekort)

{
  "action": "status",
  "status": {
    "datamodel_versie": "V1.3 (17-04-2026, op één na laatste versie / second-to-last version)",
    "models": {
      "mistral-medium-3": { "gemeenten": 40, "records": 704, "cbs_gecodeerd": 487 }
    },
    "open_jobs": []
  },
  "model": "mistral-medium-3"
}
records

De portal-klare records van één gemeente als JSON, met optionele bewijscitaten (include_evidence).

Verzoek

{ "action": "records", "gemeente": "Rozendaal", "include_evidence": true }

Antwoord (ingekort)

{
  "action": "records",
  "result": {
    "gemeente": {
      "1.1 provincie": "Gelderland",
      "1.3 gemeente": "Rozendaal",
      "1.4 gemeentecode": "GM0277"
    },
    "gebieden": [
      {
        "naam": "Dorpskern",
        "soort": "buurt",
        "gebiedscode": "BU02770000",
        "geometrie_spoor": "buurtgrens",
        "attributen": {
          "actiedoelen": {
            "value": "isolatie en voorbereiding op aardgasvrij",
            "status": "beantwoord",
            "evidence": [
              {
                "doc": "warmteprogramma-rozendaal.pdf",
                "page": 12,
                "quote": "letterlijk citaat uit het plan"
              }
            ],
            "confidence": "hoog"
          }
        }
      }
    ]
  },
  "model": "mistral-medium-3"
}
export

Bouwt de Excel-deliverable in de projectopslag en geeft een download-link terug die 72 uur geldig is.

Verzoek

{ "action": "export", "gemeente": "Rozendaal" }

Antwoord (ingekort)

{
  "action": "export",
  "export": {
    "storage_path": ".../proj_baebf3bbb178/dataportaal/exports/Dataportaal_prefill_mistral-medium-3_rozendaal_20260813-141500.xlsx",
    "download_url": "https://storage.googleapis.com/...",
    "url_geldig_uren": 72,
    "gemeenten": 1,
    "records": 4
  },
  "model": "mistral-medium-3"
}
prepare

Verwerkt een nieuw brondocument uit de projectopslag als hervatbare job. Elke aanroep werkt een stuk af en geeft de voortgang terug.

Verzoek

{
  "action": "prepare",
  "gemeente": "Nieuwegein",
  "source_path": "dataportaal/sources/warmteprogramma-nieuwegein.pdf"
}

Antwoord (ingekort)

{
  "action": "prepare",
  "job": {
    "gemeente": "Nieuwegein",
    "phase": "gebieden",
    "cursor": 3,
    "n_gebieden": 9,
    "done": false
  },
  "done": false,
  "hint": "nog niet klaar: roep prepare nogmaals aan, of laat de platform-scheduler (elke 15 min) de job afmaken / not finished yet: call prepare again, or let the platform scheduler (every 15 min) finish the job"
}
sources

Toont de beschikbare brondocumenten in de projectopslag, direct bruikbaar als source_path bij prepare.

Verzoek

{ "action": "sources" }

Antwoord (ingekort)

{
  "action": "sources",
  "sources": [
    {
      "path": "dataportaal/sources/warmteprogramma-nieuwegein.pdf",
      "size_kb": 2048.5,
      "updated": "2026-08-13T14:02:11+00:00"
    }
  ],
  "note": "Deze paden zijn direct bruikbaar als source_path bij action=prepare. / These paths are valid source_path values for action=prepare.",
  "model": "mistral-medium-3"
}

Goed om te weten

  • Fouten komen terug als HTTP 200 met een error-sleutel in de body. Controleer dus de body, niet de statuscode.
  • De recordvorm volgt datamodel V1.3: categorie 1 en 2 (gemeente en document) per gemeente, categorie 3 tot en met 10 per transitiegebied.
  • Maatwerkspoor: een lege gebiedscode plus geometrie_spoor 'maatwerk' betekent dat de gemeente de contour zelf intekent.
  • Bekende V1.3-onduidelijkheden zijn als notities bewaard: attribuut 3.9 (eindjaar versus startjaar) en attribuut 1.6 (de RES-regiocode staat niet in de CBS-tabellen).

Eerlijk over de grenzen

  • De extractie werkt op de tekstlaag van documenten. Gescande PDF's zonder tekstlaag worden geweigerd in plaats van gegokt.
  • Detailtellingen, zoals het aantal woningen per gebied, staan vaak pas in uitvoeringsplannen en niet in warmteprogramma's.

Toegang nodig?

Mail voor toegang tot het project of een API-sleutel.

Proef in opdracht van NPLW. Datamodel V1.3 van 17-04-2026, de op een na laatste versie.