Tjeneste

Data og systemer

Tallene finnes som regel allerede. De ligger bare i systemer som ikke snakker sammen, og i et regneark noen oppdaterer på fredager. Vi henter dem ut, rydder dem og skriver ned hva de betyr, slik at alle ser det samme tallet.

  • Tidsramme2-8 uker
  • PrisFast etter avgrensning
  • Dere sitter igjen medDataflyten, definisjonslista og tilgangene

Oversikt

En oversikt er ikke et dashbord fullt av grafer. Det er de få tallene noen faktisk tar en beslutning på, oppdatert av seg selv, og regnet ut på samme måte fra uke til uke. Det siste er det vanskelige. «Omsetning» betyr gjerne én ting i regnskapet og noe annet i salgssystemet, og «aktiv kunde» har like mange definisjoner som det er avdelinger.

Vi henter fra systemene dere har, og fra offentlige norske registre når svaret ligger der og ikke hos dere. Så lager vi det som skal til for at dere ser tallene. Ser ledergruppa på dem mandag morgen, er det en e-post. Trenger selgerne tallet gjennom dagen, er det en side.

Av og til er ikke oversikten nok. Det som mangler, er systemet bak den: et sted der saker, dokumenter og kunder ligger i samme base i stedet for i hver sin innboks. Da bygger vi det, med tilgang for dem som trenger det og et API der andre systemer skal lese. Er oppgaven for uklar til det, sier vi det i stedet for å bygge.

Dette inngår

  • Kilder og eiere. Hvilke systemer hvert tall skal hentes fra, og hvem hos dere som eier kilden og svarer når den endrer seg. Lista viser også hullene, der et tall ikke finnes noe sted ennå.

  • Henting og rydding. Vi kobler oss på systemene deres og API-ene som finnes, og rydder nok til at tallene kan sammenlignes. Samme kunde stavet på flere måter blir én, og datoer får samme format.

  • Offentlige registre. Enhetsregisteret, Regnskapsregisteret og SSB er åpne kilder som vi kobler på når tallet handler om andre enn dere selv. Typisk om en kunde har levert regnskap og hva det viser, hvor mange ansatte konkurrentene har, eller hva lønnsnivået i bransjen er.

  • Definisjonsliste. Et skriftlig dokument som sier hva «kunde», «omsetning» og «aktiv» betyr i oversikten, og hvilken kilde som gjelder når kildene er uenige.

  • Historikk. Tallene lagres i egen database etter hvert som de hentes, så dere kan se lenger bakover enn kildesystemet selv husker. Står databasen på en server vi drifter selv, tas det sikkerhetskopi hver natt, og gjenopprettingen er prøvd.

  • Oversikten. En side, en rapport på e-post eller et varsel når et tall krysser en terskel. Få tall, det samme tallet overalt, og tidspunktet det sist ble hentet, så ingen tar en beslutning på gamle tall uten å vite det.

  • API. Der andre systemer trenger dataene, henter de dem fra én adresse i stedet for fra hver sin eksport. Det kan være regnearket økonomi fortsatt vil ha, eller nettsiden som skal vise et tall fra oversikten.

Prosess5 steg

Beslutninger og kilder

Vi begynner med beslutningene, ikke med dataene.

20%

Sjekke kvaliteten

Vi ser hvor mange ulike svar kildene gir på det samme spørsmålet.

40%

Hente og rydde

Vi kobler oss på kildene og henter automatisk, ikke som et engangsuttrekk.

60%

Definere tallene

Vi blir enige om hva hvert tall betyr, og skriver det ned.

80%

Bygge oversikten og drifte

Vi bygger visningen sist, setter den i drift og lærer opp eieren.

100%

Passer for

Passer når

  • Dere har et tall som diskuteres i hvert ledermøte fordi to systemer gir hvert sitt svar.
  • Saker, avtaler og kunder ligger spredt i innbokser og regneark, og noen bruker tid hver måned på å samle det til ett bilde.
  • Dere trenger å vite mer om kunder, marked eller kostnader enn egne systemer forteller, og vil hente det fra offentlige registre.

