den-dynamiske-rettsstaten/CHANGELOG.md
Kjell Tore Guttormsen 01d335e941
feat(forlop): time course and stability check from own numbers
New script paper/forlop.py reads the same input file as diagnose.py.
It checks whether the steering tolerates its own delay, places the
binding link in the model as the link with a queue, calibrates the size
and start of the increase so that the coordinated rule's first budget
decision sees the numbers in the file, and runs simulate_endo month by
month with and without measures. It also reports what the measure does
to the rest of the chain: police effort, the share diverted, and whether
the bottleneck moves to the links after it.

The example file reproduces section 9.5 and table 10: +19 % now, +12 %
after 12 months, capacity 1,31; 8,3 / 0,74 / 1,10 / 3,5 with measures and
68,7 / 0,65 / 1,26 without. The stability block reproduces section 9.3
with delay 11 and reactivity 3. The script declines to print a time
course when the steering is unstable, when the forecast has not settled
within the horizon, or when the model cannot build the backlog in the
file before the first decision.

sim.py is imported unchanged; paper/data is untouched. diagnose.py gives
identical output for both input files; the bottleneck selection is now a
function so forlop.py can reuse it, and true/false are rejected where a
number is expected. Reviewed by an independent agent; its 14 findings
are addressed.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
2026-11-10 16:20:31 +01:00

4.6 KiB
Raw Blame History

Changelog

All notable changes to this project will be documented in this file.

2026-11-10 — forløp over tid med egne tall

  • Nytt skript paper/forlop.py: leser samme fil som diagnose.py, sjekker om styringen tåler sin egen forsinkelse, og viser måned for måned hva som skjer når anbefalingen følges, sammenlignet med å ikke gjøre noe i kjeden. Det viser også hva tiltaket gjør med resten av kjeden: politiets innsats, andelen ledet utenom, og om skranken flytter seg til leddene etter. Eksempelfila gjenskaper avsnitt 9.5 (19 % nå, 12 % året etter, kapasitet 1,31 til slutt). Bare leddet som binder, har kø i modellen. Skriptet regner ikke forløpet når styringen er ustabil eller for nær grensen, eller når restansen i fila er større enn modellen rekker å bygge opp før første vedtak.
  • paper/eksempel_domstol.json har fått feltet "styring" (forsinkelse og reaktivitet). diagnose.py gir samme svar som før, og avviser nå true og false der det skal stå tall.
  • paper/sim.py: fire henvisninger i kommentarer og én overskrift i utskriften viste til gamle lignings- og tabellnumre. De er rettet til (12), (28) og tabell 3. Datafilene er uendret (22 av 22 byte for byte like).

2026-11-10 — kvalitetssjekk før publisering

  • Rettet fengselsanslaget i paper/norge_2025.json: avgangen var regnet fra «saker håndtert» og er nå regnet fra iverksatte saker (Kriminalomsorgen, Årsrapport 2025, s. 70). Køen til fengsel er skilt fra køen til fotlenke. Restansen i politiet er hentet direkte fra POD-rapporten (31 908 mot 30 295), og sidetallene til Domstoladministrasjonens årsrapport er rettet (s. 15 og 18).
  • Nytt resultat av den første norske diagnosen: fengsel og politi og påtale ligger likt (utnyttelse 1,09), og verktøyet peker på fengsel fordi køen der vokser raskest. Forskjellen er mindre enn usikkerheten i tallene. README sier dette og har flere forbehold.
  • paper/diagnose.py: forståelige feilmeldinger på norsk ved feil i inndata, samme terskel for utvidelse som i sim.py, melding når to ledd har samme utnyttelse, og riktigere tekst når ingen prognose er oppgitt, når skranken er første ledd, og når restansen vokser uten at noe ledd er over full utnyttelse.
  • Notatet (nå 58 sider): rettet formelen for politimetning i (13′), som manglet en faktor og bare stemte i referanselikevekten, laveste tillit i vedlegg C (0,33, ikke 0,47), ni tall som var avrundet eller gjengitt feil, én setning om følsomhet som var feil for en av parameterne, og sammendragets påstand om at mer politiinnsats ikke gir færre lovbrudd. Nedbyggingsregelen er beskrevet slik koden har den. Tre referanser er rettet og én lagt til.
  • Sammendraget og lysarkene: «ikke testet mot norske data» er erstattet med det som stemmer nå, lysark 8 beskriver mekanismen som i notatet, og lysark 16 oppgir adressen til repoet.

2026-11-10 — flaskehalsdiagnose med egne tall

  • Nytt skript paper/diagnose.py (første versjon): fra innstrømning, kapasitet, restanse og mål per ledd til leddet som binder, tiltakstypen og kapasitetsbehovet, etter notatets metode. Eksempelfila gjenskaper avsnitt 9.5. Forløpet over tid er ikke med ennå.
  • Første diagnose på offentlige norske tall (paper/norge_2025.json, med kilde per tall). Resultatet i denne første utgaven (politi og påtale 1,09, fengsel 1,06, tingrett 1,04) bygde på et feil fengselsanslag og er rettet i oppføringen over. diagnose.py godtar nå akseptabel restanse og saker som avsluttes uten behandling.

2026-11-10 — PDF-ene bygd på nytt fra kilden

  • Notatet (57 sider), sammendraget og lysarkene er bygd fra LaTeX-kilden i repoet og erstatter de første PDF-ene.
  • Notatet leder med modellen som et verktøy for å finne løsninger og har et gjennomregnet eksempel fra tall til anbefaling (avsnitt 9.5).
  • Nytt vedlegg C kobler hver ligning til koden i sim.py.
  • «Forholdet til tidligere arbeid» viser hva som finnes fra før, og hva som er nytt.
  • Rettet: intervallet for elastisiteten mellom politiinnsats og kriminalitet er nå gjengitt etter Chalfin og McCrary (2017).
  • Lysarkene (16) viser verktøyet og eksempelet før funnene. Arket om et fullt ledd i kjeden er erstattet av eksempelet.

2026-11-10 — konseptnotat versjon 2

  • Første publiserte versjon i repoet: konseptnotatet (49 sider), sammendraget og lysarkene som PDF, LaTeX-kilden og simuleringen sim.py med figurdata.
  • Versjon 2 kaller arbeidet et konseptnotat, presiserer at straffebud og strafferammer ligger fast, gjør domstolen til et gjennomregnet eksempel, legger til en avdempet styringsregel (regime E) og har et nytt avsnitt 10 om begrensninger og en veiplan.