Foto: Umberto / Unsplash

Del plattformen · kapittel 8

Faste kjøringer, drift og overvåkning

Portalen holder seg selv ved like gjennom et sett faste jobber. Her er hele kjøreplanen, hva som fortsatt gjøres for hånd, og hvordan vi får vite når noe ryker.

Kjøreplanen

Portalen passer ikke seg selv, men den gjør det meste av arbeidet uten at noen ber om det. 33 faste jobber holder den i gang, og 22 av dem går etter en fast plan framfor å vente på at noen trykker på noe. De resterende 4 håndterer interne verktøy og er ikke listet her.

Oversikten under er ikke skrevet inn. Den leses ut av jobbene selv hver gang tallgrunnlaget oppdateres, og en ny jobb som mangler en beskrivelse stopper oppdateringen framfor å bli utelatt i stillhet. Det er hele grunnen til at siden finnes: en liste noen må huske å vedlikeholde, blir feil.

DØGNET, NORSK TIDMånedlig uttrekk fra NAVs statistikkbankÅrlig uttrekk fra NAVs statistikkbankOppdater teknisk dokumentasjonHendelsesloggDaglig datahentingRydd testområder i datalageretNAVs statistikknotater om arbeidsavklaringspengerStatistisk sentralbyrå til datalageretNAVs statistikknotater om uføretrygdNorges Bank til datalageretKodesjekkEvaluering av spørresvareneForeldelsesvaktDatamodell-dokumentasjonNyhetsbildetMålinger av spørresvareneVakt for datalageretBrønnøysundregistrene til datalageretUkentlig innholdsplanIdébankNyhetsbildetUkentlig datapipeline
Jobbene som går på fast plan, plassert etter klokkeslett. Tyngdepunktet ligger tidlig om morgenen, slik at dagens tall er på plass før noen leser dem. Klokkeslettene er norsk vintertid.

Faste jobber

33

til sammen

På fast plan

22

går av seg selv

Daglig eller oftere

9

kjøringer i døgnet

Datafiler med dato

54

holdes under oppsyn

Hva jobbene gjør

Jobbene faller i fem grupper. Rekkefølgen leser som en dag i portalens liv: data inn, innhold ut, kontroll av at det stemmer, dokumentasjon av det som er gjort, og drift av det hele.

Data (9 jobber)

Faste jobber i gruppen Data
JobbGårGjør
NAVs statistikknotater om arbeidsavklaringspengermånedlig, den 1. kl. 06:00Leter opp nye kvartalsnotater, laster dem ned og lar dem gå gjennom tolkningen som gjør PDF om til tall.
Brønnøysundregistrene til datalageretdaglig kl. 08:00Daglig uttrekk av foretaksdata: nyetableringer, konkurser og endringer i næringslivet.
Norges Bank til datalageretdaglig kl. 07:00Daglig uttrekk av renter og valutakurser.
Statistisk sentralbyrå til datalageretukentlig, mandag kl. 06:00Henter SSB-tabellene uendret inn i datalageret, slik at all videre bearbeiding kan spores tilbake til rådata.
NAVs statistikknotater om uføretrygdmånedlig, den 1. kl. 06:30Samme behandling som notatene om arbeidsavklaringspenger, for uføretrygd.
Månedlig uttrekk fra NAVs statistikkbankmånedlig, den 1. kl. 05:00Henter tabellene NAV publiserer månedlig, og som ikke finnes bak et API.
Årlig uttrekk fra NAVs statistikkbankårlig, 20. januar kl. 05:00Henter årstabellene når NAV publiserer dem i januar.
Daglig datahentingdaglig kl. 05:30Henter dagsferske tall som renter, valuta, foretaksdata og kryptopriser, og publiserer dem hvis noe har endret seg.
Ukentlig datapipelineukentlig, søndag kl. 15:00Full gjennomgang av de store kildene. Oppdaterer datafilene bak seksjonene og legger samtidig opp grunnlaget for nye artikler.

Innhold (6 jobber)