Passer ikke når

  • Dere vil ha et dashbord med alt i, men kan ikke si hvilken beslutning det skal støtte.
  • Ingen registrerer dataene i dag, og ingen har tid til å begynne, for et system fylles ikke av seg selv.
  • Dere har et rapportverktøy som fungerer, og mangler bare en ny graf i det.

Teknologi

  • Postgres og Drizzle

    Én database for alle tallene, der hver endring i strukturen er skrevet ned og kan kjøres på nytt.

  • Neon eller Postgres 17 på egen server

    Databasen kjører hos Neon, som drifter den for oss, eller på en server vi drifter selv, og hvilken det blir avgjør vi sammen i avgrensningen.

  • Enhetsregisteret og Regnskapsregisteret

    Åpne registre med navn, næringskode, ansatte, kommune og regnskapstall for norske virksomheter, som vi henter fra direkte.

  • SSB

    Offisiell statistikk, som lønnsstatistikken i tabell 11419, når et anslag trenger tall dere ikke har selv.

  • Bearer-beskyttede API-er

    Skript og andre systemer leser og skriver tallene med en nøkkel i stedet for brukernavn og passord.

  • Python-pipeliner med gjenopptak

    Henting i steg som lagrer underveis, slik at et brudd hos kilden betyr å fortsette der den slapp, ikke å starte på nytt.

  • PyMuPDF

    Uttrekk av tekst og bilder fra PDF-er når kilden er et dokument og ikke et system.

Eierskap og drift

  • Kode og innhold

    Koden, tallene i databasen, definisjonslista og historikken er deres. Vanlig Postgres, Python og TypeScript uten verktøy knyttet til oss, og hvert steg i hentingen er beskrevet, så en annen utvikler kan ta over.

  • Kontoer og tilganger

    Nøklene til kildesystemene lages på deres kontoer, så det er dere som trekker tilgangen vår, ikke omvendt. En kopi av databasen får dere når dere vil.

  • Drift

    Vi hoster og har ansvaret for at flyten kjører, som løpende avtale ved siden av fastprisen. Vi sjekker at hentingene har kjørt, og tar det opp med eieren hos dere når et tall hopper uten at kilden forklarer det.

  • Løpende kostnad

    Driftsavtalen, og ingen lisens per bruker, siden oversikten er en side vi har bygget og ikke et rapportverktøy. Betalte API-er og kildesystemer som tar betalt for eksport kommer i tillegg og er deres avtale med leverandøren.

  • Når noe endrer seg

    Bytter en kilde format eller slutter å svare, stopper hentingen og varsler den vi har avtalt, og rettelsen avtaler vi når det skjer. Bytter dere hele systemet, kobles det nye på som en ny avgrensning, og historikken fra det gamle blir stående.

Vi bruker det selv

  • Kontrollrommet

    Slår opp et selskap i offentlige registre, henter lønnsstatistikk og arbeidsgiveravgift, og regner ut et anslag for hvor mye av rutinearbeidet en maskin kan overta. Analysen lagres per organisasjonsnummer, slik at skanningen på forsiden og rapporten bak den viser det samme.

  • Lead-pipelinen

    En kjede av steg i Python som går fra registeruttrekk til utsending, og som kan stoppes og startes igjen der den slapp. Den leverer mottakerne til kampanjemotoren vår gjennom et API, og leser derfra hvem som ikke skal kontaktes.

  • Avissystemet

    Et redaksjonssystem der utgaver, sider og korrekturrunder ligger i samme base, og der tidligere utgaver er hentet inn fra trykk-PDF-er med PyMuPDF. Resten av systemet leser fra et API, og databasen er Postgres 17 på egen server.

Spørsmål og svar

Antall kilder, og hvor rotete de er. En ren kilde med et API er rask å koble på, et regneark med mange års håndskrevne unntak tar tid å rydde. Prisen settes etter steg to, når vi har sett kildene.

Hvilket tall mangler dere?

Fortell hva dere skulle sett hver uke. Vi sier hvor det kan hentes fra og hva det krever.

Fortell oss hva dere trenger