Hopp til innhold
Personlig Roadmap
Byggeinstruks for Claude Code

Norsk kryptoskatt-utregner

En FIFO-basert utregner for norsk kryptoskatt, med SQLite-lagring, revisjon og et fullstendig årsoppgjør.

1Mål

Produsere et korrekt, revidérbart norsk kryptoskatteoppgjør basert på FIFO-prinsippet, med full sporbarhet fra rå transaksjon til ferdig årsrapport — uten å noensinne gjette en manglende kurs eller korrigere avvik stille i bakgrunnen.

2SQLite-datamodell

Seks tabeller dekker hele flyten fra rå import til ferdig revidert historikk.

transactions

Rå, importerte transaksjoner fra alle kilder, tidsstemplet og kildemerket.

lots

FIFO-enheter — hver beholdning med opprinnelig kostpris og gjenværende mengde.

disposals

Realisasjoner generert av FIFO-motoren, koblet til hvilke lots de tømte.

price_cache

Historiske kurser hentet fra prisdatakilder, indeksert på valuta og dato.

corrections

Manuelle korreksjoner gjort etter revisjon, med begrunnelse og tidsstempel.

import_log

Logg over hver import: kilde, antall rader, dupliseringer og eventuelle advarsler.

3FIFO-motor

Hver realisasjon tømmer den eldste gjenværende lot først. Motoren skal håndtere transaksjonstypene under ulikt — salg og krypto-til-krypto utløser realisasjon, overføringer gjør det normalt ikke.

Kjøp

Krypto kjøpt for fiat. Etablerer kostpris i FIFO-køen.

Salg

Krypto solgt for fiat. Utløser realisasjon mot eldste kjøp i FIFO-køen.

Krypto-til-krypto

Bytte mellom to kryptovalutaer. Regnes som en realisasjon av det du bytter bort.

Overføring

Flytting mellom egne lommebøker/børser. Skal normalt ikke utløse realisasjon.

Inntekt

Mottatt krypto som inntekt, f.eks. mining eller staking-belønning.

Gebyr

Transaksjonsgebyrer, håndtert separat fra selve handelen de tilhører.

4Kurskjede

Kursverdsettelse følger en streng prioritetsrekkefølge — aldri et gjettet tall.

  • 1

    Handelskurs fra samme børs, samme tidspunkt

    Mest nøyaktig, brukes når tilgjengelig direkte fra rådata.

  • 2

    Historisk dagssluttkurs fra primær priskilde

    Brukes når eksakt handelskurs mangler i rådata.

  • 3

    Sekundær priskilde (backup-API)

    Brukes kun når primærkilden ikke har data for valuta/dato.

  • 4

    Manuell verdsettelse

    Krever eksplisitt bekreftelse — kursen skal aldri gjettes automatisk.

5Parser-feller

Kildene som skal støttes har hver sine kjente fallgruver ved import.

  • CSV-eksport fra norske og internasjonale børser
  • Lommebok-eksporter (on-chain transaksjonshistorikk)
  • Manuell registrering for enkelttransaksjoner som mangler i eksport

6Verifikasjon og revisjon

Revisjonskommandoen kjører et fast sett med kontroller før noe godkjennes.

  • Sjekk at hver lot har ikke-negativ gjenværende mengde etter FIFO-kjøring.
  • Flagg transaksjoner uten matchende kurs i price_cache.
  • Flagg overføringer som ved en feil er kategorisert som salg eller kjøp.
  • Sammenlign totalt innskutt vs. uttrukket volum per valuta mot faktisk saldo.
  • Flagg dupliserte transaksjoner basert på hash av rådata.
  • List alle manuelle korreksjoner som er gjort siden forrige årsrapport.

7Årsrapport

Den ferdige rapporten skal inneholde:

  • Oppsummert realisert gevinst/tap per valuta og totalt.
  • Liste over alle disposals med referanse til opprinnelig lot.
  • Oversikt over gjenværende beholdning og kostpris ved årsslutt.
  • Logg over manuelle korreksjoner gjort i løpet av året.
  • Liste over transaksjoner som manglet kursdata og hvordan de ble løst.

8Arbeidsflyt

Importer CSV
dedupliser
verdsett
FIFO
revisjon
korreksjoner
årsrapport

Databasebackup tas før hver eneste import — uten unntak — og manglende historikk logges eksplisitt i import_log fremfor å hoppes over.

Viktige advarsler

  • Aldri gjett manglende kurser — flagg og spør i stedet for å anta en verdi.
  • Krypto-til-krypto er en realisasjon og skal skattlegges som sådan.
  • Overføringer mellom egne lommebøker skal normalt ikke inn i FIFO-realisasjon.
  • Avvik oppdaget under revisjon skal spørres om, aldri korrigeres stille i bakgrunnen.
  • Ta databasebackup før hver eneste import, uten unntak.
  • Manglende historikk skal logges eksplisitt, ikke bare hoppes over.