Faste jobber i gruppen Innhold
JobbGårGjør
Hent bilde til artikkelstartes for håndFinner et fritt lisensiert bilde som passer artikkelens tema, med fotografkreditering.
Idébankdaglig kl. 10:00Leter daglig etter temaer portalen burde dekket, og legger dem i en idébank et menneske plukker fra.
Publiser artikkelstartes for håndFlytter et gjennomlest utkast ut i bloggen. Startes alltid manuelt, med artikkelen navngitt.
Skriv artikkelutkaststartes for håndLager utkast fra de klargjorte oppdragene. Utkastene publiseres ikke - de venter på gjennomlesing.
Nyhetsbildetdaglig kl. 07:00 og daglig kl. 14:00Leser norske nyhetskilder to ganger daglig og finner ut hvilke av portalens temaer som er aktuelle akkurat nå.
Ukentlig innholdsplanukentlig, mandag kl. 09:00Ser etter hull i dekningen og foreslår hva som bør skrives eller oppdateres neste uke.

Kvalitet (6 jobber)

Faste jobber i gruppen Kvalitet
JobbGårGjør
Hendelsesloggdaglig kl. 05:15Leser dagboka over hva som gikk galt underveis, gjør den om til tellbare tall for kvalitetsregnskapet, og skriver oversikten over det som alt er fanget tilbake til kunnskapsbasen.
Kodesjekkdaglig kl. 07:00Kjører stilkontroll, typesjekk og de automatiske reglene - blant annet at norske tegn er riktige og at intern sporingsinformasjon ikke lekker ut i teksten.
Evaluering av spørresvareneukentlig, mandag kl. 07:00Måler ukentlig om AI-assistenten svarer riktig på et fast sett spørsmål, slik at kvaliteten kan følges over tid.
Målinger av spørresvareneukentlig, mandag kl. 07:30Samler måletallene fra evalueringen slik at utviklingen kan leses av.
Foreldelsesvaktdaglig kl. 07:00Går daglig gjennom alle datasett og sier fra om noen har blitt for gamle til at de bør stå uten forbehold, og sjekker at de faste datainnhentingene faktisk har kjørt.
Valider innholdsplanved endring i kodenSjekker at endringer i innholdsplanen henger sammen før de tas inn.

Dokumentasjon (4 jobber)

Faste jobber i gruppen Dokumentasjon
JobbGårGjør
Samle endringsloggenved endring i kodenSlår sammen de enkeltvise leveransenotatene til én samlet endringslogg.
Oppdateringshistorikkved endring i kodenFyller ut historikken over når hvert datasett faktisk ble endret.
Datamodell-dokumentasjonukentlig, mandag kl. 07:00Leser datamodellene og genererer dokumentasjonen fra dem, så beskrivelsen ikke kan komme i utakt med virkeligheten.
Oppdater teknisk dokumentasjonmånedlig, den 1. kl. 05:00Teller tallene på disse sidene på nytt hver måned - også PR-flyt og ledetid bak prosesskapitlet - og ber et menneske lese gjennom prosaen. Tallene fikser seg selv; teksten gjør ikke det.

Drift (4 jobber)

Faste jobber i gruppen Drift
JobbGårGjør
Publiser nettstedet uten datajobbstartes for håndSamme utlegging, men uten å hente data først. Brukes når bare innhold eller kode er endret.
Rydd testområder i datalageretukentlig, mandag kl. 06:00Sletter ukentlig midlertidige testområder, slik at lagringen ikke vokser i det stille.
Vakt for datalageretdaglig kl. 08:00Sier fra i god tid før en tilgangsnøkkel til datalageret går ut, med en gang en slutter å virke, og når en av de faste jobbene i datalageret feiler eller ikke har kjørt på over åtte dager, så datainnhentingen ikke stopper uten forvarsel.
Publiser nettstedetstartes for håndBygger og legger ut nettstedet. Kjøres bevisst ikke ved hver kodeendring.

Klokkeslettene er norsk vintertid. Om sommeren går jobbene én time senere enn oppgitt - kadensen er poenget, ikke minuttet.

Det som fortsatt gjøres for hånd

