# sha256 8617ed11c472eb6e47ddccb0e522aca5765d5a39f02663a9a003dc2368fccfc0 # Conflict Weather Gauge v1 — plan, bevroren vóór de blinde run Theater Europa–Rusland. Opdracht Hans 16-9-2026 ("bouw"), naar het patroon van Financial Weather (bevroren maatlat, kwantielschaal 0–100, midden 50, toestand per laag, géén samengestelde index). Dit plan wordt gehasht vóórdat één stand ná 2013 wordt berekend of bekeken. Wat hieronder staat, wordt niet achteraf bijgesteld; faalt de regel in de backtest, dan wordt dat geboekt. ## 1. Het theater (bevroren verzamelingen) - Rusland-zijde (actorlandcodes GDELT, ISO3): RUS, BLR. - Europa-zijde: EU27 (AUT BEL BGR HRV CYP CZE DNK EST FIN FRA DEU GRC HUN IRL ITA LVA LTU LUX MLT NLD POL PRT ROU SVK SVN ESP SWE) + GBR NOR ISL CHE + UKR MDA GEO + ALB MNE MKD SRB BIH. Turkije bewust niet (eigen theater). - Europese NAVO-landen (SIPRI-laag; huidige leden, over de hele periode dezelfde verzameling): ALB BEL BGR HRV CZE DNK EST FIN FRA DEU GRC HUN ISL ITA LVA LTU LUX MNE NLD MKD NOR POL PRT ROU SVK SVN ESP SWE GBR. Turkije niet. ## 2. De vier lagen (elk apart, nooit opgeteld) 1. **Bewapening (jaar)** — bron SIPRI via de World Bank-spiegel (MS.MIL.XPND.GD.ZS, MS.MIL.XPND.CD, NY.GDP.MKTP.CD). Twee deelreeksen: Rusland milex in % bbp; Europese NAVO milex als Σ milex USD / Σ bbp USD. Laagscore = gemiddelde van de twee deelscores. Spanning = hoger. 2. **Handel (kwartaal)** — bron Eurostat ext_st_eu27_2020sitc, TRD_VAL, TOTAL: aandeel van Rusland in de extra-EU-handel = (IMP_RU + EXP_RU) / (IMP_EXT + EXP_EXT), kwartaalgemiddelde van maanden. Spanning = lager aandeel (omgekeerd). De reeks begint 2002-01: de basis van deze laag is 2002–2013 (bewust genoteerd). EU-sanctiepakketten tegen Rusland staan als gebeurtenismarkeringen óp deze meter (tabel met datums, met de hand bijgehouden) — géén eigen genormaliseerde laag: in de basisperiode is die telling nul zonder spreiding. 3. **Conflictevents (week)** — bron GDELT 1.0 eventbestanden (jaar 1979–2005, maand 2006-01–2013-03, dag vanaf 2013-04-01; hetzelfde formaat tot vandaag). Dyadische theaterevents = Actor1CountryCode aan de ene zijde én Actor2CountryCode aan de andere (beide richtingen). Conflict = EventRootCode 15–20 (force posture, reduce relations, coerce, assault, fight, mass violence); protest (14) niet. Laagwaarde per week = conflictevents / alle dyadische theaterevents (aandeel, ongewogen tellingen) — een aandeel omdat GDELT's bronbestand sinds 2000 vele malen gegroeid is. Spanning = hoger. 4. **Nieuwstoon (dag)** — zelfde dyadische theaterevents, AvgTone gewogen met NumArticles, per dag. Spanning = lagere toon (omgekeerd). ## 3. Normalisatie (bevroren basisperiode 2000–2013) - Per laag wordt de reeks eerst geëffend: dag → 30-daags lopend gemiddelde; week → 4-weeks lopend gemiddelde; kwartaal en jaar ongewijzigd. - Score = 100 × empirische kwantielrang van de geëffende waarde binnen de basisverdeling 2000–2013 (voor de handel 2002–2013), georiënteerd zodat 100 = meeste spanning; buiten het basisbereik wordt afgekapt op 0 of 100. De mediaan van de basis is dus 50. De jaarlaag heeft 14 basispunten en springt daardoor in stappen van ~7; dat is grof en wordt zo getoond. ## 4. De toestand per laag (niveau + trend) - Trend = score(t) − score(t − 90 dagen) voor dag-, week- en kwartaallaag; score(t) − score(t − 3 jaar) voor de jaarlaag. - τ = 10 punten (één deciel van de basis; niet aan data ontleend). - laden: trend ≥ +10 · ontladen: trend ≤ −10 · anders: vasthouden als score ≥ 60, rust als score < 60. - Dit is dezelfde niveau-plus-trend-regel die op 14-9-2026 in fase 0 op de HRV-data faalde (BA 0,313). Hier krijgt hij zijn eigen toets; niets wordt achteraf bijgesteld. ## 5. De backtest (blind over 2014-01 … heden) - Instrument bevroren op de basis; standen berekend per maand (stand op de laatste dag met data van de maand), per laag, van 2014-01 tot de laatste volledige maand. Markeringen: 2014-02 (Krim) en 2022-02 (invasie). - Gerapporteerd per laag: de stand per maand (tabel + CSV); per markering het aantal maanden "laden" in de zes maanden ervóór; en het totale aantal "laden"-maanden over de hele blinde periode (de alarmfrequentie). Er wordt geen woord "voorspelling" gebruikt: twee gebeurtenissen zijn geen statistiek. - Bekende breuk: GDELT's bronbestand groeide sterk in 2013 en 2015; de aandeel- en toonmaten dempen dat, de breuk wordt in het verslag gemarkeerd. ## 6. Wat v1 wel en niet is Vanaf dag één toont de meter de actuele lading per laag uit echte bronnen. De voorspelclaim hangt aan de backtest en die draait vanaf dezelfde dag mee. Geen beleidsadvies, geen samengestelde index. --- # sha256 4c1c848c28f15433a35338f56577ad41a371663d1c22e5ae49660fdbf159b825 # Conflict Weather — de vijfde laag (hybride), plan bevroren vóór de blinde run 17-9-2026. Plan v1 (8617ed11…) en zijn uitkomst blijven staan; dit plan voegt één laag toe en wijzigt niets aan de vier bestaande. Het wordt gehasht vóórdat één waarde ná 2013 van deze laag is berekend of bekeken. Bij het opstellen is van de bron alleen bekeken: de kolomnamen, en de tellingen per jaar 2000–2013 (de basis). Wat hieronder staat wordt niet achteraf bijgesteld; faalt de laag, dan wordt dat geboekt. ## 1. Bron en grootheid - **Gescoord: cyber.** EuRepoC — European Repository of Cyber Incidents, Global Dataset 1.3 (Zenodo 10.5281/zenodo.14965395, maart 2025; incidenten met start 2000-01-01 … 2024-12-31; licentie CC BY-NC 4.0). Bestand: `eurepoc_dyadic_dataset_0_1.csv` (één rij per initiator–ontvanger-dyade per incident). - Eenheid = het incident (`incident_id`, uniek geteld), gedateerd op `start_date`; rijen zonder geldige startdatum vallen af. - **Theaterincident** = een incident met ten minste één dyade waarin `initiator_alpha_2` ∈ {RU, BY} én `receiver_country_alpha_2_code` ∈ de Europa-zijde van plan v1 §1 (ISO2). Alleen de vastgestelde ("settled") attributie van het register; wij attribueren niets zelf. - **Laagwaarde per maand** (gedateerd op de laatste dag van de maand): over het venster van de twaalf maanden tot en met die maand, k = aantal theaterincidenten, N = aantal incidenten in het hele register. Het aandeel k/N, niet de telling — om dezelfde reden als bij GDELT: het register groeit (2000: 3 incidenten, 2013: 128). - **Informatief, niet gescoord: sabotage.** Schuurman, Russian Operations Against Europe Dataset (Leiden, Harvard Dataverse 10.7910/DVN/TQ0FMQ, v4, 12-1-2026, CC BY 4.0): fysieke incidenten per maand vanaf 2022-02, met categorie. Ligt geheel buiten de basis en kan er dus niet tegen worden genormaliseerd (zelfde regel als de gasinvoer, addendum v1 punt 2). Telt niet in de stand. - Kabels, GPS-storing en luchtruimschendingen hebben geen open register met een reeks vóór 2014; ze komen alleen in de laag voor zover Schuurman ze telt (informatief). ## 2. Maatlat zonder plafond (de les van v1) De basis telt 8 theaterincidenten op 420 (2000–2013): de meeste maanden nul. Een kwantielschaal zou bij het eerste incident op 100 slaan en daar blijven — de verzadiging van v1. Daarom: - p₀ = Σk / ΣN over alle incidenten met start in 2000-01 … 2013-12, één keer berekend, bevroren. - Score(t) = −10 · log₁₀ P(X ≥ k | N, p₀), X binomiaal — de verrassing tegen de basis in deciban. k = 0 → score 0. Geen afkapping: 13 ≈ P 0,05 · 20 = P 0,01 · 30 = P 0,001 · enzovoort. - De score is dus géén kwantiel 0–100 en is niet vergelijkbaar met de scores van de vier andere lagen; zo wordt hij ook getoond. ## 3. De toestand (zelfde vorm, vooraf gekozen drempels) - Trend = score(t) − score(t − 90 dagen). τ = 10 (één orde van grootte in kans). - laden: trend ≥ +10 · ontladen: trend ≤ −10 · anders vasthouden als score ≥ 20 (P ≤ 0,01), rust als score < 20. De drempels zijn conventies (1%, een factor tien), niet aan de data ontleend. - Dit is dezelfde niveau-plus-trend-vorm die tweemaal faalde (HRV 14-9, v1 16-9). Hier krijgt hij een maatlat zonder plafond; of dat genoeg is, zegt de toets. ## 4. De blinde toets - Blind: 2014-01 … 2024-12 (het einde van het register; gelijk aan het UCDP-venster). - Gerapporteerd exact zoals v1 §5 en addendum 5: stand per maand; per markering (2014-02, 2022-02) en per UCDP-onset het aantal "laden" in de zes maanden ervóór; alarmfrequentie; lead-lag (Spearman score(t) tegen log(1+doden(t+lag)), lag −6…+6); alarmprecisie en gevoeligheid (laden → ≥ 200 doden binnen drie maanden). Negatieve lag = spiegel, geen meter — even hard gelezen als bij de andere lagen. - Het woord voorspelling valt niet. ## 5. Bekende vertekeningen (vooraf genoteerd, geen excuus achteraf) 1. **Terugblik.** Het register is vanaf 2022 opgebouwd en codeert het verleden achteraf. De toets leest het register zoals het in 2025 was, niet zoals het op het moment zelf bekend was; attributie komt maanden tot jaren na het incident. De toets is daardoor optimistischer dan een echte meter ooit kan zijn. Een positieve lead-lag bewijst dus niet dat de laag in het echt vooruit had gelopen. 2. **Aandacht.** Na 2022 kijkt iedereen naar Rusland; de kans dat een incident wordt opgenomen en aan Rusland toegeschreven is gestegen. Het aandeel dempt de groei van het register, niet deze verschuiving. 3. **Staart.** De laatste twaalf maanden van elke uitgave onderschatten k (attributie loopt achter). 4. **Actualiteit.** Het register verschijnt als uitgave, niet als stroom. Horizon van de laag: 500 dagen na het laatste punt; daarna "geen actuele stand", nooit doortrekken. Op 17-9-2026 is de laag dus zonder actuele stand tot een nieuwe uitgave verschijnt. Dat wordt zo getoond. 5. **Licentie.** EuRepoC is CC BY-NC: niet-commercieel. Voor een betaalde dienst is toestemming van EuRepoC nodig — een stap van de opdrachtgever. ## 6. Wat deze laag wel en niet is Een vijfde meter naast de vier, nooit opgeteld. Geen alarm tot de toets anders zegt. Eigen attributie doen wij niet; de laag leest wat het register heeft vastgesteld.