Norgespr.is viser deg hva du sparer – men å skaffe data var vanskelig
– Det burde vært langt enklere for folk å hente ut informasjonen de faktisk eier, skriver Hans Kristian Sande, etter å ha laget strømtjenesten Norgespr.is.
Den nye strømpris-ordningen Norgespris har blitt heftig diskutert og omtalt som politisk valgflesk. Nå granskes også ordningen av ESA, som har kalt inn Energidepartementet på teppet.
Jeg skal ikke mene for mye om politikken, men jeg har lurt på hva Norgespris faktisk betyr for oss forbrukere: Hvor mye sparer jeg egentlig på denne ordningen?
Derfor lagde jeg norgespr.is – en live-tracker som viser kumulative kostnader og den løpende alternativkostnaden ved å velge Norgespris fremfor spotpris med strømstøtte.
På veien dit oppdaget jeg at det slettes ikke er så lett å få tak i de nødvendige data for å gjøre utregningen.
Tjenesten er derfor (enn så lenge) kun tilgjengelig for brukere i prisområdet NO1 med nettselskapet Elvia (størst i Norge med ca. 2 millioner kunder).
🧱 Hvordan produktet ble til
Før jeg selv tegnet meg til Norgespris testet jeg litt forskjellige Norgespris-kalkulatorer, og felles for disse var at de baserte seg på fjorårets forbruk.
Da slo det meg at for oss spesielt interesserte så kunne det vært interessant å følge med på utviklingen underveis.
På generelt grunnlag har Forbrukerrådet anbefalt forbrukere i prisområdene NO1 (Østlandet), NO2 (Sørlandet) og NO5 (Vestlandet) å tegne seg til Norgespris, mens for NO3 (Midt-Norge) har de anbefalt å se an.
Men da jeg begynte å lage dette innså jeg som sagt at det slettes ikke er så enkelt for Ola Nordmann å se an, for det er nemlig et gap mellom rettigheten til data, og tilgjengeligheten til data.
Det burde vært langt enklere for folk å hente ut informasjonen de faktisk eier – sine egne forbruksdata. Nettselskapene er lovpålagt å tilby denne type forbruksdata som kan graderes til «personopplysninger» (jf. GDPR Artikkel 15), men det står ikke nedfelt på hvilken måte utenom i «elektronisk form».
I tråd med lovverket tilbys forbruksdata fra både nettselskapenes egne sider eller via Elhub, men da i hovedsak som CSV-eksporter for privatpersoner. CSV-eksporter vil jeg ikke kalle lett tilgjengelige data, selv om det både teknisk og juridisk sett er en elektronisk form.
Skal du på egenhånd se an Norgespris eller gjøre løpende beregninger, må du i praksis laste ned en ny CSV-fil hver gang du vil sjekke effekten av Norgespris. På MinSide hos Elvia kan man derimot generere et token for å hente ut sine egne forbruksdata, og det er av den grunn norgespr.is kun er tilgjengelig for deres kunder.
Per nå hentes forbruksdata automatisk ved innlasting av nettsiden hvis bruker har lagret et Elvia-token som en secure cookie i nettleseren sin, eller ad-hoc etter hvert som bruker limer inn nevnt token. Det kan være interessant å tilby opplasting av CSV på sikt, men det vil fortsatt være tungvint for da må du likevel laste ned og laste opp en ny CSV hver gang.
🏃💸 Veien rundt dyre API-er
Som et registrert AS tilknyttet Maskinporten tilbyr riktignok Elhub et API, men da må du betale for privilegiet: et årlig gebyr på 25.000 kroner som «systemleverandør», eller 4.750 kroner per måned.
Med forbruksdata på plass trenger man strømprisdata fra prisområdene i Norge for å regne ut kostnader.
Strømprisdata kan hentes direkte fra Nord Pool for € 4.100 i årlige API-lisenser ved redistribuering, eller € 1.250 for internt bruk.
Heldigvis finnes det veier rundt denne stive prisingen, som ENTSO-E sitt «Transparency Platform API». Det er dette API-et hvakosterstrømmen.no bruker, og dermed norgespr.is også.
Uansett metode, er det rett og slett ikke enkelt for Ola Nordmann å få tak i de nødvendige dataene for å se hvilken effekt Norgespris har på egen lommebok.
Selv om noen strømselskaper (og nå Elvia faktisk) i ettertid har tilbudt en forenklet visning av dette i sine apper, så er ikke visningen egnet for så veldig avansert analyse.
Derfor finnes norgespr.is.
⚙️ Teknologier i norgespr.is
norgespr.is er skrevet i Next.js 15 (React) – et OK rammeverk jeg har en del erfaring med og som dermed gir meg fart og flyt, og som også tilbyr server-side kode.
Dette er viktig for å kunne kommunisere med Elvia sitt API, ettersom alle kall må foregå server-til-server på grunn av CORS-restriksjoner.
Ellers har jeg brukt Tailwind til styling.
Med stor hjelp av Cursor utviklet jeg dette produktet på en helg (da Amy herjet som verst), og Cursor tok meg kanskje 80 prosent i mål.
Den biten som i hovedsak omhandler sikkerhet og kodestrukturering ønsket jeg å ta kontroll over selv, men det er vanvittig hvor raskt man kan gå fra idé til produkt med verktøy som Claude Code eller Cursor nå til dags. Noen andre generelle tips å anbefale til utviklere som liker å lage hobbyprosjekter er k6 til load-testing og Plausible til brukeranalyse.
⚡️Load testing med k6
Grafana k6 lar deg spinne opp fiktive brukere med javascript for å se hvordan appen din skalerer med økt trafikk.
Da jeg annonserte mitt forrige hobbyprosjekt Vinvenn i kode24 hadde jeg ikke gjort en lasttest i forkant og da knakk følgelig tjenesten min 😞 ...
Det var en kjip (men lærerik) erfaring – så alltid test før launch!
📊 Analyse med Plausible Analytics
Plausible er utviklet som et GDPR-vennlig tracking-verktøy for å tracke trafikk og brukeratferd på nettsiden din der du ikke trenger å få godkjennelse via noe cookie-bot.
Bak kulissene aggregeres nemlig dataene over besøkende så det er umulig for meg å se hvem det er som faktisk har besøkt nettsiden.
I tillegg kan du sette opp metrikker for å måle om produktet ditt faktisk blir brukt, og ikke minst: at det blir brukt som tiltenkt.
Så for norgespr.is har jeg blant annet satt opp en metrikk for å teste hvor mange brukere som besøker nettsiden og som faktisk laster inn sine forbruksdata (ca. 16% konverteringsrate).
💪 jq rett i Github Actions
For å laste inn strømpriser fra hvakosterstrømmen.no har jeg satt opp en litt tvilsom Github Actions Workflow som har skriverettigheter til Github-repoet mitt (og dermed kan merge rett i main 🤠).
Jeg startet opprinnelig på noe i Python som jeg typisk bruker til data ingestion, men fant fort ut at jeg kunne bruke jq som en kollega tidligere har lovprist. Strømprisene levert fra hvakosterstrømmen er nemlig JSON-data, i tillegg er jq pre-installert i Github runners.
Så nå kjøres det en jobb hver natt som henter day-ahead strømpriser og legger det til i en fil i mitt eget repo som tidsseriedata.
Continuous Deployment (kontinuerlig leveranse) muliggjøres via hosting på Vercel der jeg har konfigurert at ting skal deployes når noe merges inn i main, altså redeployes nettsiden hver dag med ferske strømprisdata.
Med andre ord: hvis denne koden her feiler så blir det kluss i prod, men enn så lenge (30 av 30 dager) har det gått fint 🤞 og da slipper jeg selv å oppdatere disse dataene manuelt. Famous last words.
🌱 Et ønske om enklere datadeling
Jeg håper norgespr.is kan inspirere og stå som et eksempel for selskaper på hva som er mulig når datadeling gjøres enkelt – at nye produkter plutselig kan dukke opp når vi strekker oss etter bedre løsninger, selv der lovkravet tillater et minimumstilbud.
Elvia skal ha honnør for at de er frempå og tilgjengeliggjør data på en enkel måte via sitt API.
Det er åpenbart kostnader i bildet, så jeg forventer heller ikke at alt skal være gratis, men jeg er overbevist om at selskapene selv vil kunne høste frukter av den innovasjonen som oppstår når nysgjerrige folk får lov til å bygge nye tjenester med disse dataene.
Det er en vinn-vinn for alle.
Merknad: I ettertid har jeg sett at Elvia nå tilbyr visning av kostnader med/uten Norgespris på månedsbasis 🤩 Så nå kan du regne ut alternativkostnad selv, men hvis du vil motta utregningen automatisk eller gjør mer avansert analyse så er norgespr.is fortsatt din venn!