Automatikk dekker det som kan hentes maskinelt. Noe kan ikke det, og det er ærligere å si det enn å late som om alt går av seg selv.

  • 69 datasett

    Rapporter og oversikter som bare finnes som tekst eller tabeller ment for lesing. De må hentes, leses og skrives inn. Foreldelsesvakten sier fra når de blir gamle, men den kan ikke oppdatere dem.

  • Lenkekontroll

    Eksterne adresser råtner. Dyplenker til rapporter og tabeller kontrolleres periodisk, og brutte lenker byttes ut. Ingen jobb kan avgjøre om en ny adresse peker på det samme dokumentet.

  • Publisering av artikler

    Et menneske leser og navngir det som skal ut. Se kapitlet om publiseringskjeden.

  • Vurdering av nye kilder

    Om en tabell faktisk måler det den ser ut til å måle, er et faglig spørsmål. Feil valg her gir tall som ser riktige ut og er feil.

Når noe ryker

Med 22 jobber på fast plan er spørsmålet ikke om noe feiler, men når. Det som betyr noe, er at feilen blir oppdaget.

En feilet jobb blir en oppgave

Feiler en jobb, opprettes det automatisk en sak med hva som gikk galt og hvor. Ingen skal måtte huske å se etter.

Feil som ikke sier fra, er verst

En jobb som kjører ferdig, men henter ingenting, ser vellykket ut. Derfor kontrolleres resultatet, ikke bare om jobben gikk gjennom.

Datoen oppdateres ikke uten grunn

Hentet en jobb ingen nye data, skal ikke datoen si at den gjorde det. En dato som lyver om ferskhet, er verre enn ingen oppdatering.

En grønn jobb er ikke det samme som ferske tall

Hver datafil får sitt eget utfall etter en kjøring: nye tall, ingen ny periode hos kilden, en henting som feilet, eller en serie som med vilje står i ro. En kilde som feiler blir en egen sak selv om jobben rundt den gikk gjennom, og utfallet står på oppdateringsloggen. Da det ble oppdaget i august 2026, hadde sju datasett stått urørt i mellom to uker og tre måneder bak en grønn jobb.

Kontroll ved hver endring

Kodestilen, typene, hele testsettet og de egne reglene kontrolleres automatisk ved hver kodeendring, og daglig i tillegg.

Til sammen finnes 135 automatiske testfiler. Flere av dem er der utelukkende for å hindre at en bestemt feil kan gjøres om igjen - de vokter en regel framfor å teste en beregning.

Vokterne

Når en maskin både henter tallene og formulerer setningene om dem, flytter spørsmålet seg. Det er ikke lenger «er koden riktig», men «ville vi merket det hvis den stille begynte å ta feil». En vokter er en test som finnes for å gjøre én bestemt feil umulig å gjenta. Den kjører ved hver endring, og i tillegg hver natt, fordi de automatiske jobbene endrer data uten at noen åpner en endring.

Er datasettet fortsatt komplett?

Et kuratert datasett kan krympe uten at noe brekker. Vokteren sammenligner hva som er bestilt mot hva som faktisk kom, og feiler når en kilde er borte. I sommer mistet ett datasett halvparten av kildene sine uten at noe sa fra. Akkurat den varianten fanges nå.

Sier de to kopiene det samme?

Der samme oppsett må stå to steder, driver de fra hverandre i stillhet. Vokteren sammenligner ikke bare hvilke kilder som er med, men hvordan hver enkelt hentes. Retter man en feil ett sted og glemmer det andre, er det nettopp den halve rettingen som er farlig.

Er tallet lov å legge sammen?

En inndeling som i skjul teller noen to ganger, ser helt rimelig ut. Summen stemmer med seg selv, den er bare for høy. Derfor kontrolleres kategoriene mot kilden før en tabell slipper inn, og begrunnelsen skrives ned der valget ble tatt.

Lyver datoen om ferskhet?

Hentet en kjøring ingen nye tall, skal datoen ikke si at den gjorde det. En dato som later som, er verre enn en synlig gammel dato, fordi den fjerner grunnen til å se etter.

Er teksten vår tolkning eller kildens tall?

