Del plattformen · kapittel 8
Faste kjøringer, drift og overvåkning
Portalen holder seg selv ved like gjennom et sett faste jobber. Her er kjøreplanen for dem, 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. 35 jobber holder den i gang. 24 av dem går etter en fast plan, og resten startes av en hendelse, av en annen jobb eller for hånd. 4 av jobbene 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.
Oversikten dekker jobbene som kjører i kodelagerets egen jobbkjører. Noen faste kjøringer ligger andre steder og står ikke her: datamodellene bygges hver natt av en egen tjeneste for dem, to ukentlige innhentinger kjører inne i datalageret, oppgavene som bygges om natta startes av en planlagt økt hos språkmodell-leverandøren, og kunnskapskartet publiseres av sin egen vertstjeneste ved hver endring. Innstillingene for flere av dem ligger utenfor kodelageret, og det er nettopp der vokterne lenger ned har måttet fylle hull.
Faste jobber
35
til sammen
På fast plan
24
går av seg selv
Daglig eller oftere
11
kjøringer i døgnet
Datafiler med dato
67
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 | månedlig, den 3. kl. 05:30 | 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 (7 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. |
| Kart-ferskhetsvakt | daglig, hver 6. time | Sier fra når kunnskapskartets eget nettsted henger etter siste versjon av koden, slik at et bygg som stille ble hoppet over ikke lar kartet stå bak uten at noen merker det. |
| 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 (5 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. |
| Kart-lenker til kunnskapskartet | daglig kl. 07:30 | Holder registeret over hvilke noder som er publisert på kartnettstedet ferskt, slik at portalen bare lenker til sider som faktisk finnes der. |
| 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.
101 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 velger hva som skal ut. Se kapitlet om publiseringskjeden.
Å sette i gang artikkelskrivingen
Utkastene skrives bare når noen starter skrivejobben. Oppdragene legges igjen automatisk, men uten det ene trykket blir de liggende.
Å få endringer i datalageret ut i drift
Notatbøkene som kjører inne i datalageret, kommer først i drift når noen legger dem ut dit. Ingen jobb gjør det automatisk, og flere innstillinger for jobbene der ligger utenfor kodelageret, der ingenting merker om de endres. Datamodellene er unntaket: de bygges fra kodelageret av sin egen tjeneste.
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 24 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 av datajobbene, innhentingene til datalageret eller utleggingen, opprettes det automatisk en sak med hvilken jobb og hvilken kjøring det gjaldt. Ingen skal måtte huske å se etter. Omtrent en tredjedel av de planlagte jobbene har ikke dette ennå, blant dem to av ferskhetsvaktene, målingen av chatsvarene og den ukentlige innholdsplanen.
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.
En bestilling er ikke en utlegging
Utleggingen regnes som vellykket først når vertstjenesten bekrefter at den nye utgaven er publisert, og en røyktest mot fem sider og én fil sidene trenger, har gått gjennom. Feiler røyktesten, rulles nettstedet tilbake. Regelen kom etter at fire bestillinger på rad ble borte i vertstjenestens kø mens alle jobbene var grønne.
Kontroll ved hver endring
Kodestilen, typene, hele testsettet og de egne reglene kontrolleres automatisk ved hver kodeendring, og daglig i tillegg.
Til sammen finnes 218 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 morgen etter den daglige datajobben, 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, skal ikke skrives fritt. Tallene regnes ut først, og språkmodellen får dem servert med en instruks om ikke å oppgi noe tall som ikke står der. Det er en instruks, ikke en kontroll: ingen vokter sammenligner i dag tallene i en ferdig tekst med tallene språkmodellen fikk. Det som fanges automatisk, er en tekst uten tall, og en tekst der språkmodellen selv skriver at tallene mangler.
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» mens et datasett i nesten tre måneder manglet halvparten av tabellene sine, 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, åpner en daglig vakt en sak for datafilen. For noen av de manuelt vedlikeholdte datasettene dukker det i tillegg opp et synlig varsel på siden selv, og det blir strengere når grensen er passert med god margin. Det er ubehagelig, og det er meningen: et ubehagelig varsel blir rettet. Datasettene som hentes automatisk, har ikke et slikt varsel. Der blir en feilet henting en sak, og datoen står ved hver graf.
67 datafiler følges på denne måten. 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 leter derfor etter seks ting i sider, artikler og datasett.
| 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 den daglige vakten melder per datafil. |
| 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. |
Data som har passert tålegrensen, blir en sak per datafil, hver dag. Løfter uten side og temaer som holder seg i nyhetene eller følger hverandre, blir til noen få forslag i uka, lagt fram som en endring et menneske må godta. Alle funnene, også gamle artikler og tekster som lover et nyere år, går i tillegg daglig inn i idébanken som mulige ideer. Utover saken om gamle data blir ingen av dem en sak av seg selv.
Og så det som er selve poenget: gjennomgangen 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
Faktaportalen 1-2-3: tre korte videoer på forsiden →
Ved siden av søket viser tre korte videoer hvordan du finner et tall, forstår hvor det kommer fra og hva som er endret, og følger sammenhengene videre i kunnskapskartet.
Ny forside: seksjonene først og Nytt samlet →
Under søket og de tre dørene står nå alle ni seksjoner i ett rutenett, med Nytt, årsakskjeden fra kunnskapskartet og fag, teknikk og om portalen nedenfor. «Mest lest» står bare i sidepanelet på undersidene.
Datasentre i USA og Norge: Hva Loudoun County kan lære oss →
USAs datasenterhovedstad fikk 1,2 milliarder dollar i skatt og sinte naboer. Norge har 113-115 datasentre mot Loudouns 230, brukte 3,3 TWh i 2025 og fikk under 12 millioner kroner i selskapsskatt. Hva dagens USA Today-forside kan lære oss, og hvorfor modellen ikke lar seg kopiere.
Fag og teknisk: to måter å dele det jeg kan →
Faktaportalen har fått en fagseksjon om KI, regelverk og arkitektur. Hva den er til for, hvordan den skiller seg fra den tekniske dokumentasjonen, og hvorfor jeg vil ha innspill.
Hvem eier sannheten? →
Norske datasentre brukte 3,3, 3,17 eller 3,14 TWh strøm i 2025, alt etter hvem du spør. Tre svar fra to kilder. Om hvilke kilder man kan stole på til hva, og hvorfor ingen av dem eier sannheten.
Mest lest siste 7 dager
- 1Datasentre og kraftforbruk52 visninger
- 2Datasenteranlegg i Norge26 visninger
- 3Topp 1 prosent eier like mye som halvparten av Norge22 visninger
- 4Konkurser19 visninger
- 5Alderspensjon 2025 - gjennomsnittlig utbetaling og avgangsalder19 visninger
- 6Priser18 visninger
- 7Gjeld18 visninger
- 8Om portalen16 visninger
- 9Befolkning15 visninger
- 10Aktørene i norsk datasenterindustri12 visninger