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.
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)
| Jobb | Går | Gjør |
|---|---|---|
| NAVs statistikknotater om arbeidsavklaringspenger | månedlig, den 1. kl. 06:00 | Leter opp nye kvartalsnotater, laster dem ned og lar dem gå gjennom tolkningen som gjør PDF om til tall. |
| Brønnøysundregistrene til datalageret | daglig kl. 08:00 | Daglig uttrekk av foretaksdata: nyetableringer, konkurser og endringer i næringslivet. |
| Norges Bank til datalageret | daglig kl. 07:00 | Daglig uttrekk av renter og valutakurser. |
| Statistisk sentralbyrå til datalageret | ukentlig, mandag kl. 06:00 | Henter SSB-tabellene uendret inn i datalageret, slik at all videre bearbeiding kan spores tilbake til rådata. |
| NAVs statistikknotater om uføretrygd | månedlig, den 1. kl. 06:30 | Samme behandling som notatene om arbeidsavklaringspenger, for uføretrygd. |
| Månedlig uttrekk fra NAVs statistikkbank | månedlig, den 1. kl. 05:00 | Henter tabellene NAV publiserer månedlig, og som ikke finnes bak et API. |
| Årlig uttrekk fra NAVs statistikkbank | årlig, 20. januar kl. 05:00 | Henter årstabellene når NAV publiserer dem i januar. |
| Daglig datahenting | daglig kl. 05:30 | Henter dagsferske tall som renter, valuta, foretaksdata og kryptopriser, og publiserer dem hvis noe har endret seg. |
| Ukentlig datapipeline | ukentlig, søndag kl. 15:00 | Full gjennomgang av de store kildene. Oppdaterer datafilene bak seksjonene og legger samtidig opp grunnlaget for nye artikler. |
Innhold (6 jobber)
| Jobb | Går | Gjør |
|---|---|---|
| Hent bilde til artikkel | startes for hånd | Finner et fritt lisensiert bilde som passer artikkelens tema, med fotografkreditering. |
| Idébank | daglig kl. 10:00 | Leter daglig etter temaer portalen burde dekket, og legger dem i en idébank et menneske plukker fra. |
| Publiser artikkel | startes for hånd | Flytter et gjennomlest utkast ut i bloggen. Startes alltid manuelt, med artikkelen navngitt. |
| Skriv artikkelutkast | startes for hånd | Lager utkast fra de klargjorte oppdragene. Utkastene publiseres ikke - de venter på gjennomlesing. |
| Nyhetsbildet | daglig kl. 07:00 og daglig kl. 14:00 | Leser norske nyhetskilder to ganger daglig og finner ut hvilke av portalens temaer som er aktuelle akkurat nå. |
| Ukentlig innholdsplan | ukentlig, mandag kl. 09:00 | Ser etter hull i dekningen og foreslår hva som bør skrives eller oppdateres neste uke. |
Kvalitet (6 jobber)
| Jobb | Går | Gjør |
|---|---|---|
| Hendelseslogg | daglig kl. 05:15 | Leser 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. |
| Kodesjekk | daglig kl. 07:00 | Kjø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ørresvarene | ukentlig, mandag kl. 07:00 | Må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ørresvarene | ukentlig, mandag kl. 07:30 | Samler måletallene fra evalueringen slik at utviklingen kan leses av. |
| Foreldelsesvakt | daglig kl. 07:00 | Gå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 innholdsplan | ved endring i koden | Sjekker at endringer i innholdsplanen henger sammen før de tas inn. |
Dokumentasjon (4 jobber)
| Jobb | Går | Gjør |
|---|---|---|
| Samle endringsloggen | ved endring i koden | Slår sammen de enkeltvise leveransenotatene til én samlet endringslogg. |
| Oppdateringshistorikk | ved endring i koden | Fyller ut historikken over når hvert datasett faktisk ble endret. |
| Datamodell-dokumentasjon | ukentlig, mandag kl. 07:00 | Leser datamodellene og genererer dokumentasjonen fra dem, så beskrivelsen ikke kan komme i utakt med virkeligheten. |
| Oppdater teknisk dokumentasjon | månedlig, den 1. kl. 05:00 | Teller 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)
| Jobb | Går | Gjør |
|---|---|---|
| Publiser nettstedet uten datajobb | startes for hånd | Samme utlegging, men uten å hente data først. Brukes når bare innhold eller kode er endret. |
| Rydd testområder i datalageret | ukentlig, mandag kl. 06:00 | Sletter ukentlig midlertidige testområder, slik at lagringen ikke vokser i det stille. |
| Vakt for datalageret | daglig kl. 08:00 | Sier 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 nettstedet | startes for hånd | Bygger 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.
| Det den finner | Hva det betyr |
|---|---|
| Et løfte uten side | En planlagt artikkel peker på en side som aldri ble bygget. |
| Et tema som holder seg i nyhetene uten å ha en side | Fem dager eller mer i nyhetsbildet, uten at portalen har en egen side for det. |
| To temaer som følger hverandre | De trender samtidig over tid, og er kandidat for en analyse på tvers. |
| Data som har passert sin egen tålegrense | Samme signal som varselet leseren ser på siden selv. |
| En artikkel som har passert et år | Kandidat for arkivering framfor å bli stående som om den var fersk. |
| En tekst som lover et nyere år enn den har | Enten 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.
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
Nytt på portalen
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.
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.
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.
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.
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.
Mest lest siste 7 dager
- 1Datasentre og kraftforbruk74 visninger
- 2Datasentrene brukte 3,3 TWh i 2025, og kryptodelen er alt på vei ned31 visninger
- 3Slik er portalen bygget25 visninger
- 4Alderspensjon 2025 - gjennomsnittlig utbetaling og avgangsalder17 visninger
- 5Oppdateringshistorikk17 visninger
- 6Kilder og datagrunnlag16 visninger
- 7Blogg16 visninger
- 8Energiomstilling11 visninger
- 945 milliarder til Tydal: hva E24-saken ikke fortalte11 visninger
- 10Befolkning11 visninger