Afregning og evidens

Sådan efterprøves evidensen

Hver afregnet leverance dokumenteres med de målte MWh, prisen, CO₂-grundlaget og prøven mod substitutionsprisen. Tallene fryses ved afregningen, låses med en hash og samles hver måned i én evidenspakke pr. anlæg. Her står, hvad den består af, og hvordan enhver kan efterprøve den uden at stole på os.

Kort fortalt

Forsyningen

Hver leverance prøves mod den substitutionspris, der gælder ved dens afregning, og prøven står i evidenspakken til bestyrelsen og Forsyningstilsynet (sådan virker prøven). Det kræver jeres måleraflæsning, tastet i portalen uden IT. Forsyningen betaler intet gebyr.

Beregn jeres tal
Virksomheden med overskudsvarme

Evidenspakken viser, hvad jeres varme er solgt for, måned for måned. Celembis gebyr er 5 % af bruttoværdien og betales af sælger. Leveringsaftalen indgås mellem jer og forsyningen, Celembi er ikke part, og aflæsningen tastes i portalen uden IT. Beregneren viser, hvad varmen kan være værd efter gebyret.

Beregn jeres tal
Revisor og controller

Genberegn hashen selv med få linjer Python (opskriften), eller lad en af parterne spørge API'et, om en udleveret hash er den, der blev gemt ved afregningen. Svaret viser ingen beløb eller mængder. På et møde viser vi en afregnet leverance fra demomiljøet med dens evidenspakke.

Book et møde (30 min)
Brancheorganisation og rådgiver

Celembi er markedspladsen, aldrig part i handlen, og holder aldrig partnernes midler; projektering og godkendelse bliver hos rådgiveren. Hver rapport skriver sine satser, faktorer og kilder ud, så I kan henvise jeres medlemmer hertil.

Book et møde (30 min)

Hvad evidensen består af

For hver afregnet leverance findes én rapport (GET /api/v2/deals/{id}/esg-report) med fire blokke:

Rapporten for én afregnet leverance, blok for blok, og hvor tallene kommer fra.
BlokIndholdKilde
MålingKontraheret og målt volumen fra begge parter, afvigelse, måler-ID, tidspunkt, hvem der indsendte (en person eller en API-nøgles fingeraftryk) og under hvilket request-id, afregningsgrundlagParternes egne aflæsninger, som indsendt
ØkonomiAftalt pris, bruttoværdi, net- og systemtarif, tabstillæg, temperaturløft, moms, købers samlede pris, sælgers nettoindtægt, Celembis gebyr, eventuel bodAfregningsmotoren: beløb med to decimaler, MWh med tre
EmissionerKøbers erklærede alternativ, emissionsfaktor og dens kilde, undgået CO₂ i ton, undgået CO₂-afgift, afgiftssatsKøbers anlæg og satserne, som de var ved afregningen
RevisionBeregningsversion, hash, det objekt hashen er beregnet over, opskriften, integritetsstatus, tidspunkt for fastfrysningDenne side og koden bag den

Hvad der fastfryses ved afregningen

Tallene i afregningen (volumen, pris, beløb) er uforanderlige, når leverancen er afregnet. Men en rapport læser også ting, der ellers ville kunne ændre sig bagefter: CO₂-afgiftssatsen, tarifferne, købers erklærede varmealternativ og dets emissionsfaktor, og en eventuel dokumenteret substitutionspris. Alle disse gemmes på leverancen i afregningsøjeblikket som rapportens grundlag, sammen med hashen.

Konsekvensen er den, en revisor har brug for: en rapport hentet om tre år bygger på de samme satser som den dag, der blev afregnet, og giver samme hash. Ændrer nogen et tal i databasen, siger rapporten mismatch. Fra beregningsversion 7 (22. september 2026) dækker hashen også leverancens periode, altså leveringsvinduet og afregningstidspunktet, der placerer den i en rapporteringsmåned, og hvem der solgte og købte. Fra beregningsversion 10 dækker den også det, handlen blev forhandlet på: spotprisen og det kvarter, den gælder for, grundlaget for CO₂-tallet og den vejrprognose, agenterne fik. Fra beregningsversion 11 dækker den også det rørtab, afregningen trak fra sælgers måling, før den blev sammenlignet med købers: røret, handlen blev prissat på, leveringsvinduets timer, sælgers måling og det tab, rørmodellen giver ved den mængde, eller handlens tabsandel, hvor handlen ikke er prissat på et rør. Tabet fryses med grundlaget, så den afregnede mængde kan regnes efter fra rapporten. En køber, der ikke har oplyst sit varmealternativ, fryses fra version 10 uden emissionsfaktor og uden estimat; under ældre versioner stod naturgas i stedet, og en leverance frosset sådan beholder det og sin hash. En leverance frosset under en ældre version dækker ikke det, der kom til i en senere; rapporten viser, hvilken version den er frosset under. En leverance afregnet, før fastfrysningen blev indført den 6. september 2026, siger not_frozen og beregnes med de aktuelle satser; den er ikke evidens på samme niveau, og rapporten skjuler det ikke.

