Dit is geen platte handleiding maar documentatie in vier lagen, voor vier lezers: wie het gebruikt, wie het idee wil begrijpen, wie het bouwt, en wie verder wil. Elke laag draagt een label dat zegt hoe lang hij meegaat.
Laag 1 — voor de gebruiker1Wat je ermee doet beweegt met de code
/conflictDe vier meters
- Eén pagina met vier meters naast elkaar: bewapening (per jaar), handel (per kwartaal), conflictevents (per week) en nieuwstoon (per dag). Elke meter toont een halve boog van 0 tot 100 met de wijzer op de score (50 = de mediaan van 2000–2013, boven 60 rood), de stand als woord — laden, vasthouden, ontladen of rust — de trend in punten, de laatste ruwe waarde, en een lijntje van de score over de afgelopen jaren, gekleurd per stand.
- Bij bewapening staat informatief ook de reeks in constante prijzen (SIPRI, mld USD) — niet gescoord, wel getoond omdat % bbp stijgt als het bbp krimpt (2009, 2020). In het dagbericht staat de gelijkloop: hoeveel lagen en deeltheaters tegelijk laden — een lezing, geen laag: een aanloop loopt gelijk, een incidentenreeks niet. Onder elke meter: wat er precies gemeten wordt, de basisperiode met het aantal basispunten, een link naar de volledige reeks (
/api/conflict/reeks?laag=…) en de bron. Er is geen totaalcijfer: de vier lagen worden niet opgeteld. - De vijfde meter, hybride (sinds 17-9-2026, per maand): het aandeel cyberincidenten van Rusland/Belarus tegen Europa in het hele EuRepoC-register, over twaalf maanden. Deze meter heeft een andere schaal: geen 0–100 maar de verrassing tegen het basisaandeel van 2000–2013 in deciban (dB), zonder plafond — 13 ≈ een kans van 5%, 20 = 1% (daarboven rood), elke 10 erbij een factor tien onwaarschijnlijker; de boog rekt mee met de hoogste waarde van de reeks. Onder de meter het aandeel met de telling (k / N), het basisaandeel p₀, en informatief de fysieke incidenten (sabotage, brandstichting, verkenning) uit het register van Schuurman (Leiden) — niet gescoord, want die reeks begint in 2022. Het register verschijnt als uitgave en loopt tot eind 2024: is het laatste punt ouder dan 500 dagen, dan staat er "geen actuele stand". De scores van deze meter zijn niet vergelijkbaar met die van de vier andere.
- Rechtsboven NL·EN; de themaknop rechtsonder. De pagina ververst zelf niets; de bronnen worden 's nachts bijgevuld.
/conflictHet dagbericht en vandaagbovenaan
- Eén regel per laag: de stand, de score, het verschil sinds gisteren, sinds een week en sinds een maand (in punten, rood omhoog, blauw omlaag), en hoeveel dagen, weken, kwartalen of jaren de laag al in deze stand staat.
- Vandaag, voorlopig: uit de kwartierbestanden van GDELT 2.0, elk uur bijgewerkt en geteld op binnenkomst — het aantal theaterevents, het aandeel conflict en de toon van vandaag tot nu. Dit is geen laag en telt niet in de standen; de standen lopen op complete dagen.
/conflictDe deeltheatersonder de meters
- De twee GDELT-lagen per deel van het theater — Baltisch & Noorden, Zwarte Zee & Oekraïne, Centraal-Europa, West & Zuid — elk met score, stand, trend en een lijntje, tegen zijn eigen basis 2000–2013. Bewapening en handel zijn EU-breed en niet te splitsen. Zo zie je waar het laadt terwijl het geheel stilstaat.
/conflictWissels en alertsRSS zonder account, mail na bevestiging
- De lijst van standwissels per laag en per deeltheater, in de volgorde waarin ze zijn geboekt (datum, laag, van → naar, score). Geboekt 's nachts na het bijvullen en elk uur met het uurwerk; verouderde lagen boeken geen wissel.
- RSS op
/api/conflict/wissels.xml, zonder account. Mail: vul je e-mailadres in en klik bevestigingsmail sturen; na de klik in de mail krijg je bij elke wissel één bericht — hoogstens één per laag per zes uur, nooit een herinnering, afmeldlink in elke mail. Een wissel is een feit (stand A → stand B op datum), geen alarm en geen advies.
/conflictDe actielusladder · register · afrekening
- De ladder zegt vooraf welke stand welke handelingsruimte opent (rust → waarnemen; vasthouden → aanwezigheid, communicatie; laden → versterken, sanctioneren, diplomatie, weerbaarheid; ontladen → verifiëren, de-escaleren, vastleggen). Het is een voorbeeldladder: doctrine hoort bij de gebruiker; elke versie wordt met sha256 bewaard en nooit herschreven. Daaronder: wat de huidige standen per laag en deeltheater nu openen.
- Het register: datum, laag of deeltheater, soort uit de ladder, wat er gedaan is, wie. Bij vastleggen worden de stand en score van dat moment bewaard; historische datums mogen (dan uit de blinde reeks).
- De afrekening na 90 dagen: score gedaald met tien of meer is ‘ontladen’, gestegen is ‘verder geladen’, anders ‘gelijk’, naast de basiskans dat de laag in die stand ook zonder actie zou dalen. Per soort actie: aantal, aandeel ontladen, basiskans. Historische voorbeelden (sanctiepakketten 2014 en 2022, Minsk, NAVO-versterking, Finland en Zweden) zijn gemarkeerd als demonstratie. Het plan van de lus is gehasht (
plan-actielus.md).
/conflictDenk mee — mens tegen machinehet voorspelpanel
- Vul een panelnaam in, kies een laag of deeltheater, zet met de schuif jouw kans dat de stand binnen 30 dagen wisselt en klik zet vast. Het model zet op hetzelfde moment zijn eigen kans: de historische wisselfrequentie van die laag sinds 2014 (begrensd tussen 1% en 99%). Eén open voorspelling per persoon per laag.
- Na 30 dagen — of eerder, zodra een wissel is geboekt — rekent de nachtlus af met de Brier-score (kwadraat van kans min uitkomst; lager is beter), jij naast het model. Het panel toont per naam het aantal voorspellingen, hoeveel afgerekend, en beide Brier-gemiddelden; daaronder de open en de afgerekende voorspellingen. Geen account: de panelnaam is de sleutel (bewaard in je browser). Geen advies — een gekalibreerd register, ook als aanbod voor een pilot met analisten.
/conflictHet bewijsde events achter het getal
- De conflictevents Rusland/Belarus ↔ Europa van de laatste dag met events: wie tegen wie, de soort (machtsvertoon, betrekkingen verbroken, dwang, geweld, gevecht, massaal geweld), de bron als link, het aantal artikelen en de toon. Uit de dagbestanden (compleet) en, voor vandaag, uit de kwartierbestanden (voorlopig). De bron-URL is de kwitantie.
/conflictDe blinde backtestonderaan dezelfde pagina
- Per laag een strook met de stand per maand van januari 2014 tot de laatste volle maand, in de vier kleuren, met de twee markeringen februari 2014 (Krim) en februari 2022 (invasie) als zwarte streep.
- Per markering: hoeveel van de zes maanden ervóór "laden" zeiden, en de stand op de markering zelf. Per laag: hoe vaak "laden" over de hele periode voorkwam — de alarmfrequentie. Er staat wat er staat; het woord voorspelling wordt niet gebruikt.
- Toets tegen de grondwaarheid. Onder de backtest ligt elke laag naast de doodenreeks van Uppsala (UCDP GED, gevechtsdoden per maand in Oekraïne, Georgië en Moldavië, tot 2024): de onsets uit de data (2008-08, 2014-04, 2022-02) met de standen in de zes maanden ervóór, de lead-lag (loopt de laag vóór op de doden of erachteraan — dan is het een spiegel), en de alarmprecisie en gevoeligheid van ‘laden’ tegen ≥ 200 doden binnen drie maanden. Verslag; wijzigt niets.
- De pagina zegt eerlijk wat v1 is: vanaf dag één de actuele lading per laag uit echte bronnen; de voorspelclaim hangt aan deze backtest en aan wat er nog komt.
Laag 2 — voor de denker2Het idee & de regels blijvend
Een conflict laadt lang en ontlaadt kort. Bewapening, handel, gedrag en toon zijn vier verschillende klokken die dezelfde spanning dragen, elk in zijn eigen tempo: het jaar, het kwartaal, de week, de dag. Daarom vier lagen en geen index: een som van vier klokken is geen tijd meer.
De maatlat is bevroren: de periode 2000–2013 (voor de handel 2002–2013) is de referentie waartegen alles daarna wordt gelezen, en die referentie beweegt nooit mee. Een score van 50 betekent "zoals de mediaan van toen", 100 "boven alles wat toen voorkwam". Dat is hetzelfde principe als het ondernemingsklimaat in Financial Weather en de referentie F in Support: een meter die zijn eigen nul bewaart, ook als de wereld verschuift.
De vier standen komen uit niveau en trend: laden als de score in het venster tien punten of meer stijgt, ontladen bij tien of meer daling, anders vasthouden boven de 60 en rust eronder. Deze regel is dezelfde niveau-plus-trend-regel die op 14-9-2026 in fase 0 op de HRV-data faalde. Hij krijgt hier zijn eigen toets. Het plan met alle verzamelingen en drempels is gehasht vóór er één stand ná 2013 werd berekend, en wordt niet achteraf bijgesteld — faalt de regel, dan wordt dat geboekt.
De vijfde laag en de maatlat zonder plafond. De uitkomst van v1 liet zien dat een afgekapte kwantielschaal verzadigt zodra de wereld buiten de basis komt te liggen. De hybride laag (17-9-2026, eigen plan, eigen hash) telt zeldzame gebeurtenissen — acht theaterincidenten op 420 in de basis — en leest daarom niet de rang maar de verrassing: hoe onwaarschijnlijk is dit aantal, gegeven het aandeel van toen? Die schaal heeft geen plafond. De standen hebben dezelfde vorm (trend ±10 = een factor tien in kans; vasthouden vanaf 20 = 1%). De blinde toets is geboekt: als alarm gefaald (de laag loopt drie maanden achter de doden aan), maar de schaal onderscheidt binnen het nieuwe regime waar de kwantielschaal vastzat. Vooraf genoteerde vertekeningen: het register codeert achteraf, de aandacht voor Rusland steeg na 2022, de staart van elke uitgave onderschat. Wij attribueren niets zelf.
Wat de meter bewust niet is: een sanctieteller als laag (die telling is nul zonder spreiding in de basis, dus onmeetbaar op deze maatlat — de pakketten staan als markeringen op de handelsmeter), een beleidsadvies, of een samengestelde "conflictindex".
Laag 3 — voor de bouwer3Hoe het werkt — bronnen, maatlat & API beweegt met de code
Context ónder the-maze zoals de bank en de Doorgang: maze/conflict/ — conflict.mjs (kern), route.mjs (HTTP), bronnen.mjs (Eurostat handel en gas, World Bank-terugval), sipri.mjs (SIPRI-xlsx), gdelt.mjs (één dagbestand, zip via zlib), gdelt-backfill.mjs (de historische aggregatie 2000–heden, lokaal, hervatbaar, uitvoer data/gdelt-dag.csv), maatlat.mjs (effenen, kwantiel, trend, stand), theater.mjs (de bevroren landenverzamelingen), plan.md + plan.sha256. Tabellen cw_reeks (bewapening, handel, gas), cw_gdelt (dagtellers theater), cw_gdelt_land (dagtellers per Europa-land → deeltheaters, theater.mjs DEELTHEATERS), cw_event (top-15 conflictevents per dag met bron-URL, vanaf 2015), cw_vandaag (GDELT 2.0, voorlopig, per binnenkomstdag), cw_v2_bestand, cw_gdelt_bestand, cw_import; alerts in alerts.mjs: cw_stand (laatst geboekte stand per laag/deel), cw_wissel (de wissels, met gemaild_op), cw_abonnee (e-mail, token, bevestigd, afgemeld) — mail via Brevo (bank/mail.mjs, BREVO_API_KEY + MAIL_FROM op the-maze); de actielus in actie.mjs: cw_ladder (versies, gehasht), cw_actie (datum, deel, laag, soort, omschrijving, door, horizon, stand/score bij, uitkomst, delta, basiskans; voorbeeld-vlag), afrekening rekenActiesAf() in de nachtlus; het panel in panel.mjs: cw_voorspelling (naam, laag, deel, kans, model_kans, deadline, uitkomst, brier, model_brier), afrekening rekenAf() in de nachtlus tegen cw_wissel. De backfill schrijft drie CSV's (dag, land, events) die bij start worden geïmporteerd.
Lagen. Bewapening: Rusland milex % bbp en Europese NAVO Σ milex USD / Σ bbp USD (SIPRI-bestand, bladen "Current US$" en "Share of GDP", bbp = milex / aandeel; World Bank MS.MIL.XPND.* als terugval; laagscore = gemiddelde van de twee deelscores; 3-jaarstrend). Handel: aandeel van Rusland in de extra-EU-handel (Eurostat ext_st_eu27_2020sitc, TRD_VAL, TOTAL, IMP+EXP), kwartaalgemiddelde, omgekeerd; sanctiepakketten uit een handtabel als markeringen. Conflictevents: dyadische events Actor1↔Actor2 tussen {RUS, BLR} en Europa (EU27 + GBR NOR ISL CHE UKR MDA GEO ALB MNE MKD SRB BIH), aandeel met CAMEO-rootcode 15–20, per week, 4-weeks geëffend. Nieuwstoon: AvgTone van dezelfde events gewogen met NumArticles, per dag, 30-daags geëffend, omgekeerd.
Vijfde laag (hybride). hybride-bouw.mjs (één bewerking, lokaal: EuRepoC eurepoc_dyadic_dataset_0_1.csv → data/eurepoc-maand.csv met maand, N, k; Schuurman-xlsx → data/sabotage-maand.csv), hybride.mjs (de lezer en de maatlat: p₀ = Σk/ΣN over 2000–2013; score = −10·log₁₀ P(X ≥ k | N, p₀), binomiaal, in de log-ruimte opgeteld zodat er geen onderloop en dus geen plafond is; venster 12 maanden, punt op de laatste dag van de maand; stand: trend ±10, vasthouden ≥ 20), plan-hybride.md + plan-hybride.sha256, uitkomst-hybride.md. De laag staat als vijfde in LAGEN (maatlat: "deciban", horizon 500 dagen) en loopt daardoor vanzelf mee in de backtest, de toets tegen UCDP, de wissels, het panel en de actielus. Een nieuwe uitgave van het register = het script opnieuw draaien en de CSV committen. Licentie EuRepoC: CC BY-NC 4.0.
Maatlat. Score = 100 × kwantielrang in de basisverdeling (mid-rank, buiten het bereik 0 of 100). Trend = score(t) − score(t − 90 dagen) (jaarlaag: 3 jaar). τ = 10. Backtest: stand per maand = de stand van het laatste punt op of vóór de laatste dag van die maand.
Bekende grenzen. GDELT's bronbestand groeide sterk in 2013 en 2015; de aandeel- en toonmaten dempen dat, maar het is een breuk in de blinde periode. De jaarlaag heeft 14 basispunten en springt in stappen van ~7. De handelsreeks van Eurostat begint in 2002. SIPRI publiceert in april; het bestand wordt via de databasepagina gevonden (sipri.mjs, zip + XML zonder afhankelijkheden). De gasinvoer uit Rusland (Eurostat nrg_ti_gasm, vanaf 2014) staat informatief bij de handelsmeter en wordt niet gescoord: de reeks ligt buiten de basis.
Laag 4 — voor de verbinder4Links, bronnen & verder beweegt met de code
- de metermaze.swarp.nl/conflict · het bevroren plan · memo voor Defensie: een weeglaag, geen fusielaag · uitkomst v1 (geboekt 16-9-2026)
- bronnenSIPRI Military Expenditure Database · World Bank MS.MIL.XPND · Eurostat ext_st_eu27_2020sitc · GDELT Project · EU-sancties tegen Rusland
- familieFinancial Weather (dezelfde discipline: bevroren maatlat, lading, geen index) · Support (referentie F en herstelindex R) · de Doorgang
- theorieladen en ontladen als de twee lagen van het net — zie de simulatie laden en ontladen; het falen van de vierstandenregel op HRV staat in
maze/fase0-standen/uitkomst.md - eerlijkheidplan gehasht vóór de blinde run; standen nooit bijgesteld; twee markeringen zijn geen statistiek; geen beleidsadvies