Tekst som er formulert av en språkmodell, eller som er vår egen sammenstilling, merkes som nettopp det. Leseren skal aldri måtte gjette om en setning er hentet fra en kilde eller skrevet her.

Lekker interne spor ut?

Saksnumre, filstier og navn på hemmeligheter hører hjemme i utviklingsarbeidet, ikke på en side noen leser. En egen kontroll skanner denne seksjonen strengere enn resten, nettopp fordi den er ment å deles.

Prosaen som beskriver tallene, skrives ikke fritt. Tallene regnes ut først, og språkmodellen får bare formulere setninger av dem, uten å legge til noe. Vokterne er det som gjør den påstanden mulig å etterprøve i stedet for noe man må tro på.

Noe av dette er ferskt, og det er verdt å si høyt. Vokteren over det kuraterte datasettet ble skrevet samme dag som feilen den beskriver ble funnet, og den viste sin egen blindsone i løpet av timer: den sjekker at datasettet er komplett, men den kan ikke oppdage at datahentingen har sluttet å kjøre. Feiler jobben, blir rådataene rett og slett ikke overskrevet. Alt ser riktig ut, fordi alt er som sist. Det er samme stille form som feilen den ble laget for, bare med en annen utløser. Den blindsonen er nå tettet fra to kanter: en jobb-vakt spør datalageret hver morgen om jobbene faktisk har kjørt og lyktes, og melder en jobb som feilet, som ikke har lyktes på over åtte dager, eller som aldri har kjørt, som en egen sak. Foreldelsesvakten sjekker i tillegg at selve hentingene har hatt en vellykket kjøring nylig. Det som fortsatt ikke varsler, er ferskhetsmålingen i verktøyet som bygger datamodellene: den står som en innstilling på et skjermbilde, og et resultat der stopper ingenting, uansett om det er gult eller rødt.

Den vanskeligste lærdommen er likevel en annen: en vokter er verdt nøyaktig så mye som reaksjonen på den. En kontroll som melder fra et sted ingen ser, er pynt. Nettopp det skjedde her: kontrollen meldte «alt i orden» i ukevis mens et datasett var halvert, fordi den leste oppskriften og ikke resultatet. Vokterne er derfor flyttet dit de stopper arbeidet, framfor dit de kan overses.

Når tallene blir gamle

Den vanligste feilen i en statistikkportal er ikke et galt tall. Det er et riktig tall som har blitt gammelt uten at noen sa fra.

Hvert datasett har derfor en forventet takt og en tålegrense. Passeres grensen, dukker det opp et synlig varsel på siden selv - ikke bare i en intern liste. Passeres den med god margin, blir varselet strengere. Det er ubehagelig, og det er meningen: et ubehagelig varsel blir rettet, en intern liste blir ikke lest.

54 datafiler er under slikt oppsyn. Du kan se status for hver enkelt på oppdateringsloggen, og hele endringshistorikken på oppdateringssiden.

Når innholdet blir gammelt

Et tall blir gammelt fordi kilden har publisert noe nyere. En tekst blir gammel av en annen grunn: verden har flyttet seg forbi det den påstår. De to krever hver sin sjekk, og bare den første kan avgjøres ved å se på en dato.

En egen gjennomgang går derfor ukentlig gjennom sider, artikler og datasett og leter etter seks ting.

Hva den ukentlige innholdsgjennomgangen ser etter, og hva hvert funn betyr
Det den finnerHva det betyr
Et løfte uten sideEn planlagt artikkel peker på en side som aldri ble bygget.
Et tema som holder seg i nyhetene uten å ha en sideFem dager eller mer i nyhetsbildet, uten at portalen har en egen side for det.
To temaer som følger hverandreDe trender samtidig over tid, og er kandidat for en analyse på tvers.
Data som har passert sin egen tålegrenseSamme signal som varselet leseren ser på siden selv.
En artikkel som har passert et årKandidat for arkivering framfor å bli stående som om den var fersk.
En tekst som lover et nyere år enn den harEnten er datoen feil, eller så er teksten det. Begge deler må avgjøres for hånd.

