# Bidra med en forbedring Modellen er en første versjon, og notatet *Den dynamiske rettsstaten* er skrevet som en invitasjon til videre arbeid. Har du forbedret modellen, rettet en feil eller prøvd den mot data, tas det gjerne imot. Denne siden sier hvordan du sender det, og hva et bidrag må ha for at det kan vurderes. ## Slik sender du det Repositoryet ligger på en egen Forgejo-server der utenforstående ikke kan registrere seg, så bidrag kommer på e-post: **hello@fromaitochitta.com**. Send: 1. **Endringen**, som en patch eller som de endrede filene. - Har du klonet repositoryet med git, lag patchen med `git format-patch origin/main` (én fil per commit). - Har du en arbeidskopi fra pluginen (`rettsstat-modell/`), kan du legge den i git før du endrer noe (`git init`, `git add -A`, `git commit -m "utgangspunkt"`) og lage patchen med `git format-patch -1` etter at endringen er committet. Uten git: send filene du har endret eller lagt til, med stien i kopien. 2. **Utskriften fra kontrollen** på modellen med endringen: `python3 modell/kjor.py kontroll` i arbeidskopien eller klonen (den fulle, ikke `--rask`, og med numpy og scipy, så alle seks delene er kjørt). Kontrollen måler mot notatets egne sjekksummer, som står fast i `modell/kontroll.py`; endre ikke den fila eller `fasit/`. 3. **Scenariofilene** som viser hva endringen gjør, og gjerne sammendragene kjøringene skrev. 4. **En kort forklaring**: hva endringen gjør, hvorfor (hypotesen, gjerne med kilde), og hva kjøringene viser. ## Hva et bidrag må ha - **Én mekanisme eller én endring om gangen.** To endringer i samme bidrag gjør det umulig å si hva som ga hvilket utslag. - **For en utvidelse** (en ny mekanisme i `modell/utvidelser/`): et grensetilfelle som gjenskaper kjernen eksakt (største avvik `0.0`), og en test som viser det. `grensetilfelle()` og grensesnittet står i `docs/utvidelser.md`; testen av grensetilfellet følger med automatisk. Oppgi `GJENSKAPER_NOTATET` når standardverdiene gjenskaper noen av notatets scenariofiler, så sjekkes grensetilfellet også mot notatets datafiler, og legg gjerne til en test av det mekanismen gjør utenfor grensetilfellet. Kontrollen skal si «bit for bit som notatet» eller «innenfor toleranse». Sier den at utvidelsen ikke gjenskaper kjernen i grensetilfellet, er utvidelsen feil. - **For en endring i kjernen** (`modell/kjerne/`): listen over notatets resultater som flytter seg (kontrollen sier hvilke datafiler, utskrifter og scenariofiler, og hvor mye), hvilken figur eller tabell i notatet de hører til (`docs/modellkart.md`, del (d)), og hvorfor det er ment. Kjernen er en kopi av notatets kode, så en endring der må også inn i notatets repository før den kan tas inn i pluginen. - **Ingen persondata og ingen data fra enkeltsaker.** Modellen brukes på kategorier og aggregerte tall. Data til kalibrering må være aggregerte og ha en oppgitt kilde. - **Påstander bygger på kjøringer.** Et bidrag som sier at modellen «gir» noe, har med kjøringen som viser det. ## Det som er særlig velkomment Veiplanen i avsnitt 10 i notatet har åtte punkter. Disse kan gjøres i modellen: - **Kalibrering mot norske data** (punkt 5), blant annet politiets metningsnivå `K_sat` per sakstype, virkningen av ulike reaksjonsformer og om det finnes rekrutteringsterskler i bestemte kategorier. - **Estimering av faktisk reaktivitet og forsinkelse** i budsjett- og prioriteringsprosessene, og av stabilitetsgrensen for en inkrementell regel (punkt 2). - **En kjedemodell med kø og frafall i alle fire ledd**, flere sakstyper, ulike behandlingstider og tilbakeløp (punkt 3). I dag har bare domstolen kø. - **Simuleringer med målestøy, skjevhet og parameterusikkerhet** (punkt 4). I dag antar alle simuleringene et feilfritt estimat. - **Kostnadsfunksjoner i kroner** og en nytte-kostnadsvurdering av tiltakene, med forebygging som alternativ (punkt 6). - **En romlig versjon** med forskyvning mellom distrikter, og en modellprediktiv styring av hele tiltaksvektoren (punkt 8). Punkt 1 (flaskehalsdiagnose av hele kjeden på norske tall) og punkt 7 (beslutningsrettigheter, hjemler og budsjettmekanikk) er ikke modellkode, men innspill til dem tas også imot. Det samme gjelder rettelser, også små. ## Lisens Bidrag tas inn under MIT-lisensen, som resten av pluginen (`LICENSE`). Ved å sende et bidrag sier du deg enig i det, og i at du har rett til å gi det under den lisensen. ## Hva du kan vente deg Dette er et privat prosjekt uten fast bemanning. Det er ikke lovet noe svar innen en bestemt tid, og ikke at et bidrag blir tatt inn. Bidrag som følger punktene over, er lettest å vurdere.