Genberegn hashen selv

Rapportens revisionsblok indeholder evidence_payload: præcis det objekt, hashen er beregnet over. Opskriften er JSON med sorterede nøgler, uden mellemrum, UTF-8 uden ASCII-escaping, derefter SHA-256. I Python:

Python
import hashlib, json

payload = report["audit"]["evidence_payload"]
canonical = json.dumps(payload, sort_keys=True, separators=(",", ":"),
                       ensure_ascii=False)
digest = hashlib.sha256(canonical.encode("utf-8")).hexdigest()
assert digest == report["audit"]["evidence_hash_sha256"]

Skal en revisor tjekke en udleveret rapport uden at have adgang til tallene igen, svarer GET /api/v2/deals/{id}/evidence/verify?hash=… med fire ting: hashen gemt ved afregningen, hashen genberegnet nu, om den medsendte hash er den gemte, og hvilken offentliggjort sammenfatning den indgår i. Svaret indeholder ingen beløb eller mængder. Kaldet laves med en API-nøgle fra en af handlens parter, og alle felter står i API-referencen.

Substitutionsprisen er forsyningens, og rapporten prøver prisen mod den

Efter varmeforsyningslovens § 20, stk. 1 må en forsyning kun indregne nødvendige omkostninger i varmeprisen (kilde 1). Heraf følger substitutionsprisprincippet, som er fastlagt i tilsynets praksis (Energitilsynet, fra 1. juli 2018 Forsyningstilsynet): en forsyning skal ikke betale mere for købt varme, end det ville koste den selv at producere varmen eller købe den hos andre, og substitutionsprisen opgøres på årsbasis som substitutionsanlæggets samlede gennemsnitsomkostninger, kapitalomkostninger medregnet (kilde 2).

Celembi lægger forsyningens egne meromkostninger ved at modtage varmen (stikledning og veksler som annuitet samt pumpning; booster-varmepumpens drift hører til købers eget temperaturløft) til købers samlede pris, så det er forsyningens hele omkostning ved den købte varme, der holdes op mod substitutionsprisen. Metoden er bygget ind tre steder:

  1. Maksimalprisen håndhæves på købers samlede pris. Forsyningen dokumenterer substitutionspris og meromkostning pr. MWh på sit anlæg. Derefter afviser platformen et behov med en maksimalpris over substitutionsprisen minus meromkostningen. Maksimalprisen er købers samlede pris pr. MWh ekskl. moms: varmen, tabstillægget for rørets varmetab, tariffer og købers eget temperaturløft. Platformen sætter derfor varmeprisen højst til maksimalprisen minus eget løft og tariffer, divideret med 1 plus tabsandelen (det tabte over det leverede), rundet ned, så også handlens afrundede beløb tilsammen holder sig inden for maksimalprisen. Prøven i rapporten viser for hver leverance, om købers samlede pris holdt sig under substitutionsprisen.
  2. Prøven står i rapporten. Substitutionsprøven i rapporten sammenligner købers samlede pris pr. MWh ekskl. moms (varme, tariffer, tabstillæg, temperaturløft) plus meromkostningen med substitutionsprisen, der også er uden moms, og viser luften i kroner og procent og om prøven er bestået. Er substitutionsprisen forsyningens egen, står der partner_documented. Ellers bruges Celembis estimat for det varmealternativ, forsyningen har oplyst på sit anlæg, og det står der. Har forsyningen hverken oplyst et varmealternativ eller dokumenteret en substitutionspris, er der ingen pris at prøve mod: rapporten har da ingen prøve, siger hvorfor og regner ingen undgået CO₂ (fra beregningsversion 10).
  3. Prøven fryses. Substitutionspris og meromkostning indgår i det grundlag, der fastfryses ved afregningen. Hver leverance prøves altså for sig mod den substitutionspris, der gjaldt ved dens afregning, og prøven giver samme resultat, når tilsynet spørger. Opdaterer forsyningen sin substitutionspris på anlægget, holdes de behov, der lægges op derefter, under den nye pris, og de næste leverancer prøves mod den.

