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.
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.
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
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.