Og så det som er selve poenget: gjennomgangen åpner en sak, den retter ingenting. Den kan finne at en artikkel viser til et år som har passert, men ikke avgjøre om svaret er å oppdatere teksten, endre datoen eller arkivere hele saken. Deteksjonen er automatisk, avgjørelsen er ikke.

01 GJENNOMGANGENGår ukentlig gjennom sider,artikler og datasett.02 SIGNALETDet den finner blir en sak medbegrunnelse, ikke en rettelse.03 VALGETSkal dette gjøres noe med? Etmenneske avgjør.MENNESKEVALG04 OPPGAVENFørst da blir det arbeid.Ingenting oppretter seg selv.
Deteksjonen er automatisk, avgjørelsen er ikke. Det er samme grense som køen for nattkjøringen har, satt to steder av samme grunn.

Det er samme grense som køen for automatiske kjøringer har, satt to steder av samme grunn: en liste som fyller seg selv med arbeid, er ikke lenger en liste noen eier.

Se det i portalen

Se hvordan denne siden henger sammen med restenNabolagskartet viser sidene, begrepene og kildene den er koblet til

Nytt på portalen

Vis:
HelseNytt

Omsorgsbehovet i din kommune mot 2050

Alle 357 kommuner har til sammen 285 000 innbyggere over 80 i dag. SSBs framskriving gir 591 000 i 2050. Sida lar deg velge kommune og bytte mellom hovedalternativet, sterk aldring og svak aldring, regner om til brukere av institusjon, omsorgsbolig og hjemmetjenester, og viser hvordan kommunen løser oppgaven i dag mot resten av landet. Kommuneøkonomien er koblet på: dagens netto driftsutgifter per innbygger over 80, ganget med hvor mange over 80 kommunen får.

HelseNytt

Oslo mot 2050: bydelene der antall over 80 mer enn dobles

Oslo kommunes egen framskriving gir 55 000 personer over 80 i 2050, mot 24 000 i dag. Veksten er skjevest i indre by og sør: Gamle Oslo, Søndre Nordstrand og Grünerløkka mer enn tredobler antallet, mens Stovner og Grorud vokser minst. Sida regner om til brukere av institusjon, omsorgsbolig og hjemmetjenester per bydel med samme regnestykke som landssida, viser Oslo mot landet i dag fra SSB 12003, og setter det opp mot NAVs tall for hvor mange i hver bydel som står utenfor arbeid.

HelseNytt

Omsorgsbehovet mot 2060: hva skjer når antall eldre nesten dobles

Norge har 938 000 personer over 67. I 2060 venter SSB 1,59 millioner. Bruker de eldre omsorgstjenestene som i dag, går antall eldre brukere av institusjon, omsorgsbolig og hjemmetjenester fra 171 000 til 391 000, og årsverkene fra 94 000 til 215 000. Sida tegner regnestykket år for år, i tre framskrivingsalternativer og med en test på friskere aldring, og sammenligner tall for tall med Ulf Andersen i NAV, som regnestykket er inspirert av.

KilderOppdatert

Historikken sier hva som kom inn og hva som ble revidert, for alle datasett

Hver gang pipelinen henter tall på nytt, sammenligner den med forrige versjon: hvilke måneder, kvartaler eller år som kom til, og hvilke tall tilbake i tid kilden har revidert. Det står i historikk-knappen, på oppdateringshistorikken og på kildesida for hver datafil, og er rekonstruert bakover fra git for alle femti datasett. På prissida, AAP, uføre, befolkning, valuta og konkurser står det også som en chip ved siden av kildehenvisningen på hver graf.

EnergiOppdatert

Kryptoandelen i datasentrene: en lesers regnestykke gir 48 til 60 prosent

Regjeringen oppgir 20 prosent, vi har regnet 38 med bare de to Bitdeer-anleggene. En leser har gått gjennom anleggene ett for ett og kommer til 48 prosent som gulv, og 60 når anlegget i Mo i Rana som ikke er meldt inn til Nkom, tas med. Regnestykket står i egen boks, anlegg for anlegg, merket som leserens.