Til anmeldelsen efter § 21. (kilde 1) Anmelder forsyningen sine priser og betingelser for køb af overskudsvarme, kan denne side vedlægges som metoden for prisprøven. Hver handel dokumenteres efter samme metode, og månedens evidenspakke pr. anlæg er det bilag, der kan vedlægges, hvis tilsynet beder om det. Hvad anmeldelsen skal indeholde, afgør forsyningen og dens rådgiver. Celembi ændrer ikke metoden uden ny beregningsversion.

Måneden hænger sammen med leverancerne

Månedens evidenspakke pr. anlæg (GET /api/v2/entities/{id}/monthly-evidence-report) summerer de afregnede leverancer i måneden, og den summerer med hver leverances fastfrosne faktor og sats, ikke med dagens. Hver leverance regnes og prøves med det, den blev frosset med: sit varmealternativ og sin faktor eller sin dokumenterede substitutionspris, også hvis anlægget siden har oplyst, ændret eller fjernet sit alternativ eller sin pris. En leverance frosset uden et varmealternativ regnes uden undgået CO₂, og har den heller ingen dokumenteret pris, er der intet at prøve den mod. En frosset med naturgas før version 10 kan stå for et alternativ, der ikke var oplyst. Månedens substitutionsprøve omfatter de leverancer, der har en pris at prøve mod, hver mod sin egen pris vægtet med volumen, og den nævner kilden, som leverancernes egne rapporter gør; har de forskellige kilder, står der mixed. Den bærer listen over de enkelte leverancers hashes i sin egen hash, så kæden fra måned til afregning er en del af evidensen. Den udskriftsklare udgave viser, hvor mange af månedens leverancer der bærer et fastfrosset bevis.

Hvad evidensen er, og ikke er

Til CSRD/ESRS E1 og EED artikel 26. (kilde 4, kilde 5 og kilde 6) Emissionsblokken oplyser undgået CO₂ som volumen gange emissionsfaktoren for det alternativ, køberen selv har erklæret, og undgået afgift med den sats, der gjaldt ved afregningen. Begge er beregninger på et erklæret alternativ, ikke målte emissioner, og rapporten skriver grundlaget ud. Har køberen ikke erklæret et alternativ, regnes ingen undgået CO₂ og ingen undgået afgift. Faktoren følger det alternativ, der står på købers anlæg; skal et andet lægges til grund, sættes det på anlægget, før leverancen afregnes. Efter afregning er det fastfrosset.

Kilder

  1. LBK nr. 465 af 7. maj 2026: Bekendtgørelse af lov om varmeforsyning (varmeforsyningsloven), § 20, stk. 1 om nødvendige omkostninger og § 21 om anmeldelse af tariffer og betingelser - Retsinformation
  2. Sekretariatet for Energitilsynet: Vejledende udtalelse om substitutionsprisprincippet og omkostningsfordeling på anlæg med forenet produktion, 4. juli 2017, j.nr. 17/02452. Offentliggjort af Forsyningstilsynet; arkiveret kopi - Internet Archive
  3. LOV nr. 700 af 24. maj 2022: Lov om bogføring (bogføringsloven), § 12 om opbevaring af regnskabsmateriale i 5 år - Retsinformation
  4. Direktiv (EU) 2023/1791 om energieffektivitet (EED), artikel 26 - EUR-Lex
  5. Direktiv (EU) 2022/2464 om virksomheders bæredygtighedsrapportering (CSRD) - EUR-Lex
  6. Delegeret forordning (EU) 2023/2772 med standarderne ESRS, herunder E1 - EUR-Lex
  7. RFC 3161: Time-Stamp Protocol (TSP) - RFC Editor

Beregneren viser jeres egne tal, som forsyning eller som virksomhed med overskudsvarme. På et møde viser vi en afregnet leverance fra demomiljøet med evidenspakke, payload og verifikationskald.

Beregn jeres tal Book et møde (30 min)

Siden følger koden: beregningsversionen står i hver rapport, og en ændring af opskriften får en ny version, aldrig en stille genberegning. Spørgsmål: kontakt@celembi.dk.