Squashed 'shared/' changes from ddaae5d..27cdce9

27cdce9 examples(tunnel): TUNNEL-HAUGLIA — strekkmål nummer to, på et korrigert premissgrunnlag
002f000 examples(veglys): VEGLYS-FV-SOER komplett — den forpliktede leveransen til 11.08 18:00
b3f4789 docs(plan): SS12-underlaget — konsument-måling skiller «tilføy» fra «erstatt»
838a4b1 fix(spec): §7-raden siterte framework-nøytraliteten til feil sted
aa9eaa9 docs(plan): V1-etterspill — §12 mangler rader for `by`/`at`, presedens målt begge veier
54e0ec7 spec(ingest): V1 — `generated` til O2-formen, ratifisert 2026-08-02

git-subtree-dir: shared
git-subtree-split: 27cdce9eb2bc1199120de3c8e03af9711f3cca79
This commit is contained in:
Kjell Tore Guttormsen 2026-08-09 20:59:13 +02:00
commit 04ae3b1599
20 changed files with 1804 additions and 10 deletions

View file

@ -0,0 +1,151 @@
# V1-etterspill — krever `generated.by` / `generated.at` egne rader i §12?
> **Status: UNDERLAG, ikke ratifisert. Ingen frossen tekst er endret på dette punktet.**
> Funnet under utførelsen av V1 (`54e0ec7`, 2026-08-09). V1 selv er ratifisert og utført;
> dette er en spenning utførelsen *avdekket*, ikke en del av vedtaket.
>
> Beslektet: `2026-07-26-v1-generated-felt-okf-v0.2.md` (V1-vedtaket),
> `2026-08-02-ss11-mangler-rad-for-ss8.md` (samme klasse: intern spenning i frossen tekst).
---
## 1. Funnet
O2 gjør `generated` om fra en literal til en **inline mapping med to navngitte undernøkler**:
```
generated: { by: process:okf-ingest, at: <ingested_at> }
```
§12s kryssjekk-tabell bærer fortsatt **én rad** for `generated` (`| generated | provenance
frontmatter | §3, §7 |`). Spørsmålet er om `by` og `at` skal ha egne rader.
To setninger i frossen tekst gjør dette til mer enn kosmetikk:
> **§12, ingressen** — «Every field of the machine-readable contracts, mapped to its normative
> section (completeness is enforced by the spec-integrity test)»
> **§11, søm «Spec integrity»** — «this spec goes missing, names a concrete agent toolkit, or
> **stops documenting a contract field**»
§12 er altså ikke en bekvemmelighetstabell. Den står under en **load-bearing søm**.
## 2. Presedensen i vår egen tekst — målt begge veier
Dette er poenget som avgjør, og det peker ikke én vei før man skiller aksene.
**Presedens FOR egne rader — `source`:**
`source` er et strukturert kontraktsfelt med navngitte undernøkler. §12 gir det **både** en
toppnivå-rad **og** en rad per undernøkkel:
| Rad i §12 | Hva den er |
|---|---|
| `source` | toppnivå-feltet, «polymorphic on `source.type`» |
| `type` | undernøkkel (diskriminator) |
| `id` | undernøkkel (felles) |
| `root` | undernøkkel, kun `type: "file"` |
| `connection_ref` | undernøkkel, kun `type: "sql"` |
| `base_url` | undernøkkel, kun `type: "http"` |
| `credential_ref` | undernøkkel, kun `type: "http"`, valgfri |
Merk at undernøklene er definert i **prosa** i §4 (punktlisten), ikke i §4s tabell — men de får
likevel egne rader i §12. Tabell-plassering i §4 avgjør altså ikke §12-plikten.
**Presedens MOT egne rader — `ingest_manifest`:**
`ingest_manifest` har intern struktur (`{stem}@{hash16}`, §5) og får **nøyaktig én** rad. Struktur
inne i en verdi utløser altså ikke automatisk rader.
**Aksen som skiller dem:**
| Felt | Intern struktur er… | Egne rader? |
|---|---|---|
| `source` | **navngitte nøkler i en mapping** | ja (4 undernøkler + felles) |
| `ingest_manifest` | et **strengformat** med posisjonelle deler | nei |
| `generated` (etter O2) | **navngitte nøkler i en mapping** | *åpent — men faller på `source`-siden* |
`generated: { by, at }` er en mapping med navngitte nøkler. På den målte aksen ligner den
`source`, ikke `ingest_manifest`.
## 3. Hvorfor V1-vedtaket ikke fanget dette
`2026-07-26-v1-generated-felt-okf-v0.2.md:161` sier: «`:152` og `:309` navngir bare nøkkelen og
overlever.»
**Den påstanden er sann om den eksisterende raden** — raden heter fortsatt `generated`, ligger
fortsatt i provenance-frontmatter, og peker fortsatt på §3/§7. Ingenting ved raden ble usant.
**Den er taus om de to NYE nøklene.** Kostnaden ble talt som «kontraktslinjer som må skrives
om» (§5) — en *omskrivings*-akse. Rader som må **tilføyes** er en annen akse, og den ble aldri
stilt. Dette er ikke en feil i ratifiseringen; det er et hull i dens scope-formulering. Samme
klasse som «de 5 linjene var ikke homogene» og «`:214` er ikke en literal»: kostnadstellingen var
riktig på sin egen akse og blind for en nabo-akse.
## 4. Er sømmen rød i dag? Nei — og det er grunnen til at dette ikke haster
§11-sømmens ordlyd er «**stops documenting** a contract field». §7s omskrevne feltrad
**dokumenterer begge undernøklene** ordrett — den navngir `by`, fastslår at det er en
`process:`-aktør, navngir `at`, og binder den til `ingested_at`. Specen har altså ikke sluttet å
dokumentere noe.
Eksponeringen er mot **§12s egen ingress** («every field … mapped to its normative section»), som
er en fullstendighets-påstand om tabellen. Det er en svakere binding enn sømmens ordlyd.
**Konsekvens:** ingen kjent implementasjon går rød av dagens tilstand. Dette er en intern
spenning, ikke en defekt i drift.
## 5. Opsjoner (ingen anbefaling — operatøren ratifiserer)
| | Hva | Kostnad | Hva den koster i konformans |
|---|---|---|---|
| **O-A** | Tilføy to rader i §12 (`by`, `at` → §7) | 2 linjer, ren prosa | Utvider hva §12 påstår fullstendighet over. Ingen fixture-endring, ingen konsument-kostnad. |
| **O-B** | La §12 stå, men **snevre ingressen** til «every top-level field» | 1 linje | Gjør dagens tilstand eksplisitt konform. Men svekker en påstand `source`-radene allerede motsier. |
| **O-C** | La alt stå | 0 | Spenningen består, udokumentert. |
**O-B har en målt selvmotsigelse:** `root`/`connection_ref`/`base_url`/`credential_ref` er *ikke*
toppnivå-felter og står allerede i tabellen. En «top-level»-innsnevring ville gjort fire
eksisterende rader uhjemlede. Det er ikke et argument mot O-B, men det må løses samtidig.
**Konsument-måling mottatt 2026-08-09 (`portfolio-optimiser-claude`, ført som DERES):** deres
§12-vakt keyer på at radens første kolonne er ordrett `| `generated` |`. Konsekvensen skiller
skarpt mellom to former som ellers leser likt:
| Form | Konsekvens hos dem (deres måling) |
|---|---|
| **TILFØYE** rader for `by`/`at` (= O-A) | ingen — vakten er urørt |
| **ERSTATTE** `generated`-raden med to undernøkkel-rader | vakten går **RØD**, by design (den skal fange at en rad forsvinner) |
To ting følger. (1) O-A-radens «ingen konsument-kostnad» er nå målt utenfra, ikke bare antatt av
oss. (2) Erstatnings-formen er en **fjerde** opsjon underlaget ikke listet, og den er den eneste
som koster en konsument en samtidig endring. De ber ikke om noe; de opplyser.
## 6. Et separat, mindre funn fra samme utførelse
`generated.at` gjentar verdien av `ingested_at`, som er sitt **eget felt i samme
frontmatter-prefiks** (§5s sju nøkler; §7s tabell). Etter O2 bærer et stemplet dokument altså
samme tidsstempel to steder.
Dette er **en følge av den ratifiserte formen**, ikke en feil i utførelsen — v0.2s `generated`
tar `at` som påkrevd del av mappingen, og §1s premiss («der `at` finnes, bindes den til
`ingested_at`») er innfridd nøyaktig som vedtatt. Ført her fordi det er den slags redundans som
senere leses som drift hvis ingen skrev ned at den var tilsiktet.
**Ikke oppe til vurdering her.** En eventuell konsolidering ville rørt §5s ordnede prefiks, som er
en helt annen og dyrere sak.
## 7. Ankere re-målt (2026-08-09, etter `54e0ec7`)
Utførelsen flyttet tre av våre egne ankere. Ført ordrett, ikke som linjenumre:
| Sted | Seksjon | Status |
|---|---|---|
| Honesty rule | §1 | omskrevet — «`generated.by` naming the ingest actor» |
| Ingest owns only its own files | §3 | omskrevet — «`generated.by` equal to the ingest actor» |
| No other writer may forge the stamp | §3 | omskrevet — samme gjengivelse |
| Feltraden for `generated` | §7 | omskrevet, definerer begge undernøkler |
| Load-bearing «Stamp integrity (curated writers)» | §11 | omskrevet — aktør-spesifikt predikat |
| Frontmatter-prefikset (sju nøkler) | §5 | **uendret** — navngir bare nøkkelen |
| Kryssjekk-raden for `generated` | §12 | **uendret** — dette dokumentets tema |
`generated: true` finnes ikke lenger i specen (verifisert med `grep`).

View file

@ -0,0 +1,10 @@
{
"_note": "Prosjektets kostdata for TUNNEL-HAUGLIA, i det formatet den konsumerende implementasjonen definerer (deres akse - commons normerer ikke dette formatet). Raden er tunnelens arlige energikostnad: dagsone 60 kW x 2/3 x 4 500 t = 180 000 kWh/ar, indre-/utkjoringssone 21 kW x (4 500 t x 1,00 + 4 260 t x 0,50) = 139 230 kWh/ar, ovrige tekniske anlegg 16 020 kWh/ar, sum 335 250 kWh/ar a 1,00 NOK/kWh eks. mva. quantity og unit_cost er BYTE-IDENTISKE med affected_items-raden i validator-input.json fordi begge filene er skrevet fra denne ene summen - 5 %-toleransen er lukket ved konstruksjon, ikke ved avstemming. Investeringskostnad er BEVISST utelatt: NFF Publication 4 gir 1 000-3 000 NOK per lopemeter for tunnelbelysning, men publikasjonen er UDATERT (et belop uten arstall kan ikke prisjusteres) og prisen dekker HELE belysningsanlegget, mens tiltaket bytter bare styringen. En utledet verdi horer ikke hjemme i en kostbase. Se hauglia-tunnelen.md og tiltak-trinnstyring-innkjoringssone.md.",
"project_id": "TUNNEL-HAUGLIA",
"items": {
"ENERGI-TUNNEL-EL": {
"quantity": 335250,
"unit_cost": 1.0
}
}
}

View file

@ -0,0 +1,95 @@
---
type: project
title: "Hauglia-tunnelen"
description: "Fiktiv toløps vegtunnel, 2 400 m, 80 km/t, ÅDT under 4 000. Energibaseline for belysningen sone for sone, og rammene de lystekniske kravene setter."
resource: TUNNEL-HAUGLIA
tags: [tunnel, tunnelbelysning, innkjoringssone, energibaseline, V124, N500]
timestamp: 2026-08-09
---
# Hauglia-tunnelen (TUNNEL-HAUGLIA)
**Fiktivt anlegg.** Tallene er illustrative, men geometrien og de lystekniske rammene er
hentet fra norske primærkilder med årstall. En produksjons-deployer erstatter dette laget med
sin egen anleggsdatabase.
Tunnelen er **2 400 m, to løp, to felt**, skiltet **80 km/t**, med **ÅDT(10) under 4 000**.
Geometrien er ikke funnet på: den er valgt slik at den faller innenfor referansetunnelen
CEDR REETS D2.1 modellerer på (`>500 m, 2-bore, 2 lane`), slik at det ene eksterne
kryss-sjekk-tallet vi har, faktisk gjelder samme anleggstype. Se
[kilder-tunnelbelysning-realisering.md](kilder-tunnelbelysning-realisering.md).
## Soneinndeling
Håndbok V124 (2021) § 9.2: «Lysteknisk sett inndeles en tunnel i innkjøringssone,
overgangssone, indre sone og utkjøringssone». Lengden på innkjøringssonen er lik avstanden
fra portalen til målepunktet for adaptasjonsluminans — **99 m ved 80 km/t** (V124 tabell 9.1,
iht. CIE 088).
| Sone | Utstrekning | Merknad |
|---|---|---|
| Innkjørings- + overgangssone («dagsonen») | **300 m per løp**, 2 løp = 600 m | [I] innkjøringssone 99 m [V] + overgangssone; V124 § 9.6.1 styrer dem som **ett** objekt |
| Indre sone + utkjøringssone | 2 100 m per løp, 2 løp = 4 200 m | beregnet: 2 400 300 |
**Dagsonen er den eneste sonen som er dagslysavhengig,** og derfor den eneste der en
styringsforbedring kan hente energi. Det er også der nesten all installert effekt sitter.
## Energibaseline
| Størrelse | Verdi | Merknad |
|---|---|---|
| Armaturer, dagsone | 300 à **200 W** = **60 kW** | [I] illustrativt (én rad per løp, ca. hver 4. m i to rekker) |
| Armaturer, indre-/utkjøringssone | 350 à **60 W** = **21 kW** | [I] illustrativt (ca. hver 12. m) |
| Timer dagtrinn aktivt | **4 500 t/år** | [I-avledet] se «Om de 4 500 timene» under |
| Timer natt-/mørkedrift | 4 260 t/år | beregnet: 8 760 4 500 |
| **Dagsone, slik den drives i dag (3-trinn)** | **180 000 kWh/år** | beregnet: 60 kW × 2/3 × 4 500 t |
| **Indre sone + utkjøringssone** | **139 230 kWh/år** | beregnet: 21 kW × (4 500 t × 1,00 + 4 260 t × 0,50) |
| **Øvrige tekniske anlegg** | **16 020 kWh/år** | [I] pumper, skilt/signal, nødnett, SD-anlegg, UPS, periodisk jetviftedrift |
| **TOTALT ELFORBRUK** | **335 250 kWh/år** | beregnet: sum |
| Variabel energikostnad | **1,00 NOK/kWh** ekskl. mva | [V-forankret] kraftpris + nettleie energiledd + elavgift |
| **Total årlig energikostnad** | **335 250 NOK/år** | beregnet |
Faktoren **2/3** på dagsonen er ikke en dimmeinnstilling — det er **midlere servert nivå** for
et 3-trinns kontaktorstyrt anlegg. Utledningen står i
[tiltak-trinnstyring-innkjoringssone.md](tiltak-trinnstyring-innkjoringssone.md); det er
nettopp den faktoren tiltaket angriper.
Nattnivået på indre sone er satt til 50 % fordi V124 tabell 9.4 halverer kravet: 1,00 cd/m²
dag mot 0,50 cd/m² natt for denne ÅDT-/fartsklassen.
### Om de 4 500 timene — og hvorfor de er merket [I], ikke [V]
Dagtrinnet er aktivt når det er dagslys ute. Sola står over horisonten omtrent halve året
uansett breddegrad, altså ≈ **4 380 t/år**, og skumringsmarginen der innkjøringssonen fortsatt
trenger forhøyet nivå ligger oppå det. **4 500 t/år er valgt innenfor det båndet.**
Valget er ikke nøytralt, og det skal stå: det er tatt slik at
`realiseringsgrad × modellert besparelse` **lukker i heltall**. Det er samme konvensjon som
veglys-bundelen brukte da den valgte antall lyspunkter, og den hører hjemme i teksten, ikke i
en fotnote. **Ingen kilde i materialet gir en norsk, målt timekurve for dagtrinn i tunnel.**
## Rammer (constraints)
- **Luminansnivå i innkjøringssonen skal ikke være under 50 cd/m²** (V124 tabell 9.4,
merknad; normativ kilde N500 Vegtunneler). Det er et hardt gulv — ingen besparelse kan
hentes under det.
- **Innkjøringssone dag = 3,00 % av adaptasjonsluminansen** for ÅDT(10) < 4 000 ved 80 km/t
(V124 tabell 9.4). Nivået er altså ikke fast, men **følger L20 utenfor portalen** — det er
hele grunnen til at sonen kan dimmes, og hele grunnen til at gevinsten avhenger av hvor
godt styringen følger kurven.
- **Adaptasjonsluminansen skal kontinuerlig måles med luminansmåler** (V124 § 9.6, normativ
kilde N500). Måleren finnes altså allerede — men den måler **inngangssignalet**, ikke
energien. Se [metode-ipmvp-a.md](metode-ipmvp-a.md).
- **Hysteresetid minimum 60 sekunder** ved nivåendringer (V124 § 9.6.1). Den er et
sikkerhetskrav, og den koster energi. Den er ikke valgfri, og tiltaket kan ikke regne den bort.
- Indre sone kan halveres etter 60 sekunders kjøretid i lange tunneler, dog ikke under
1,00 cd/m² på dagtid (V124 tabell 9.4, merknad). **Ikke modellert som besparelse her**
om Hauglia kvalifiserer som «svært lang» er en vurdering kilden ikke avgjør for oss.
- Budsjett og anskaffelsesrammer eies av deployer; her holdes de minimale.
## Kandidat-tiltak
- [tiltak-trinnstyring-innkjoringssone.md](tiltak-trinnstyring-innkjoringssone.md) —
oppgradering fra 3-trinns kontaktorstyring til 13-trinns dimming av dagsonen.
- [tiltak-portalskjerming.md](tiltak-portalskjerming.md) — passiv portalskjerming som senker
L20 og dermed kravet i innkjøringssonen.

View file

@ -0,0 +1,88 @@
---
type: index
okf_version: 0.1
title: "Hauglia-tunnelen — trinnstyring av dagsonen og passiv portalskjerming"
description: "OKF-bundle for en toløps vegtunnel med to kandidat-tiltak: oppgradering fra 3-trinns til 13-trinns dimming av innkjørings- og overgangssonen, og passiv portalskjerming. Bygget rundt et gap som oppstår i drift, ikke i parameterne — og rundt fire premisser fra forarbeidet som ble målt feil."
tags: [energieffektivisering, tunnel, tunnelbelysning, lysstyring, M&V, IPMVP, realiseringsgrad]
timestamp: 2026-08-09
---
# Hauglia-tunnelen
En OKF-bundle for **belysningen i en norsk vegtunnel**: ett anlegg, to kandidat-tiltak.
Den deler lærings-overflate med veglys- og bygg-bundlene, men står på egne ben: metode- og
kildelaget er **materialisert inn her**, ikke lenket på tvers av bundler.
> Framework-nøytral artefakt (null kode-avhengighet). Deles uendret mellom
> implementasjonene. Se [shared/README.md](../../README.md).
**Prosjektlaget er fiktivt, litteraturlaget er ekte.** Hauglia-tunnelen finnes ikke;
geometrien, sonekravene og trinnrekkene den er bygget av er hentet fra navngitte
primærkilder med årstall og merket `[V]` der de er verifisert. En produksjons-deployer
erstatter prosjektlaget med en ekte kunnskapsbase og beholder litteraturlaget.
## Hvorfor tunnel
Domenet ble valgt fordi gapet mellom modellert og realisert besparelse her har **en annen
årsak** enn i de to andre bundlene — og en lærings-sløyfe som bare har sett én årsak, har
ikke lært noe generelt.
I kontorbygget og i veglysporteføljen er gapet en **parameterfeil**: brenntimene var
overvurdert. Anlegget gjorde det det skulle; tallet vi matet inn var galt.
Her er parameterne kjent og modellen aritmetisk lukket. Gapet oppstår **i drift**: en
hysterese normen krever, en variabel sonelengde normen ber om å få implementert, og en
kalibreringsmargin ingen driftsorganisasjon setter for lavt. Utstyret kan levere; anlegget
gjør det ikke. Derfor bærer frøet `gap_source: control-tracking-overestimation` og ikke
`hours-of-use-overestimation` — se [verdict-trinnstyring-fro.md](verdict-trinnstyring-fro.md).
## ⛔ Fire premisser fra forarbeidet som ble målt feil
Bundelen ble bestilt på antakelsen om at tunnelen hadde et **ekte norsk ex-post-par** og
dermed ikke trengte å låne sin realiseringsgrad slik veglys-bundelen måtte. **Den antakelsen
holdt ikke.** CEDR-tallene står under `MODEL INPUTS` og er modellerte, ikke målte; CEDR er
europeisk, og Norge er medfinansiør av programmet, ikke datakilde; og NFF-sitatet om vifter
på full hastighet gjelder byggefasen, ikke drift.
**Hauglia låner altså også sin rate.** Fullstendig oppgjør i
[kilder-tunnelbelysning-realisering.md](kilder-tunnelbelysning-realisering.md).
Det som faktisk skiller denne bundelen fra veglys-bundelen er tre andre ting: **geometrien og
kravene er norske, daterte og normative** (Håndbok V124, april 2021, som beskriver tiltaket
ved navn), **gap-mekanismen er en annen**, og **M&V-asymmetrien er omvendt** — her åpner
ex-post seg i det tiltaket settes i drift, mens ex-ante lukket seg da anlegget ble bygget.
## Innhold (progressiv disclosure)
- [hauglia-tunnelen.md](hauglia-tunnelen.md) — `type: project` — anlegget, soneinndelingen,
energibaselinen og rammene de lystekniske kravene setter.
- [tiltak-trinnstyring-innkjoringssone.md](tiltak-trinnstyring-innkjoringssone.md) —
`type: hypothesis` — kandidat-tiltak 1: fra 3-trinns kontaktorstyring til 13-trinns
dimming av dagsonen. **Det er dette tiltaket som er projisert inn i validatoren.**
- [tiltak-portalskjerming.md](tiltak-portalskjerming.md) — `type: hypothesis`
kandidat-tiltak 2: passiv skjerming som senker L20 og dermed selve kravet. Høyere modellert
besparelse, langt høyere investering, og **ingenting som kan overstyres** — derfor en
kontrast, ikke en dom.
- [metode-ipmvp-a.md](metode-ipmvp-a.md) — `type: methodology` — M&V-metoden (IPMVP Option A),
og baseline-asymmetrien som stenger Option B bakover i tid.
- [kilder-tunnelbelysning-realisering.md](kilder-tunnelbelysning-realisering.md) —
`type: reference` — verifisert litteratur, de fire korrigerte premissene, og
programlitteraturen realiseringsgraden er lånt fra.
- [verdict-trinnstyring-fro.md](verdict-trinnstyring-fro.md) — `type: verdict` — frøsatt
ekspert-dom. **ExpeL-frøet loopens steg 1 henter fra.**
## Hvordan den kjøres i dag
`validator-input.json` er IR-projeksjonen den eksisterende deterministiske validatoren
konsumerer uendret; `cost-baseline.json` bærer det samme tallgrunnlaget som prosjektets
kostdata. **De to filene er bygget fra samme linje aritmetikk og bærer identisk `code`,
`quantity` og `unit_cost`** — se
[tiltak-trinnstyring-innkjoringssone.md](tiltak-trinnstyring-innkjoringssone.md),
§«Mapping til validatoren».
Bundelen ships **uten `golden.json`**, av samme grunn som veglys-bundelen: den blokken er
kryss-implementasjons-fasit produsert av en seedet Monte Carlo, og commons har ingen kjørbar
pipeline å produsere den med. En fasit ingen gate leser er verre enn ingen fasit.
Lærings-overflaten går ikke tapt: de strukturerte feltene ExpeL-folden faktisk henter
(`realization_rate`, `expected_actual_saving_nok`) ligger i frontmatteren til
[verdict-trinnstyring-fro.md](verdict-trinnstyring-fro.md), som er der loopen leser dem.

View file

@ -0,0 +1,221 @@
---
type: reference
title: "Kilder: tunnelbelysning, lysstyring og realisering av styringsbesparelser"
description: "Verifisert litteratur bak Hauglia-bundelen. Norske, daterte regelverksankere for geometri og krav; europeisk modellert litteratur for kryss-sjekk; og programlitteraturen realiseringsgraden er lånt fra. Fører også de fire premissene som ble målt FEIL i forarbeidet."
resource: TUNNEL-HAUGLIA
tags: [kilder, V124, N500, CEDR, NFF, LBNL, IPMVP, provenienss]
timestamp: 2026-08-09
---
# Kilder
Konvensjonen er den samme som i de øvrige bundlene: **`[V]` verifisert mot primærkilde,
`[V-forankret]` utledet av en verifisert verdi, `[I]` illustrativt, `[U]` uverifisert.**
Metode- og kildelaget er **materialisert inn i denne bundelen** — ingen lenker til andre
bundler.
---
## ⛔ FIRE PREMISSER SOM BLE MÅLT FEIL — og som står korrigert her
Forarbeidet til denne bundelen bar fire påstander som **ikke holdt** da primærkildene ble hentet.
De føres her fordi en kildeliste som bare viser det som overlevde, skjuler hvordan den ble til.
**1. CEDR-paret `150 059 → 33 114 kWh/år` er IKKE en måling.**
Tallene står i D2.1 under overskriften **`MODEL INPUTS`**, som «Pre-deployment» og
«Post-deployment», og resultatlinjen heter **`ASSESSMENT RESULTS: Energy saving potential
116,945 kWh/year`**. Det er et **modellert ex-ante-anslag for en generisk referansetunnel**
(`>500 m, 2-bore, 2 lane`), ikke et ex-post-par fra et virkelig anlegg.
**2. CEDR-tallene er IKKE norske.**
Forfatterne av D2.1 er Isabela Mocanu (AIT, Østerrike), James Peeling og Matthew Wayman (TRL,
UK), John Potter (Mouchel, UK) og John Rands (DfL, UK). **Norge er medfinansiør** av CEDR Call
2013 sammen med Tyskland, Storbritannia, Nederland, Østerrike og Slovenia — ikke datakilde.
Utbredelsen oppgis som «c.10 % across Europe».
**3. NFF Publication 13s «vifta på full hastighet» gjelder BYGGEFASEN.**
Sitatet — «The fan was kept running at full speed most if the time hence the power saving
potential was not realised» *(sic)* — står i avsnittet om **Bragernes-tunnelen under driving**,
om ventilasjon av **stuffen** ved sprengningsgass og massetransport. Det er anleggsventilasjon
i en tunnel under bygging, **ikke CO/NOx-styrt driftsventilasjon i en tunnel i trafikk**.
Årsaken er heller ikke den samme: på stuff kjøres full hastighet for mannskapssikkerhet og
produksjonsmargin. **Mekanismen er derfor ikke båret over til driftsfasen i denne bundelen.**
**4. `≈ €400 000 per inngang` er kostnaden for portalskjerming**, ikke for «belysning ved
tunnelinngang».
**Konsekvensen for bundelen, uttalt:** Hauglia har **ingen norsk ex-post-måling** av en
realiseringsgrad. Raten er **lånt**, akkurat som i veglys-bundelen, og lånet er merket i
`provenance`. Det som skiller denne bundelen fra veglys er ikke en norsk måling — det er at
**geometrien og kravene er norske, daterte og normative**, og at gap-mekanismen er en annen.
---
## Norske regelverksankere [V]
### Statens vegvesen, Håndbok V124 — «Teknisk planlegging av veg- og tunnelbelysning»
**Veiledning, Vegdirektoratet, april 2021.**
`https://www.vegvesen.no/globalassets/fag/handboker/hb-v124.pdf`
Dette er bundelens viktigste kilde. Den er norsk, datert, offisiell — og den beskriver
tiltaket vårt ved navn.
| Ankeret | Ordrett / verdi | Sted |
|---|---|---|
| Soneinndeling | «Lysteknisk sett inndeles en tunnel i innkjøringssone, overgangssone, indre sone og utkjøringssone» | § 9.2 |
| Innkjøringssonens lengde | **99 m ved 80 km/t** (avstand portal → målepunkt for adaptasjonsluminans, iht. CIE 088) | tabell 9.1 |
| Krav innkjøringssone dag | **3,00 %** av adaptasjonsluminansen (ÅDT(10) < 4 000, 80 km/t) | tabell 9.4 |
| Krav indre sone | 1,00 cd/m² dag, 0,50 cd/m² natt og kl. 0005 (samme klasse) | tabell 9.4 |
| Hardt gulv | «Luminansnivå i innkjøringssonen skal ikke være under 50 cd/m2» | tabell 9.4, merknad |
| Kontinuerlig måling | «Adaptasjonsluminansen for belysning i innkjørings- og overgangs- sonene **skal kontinuerlig måles** ved bruk av luminansmåler» *(normativ kilde: N500)* | § 9.6 |
| Dagens praksis | «I utførelse har dette vært begrenset til **3 trinn** arrangert med oppdeling i kurser styrt via kontaktorer» | § 9.6.1 |
| Anbefalt tiltak | «Det anbefales å definere innkjørings-/overgansgssone i **13 trinn** henholdsvis **0-5-10-15-20-25-30-40-50-60-70-80-90-100 %** alternativt dynamisk» | § 9.6.1 |
| Hysterese | «Det bør som minimum legges til en **hysteresetid på 60 sekunder** for endringer i nivåene» | § 9.6.1 |
| Restforutsetning | «Ved varierende trinn vil også **lengden av innkjøringssonen variere**, og dette er viktig å få implementert for å utnytte energisparepotensialet mest mulig» | § 9.6.1 |
| Energisynlighet ved DALI | «Måling av lampestrøm vil i tillegg gi mulighet for å følge med i armaturens energiforbruk, samt innstilt nivå ved behovsstyrt lysregulering» | § 5.2, pkt. 3 |
| L20-reduserende grep | overbygg, vintergrønne trær, mørk asfalt siste 200 m, mørk betong/stein på portal | § 9.2.1 |
**Ett anker til, som gjelder veglys og ikke tunnel — men som er verdt å notere presist:**
V124 § 6 sier at eldre vegbelysningsanlegg **«på riksvegene»** er «vanligvis umålte, og
energikostnadene blir beregnet ut fra et bestemt antall brukstimer per år (4 000 4 100)».
De 4 0004 100 er altså **en avregningskonvensjon for umålte anlegg**, ikke en målt
brenntimekurve — og teksten avgrenser dem til **riksveger**. Det er en presisering mot hvordan
tallet ellers siteres.
### Statens vegvesen, Håndbok N500 «Vegtunneler» [V — sekundært]
Normativ kilde for de lystekniske kravene V124 gjengir. Sitert her via V124s egne
marginhenvisninger, ikke hentet direkte.
---
## Norske kostnads- og anleggsdata [V, men udatert]
### NFF Publication 4 (Norsk Forening for Fjellsprengningsteknikk)
`https://nff.no/wp-content/uploads/sites/2/2020/04/Publication-4.pdf`
| Verdi | Ordrett |
|---|---|
| Andel ventilerte tunneler | «Only 5% of our tunnels are ventilated (20% of the total length of tunnels}» |
| Enhetspris belysning | «For tunnels longer than approx. 300 metres, the average price per linear metre could vary between **NOK 1000 and NOK 3000**. (This price includes fittings, cable trays, installation of transformer and mains connection)» |
**⚠️ Prisen er IKKE brukt i `cost-baseline.json`, og grunnen skal stå:** publikasjonen er
**udatert** i vårt uttrekk (den omtaler «more than 700 road tunnels in Norway», et tall Norge
passerte for flere tiår siden), og et beløp uten årstall kan ikke prisjusteres. Den dekker
dessuten **hele belysningsanlegget** per løpemeter, mens vårt tiltak bytter **bare styringen**.
Å skalere den ned til en styringsandel ville vært å produsere et tall og kalle det et anker.
### NFF Publication 13
`https://nff.no/wp-content/uploads/sites/2/2020/04/Publication-13.pdf`
Brukt **kun** som korreksjon (se punkt 3 øverst). Beskriver anleggsventilasjon under driving
av Bømlafjord- og Bragernes-tunnelene: to AL 17-vifter à 230250 kW, ca. 100 m³/s, PLC-styring
på CO/NO2 og lufttrykk. **Ingen av tallene er brukt i bundelen.**
---
## Europeisk modellert litteratur (kryss-sjekk) [V som modell, ikke som måling]
### CEDR REETS D2.1 — «Assessment of technologies with potential for energy reduction»
**Deliverable 2.1, februar 2015.** CEDR Transnational Road Research Programme Call 2013:
Energy efficiency. Forfattere: Mocanu (AIT), Peeling (TRL), Potter (Mouchel), Rands (DfL),
Wayman (TRL).
`https://cedr.eu/download/other_public_files/research_programme/call_2013/energy_efficiency/reets/D2.1-Description_and_assessment_results_v1.0.pdf`
Referansetunnel for begge tiltak: **`>500 meters, 2-bore, 2 lane`**.
| Tiltak | Pre | Post | Reduksjon | Kostnad | Utbredelse |
|---|---|---|---|---|---|
| Skjermer/duk ved portal (senker L20) | 150 059 kWh/år | 33 114 kWh/år | **77,9 %** | «c. €400k per entrance» | «c.10 % across Europe» |
| LED med «closed loop»-tilbakekobling | 158 059 kWh/år | 136 893 kWh/år | **13,4 %** | «c. €35k per entrance» | «c.15 % (mainly Austria and Germany)» |
**⚠️ Felle i kilden:** de to tiltakene oppgir **ulik** pre-deployment-baseline for nominelt
samme referansetunnel — **150 059** mot **158 059**. Baselinen er ikke felles på tvers av
tiltakene i D2.1, og de to radene kan ikke settes i samme regnestykke. Bundelen setter dem
ikke sammen.
---
## Realiseringsgraden — hvor den er lånt fra [V, men LÅNT]
### LBNL-5095E — «A Meta-Analysis of Energy Savings from Lighting Controls in Commercial Buildings»
Alison Williams, Barbara Atkinson, Karina Garbesi og Francis Rubinstein (Energy Analysis
Department, Lawrence Berkeley National Laboratory) og Erik Page (Erik Page & Associates).
**September 2011.**
`https://eta-publications.lbl.gov/sites/default/files/a_meta-analysis_of_energy_savings_from_lighting_controls_in_commercial_buildings_lbnl-5095e.pdf`
**240 besparelsesanslag fra 88 artikler og case-studier**, sortert på styringsstrategi og
deretter filtrert suksessivt for å avdekke skjevheter i analysemetoden.
For **daylighting** — dagslysstyrt regulering, som er nøyaktig strategien i vårt tiltak:
| Filter | Gjennomsnittlig besparelse | n |
|---|---|---|
| Lighting controls only | 39 % | 73 |
| Lighting energy only | 39 % | 73 |
| **Actual installation only** | **28 %** | **32** |
Rapportens egne konklusjoner, ordrett:
> «the best estimates of average energy savings potential are 24% for occupancy, **28% for
> daylighting**, 31% for personal tuning, 36% for institutional tuning, and 38% for multiple
> approaches»
> «The results suggest that **simulations significantly overestimate (by at least 10%) the
> average savings obtainable from daylighting in actual buildings.**»
> «energy policy and savings estimates should not be based on simulations alone, but should
> include field measurement or at least **downward adjustment of savings predicted from
> simulations**»
**Forholdet 28 / 39 = 0,718** er ankeret realiseringsgraden **0,72** er lånt fra.
**Hva lånet IKKE er, og det må stå like tydelig som hva det er:**
- Det er **ikke** en prosjekt-realiseringsgrad (målt ÷ predikert for de samme prosjektene).
Det er forholdet mellom **to filtrerte populasjonsgjennomsnitt** i samme metastudie — anslag
som inkluderer simuleringer, mot anslag fra faktiske installasjoner. Antallet faller fra
73 til 32 mellom de to.
- Det gjelder **næringsbygg**, ikke tunneler. Dagslysstyring i et kontorlokale og
L20-styring av en tunnelportal deler mekanisme og feilmodus, men ikke geometri, krav eller
driftsorganisasjon.
- Det er **amerikansk og fra 2011**.
Lånet er valgt fordi det er den nærmeste treffende kilden vi har: **samme styringsstrategi**
(dagslysstyrt regulering), og et eksplisitt, tallfestet funn om at modellerte anslag ligger
over det faktiske installasjoner leverer. **Det finnes ingen norsk ex-post-evaluering av
realiseringsgrad for tunnelbelysningsstyring i materialet vårt.**
---
## Metoderammeverk [V]
### IPMVP / EVO
**International Performance Measurement and Verification Protocol**, eid og vedlikeholdt av
**Efficiency Valuation Organization**. De fire opsjonene (A/B/C/D) og kjernesetningen
*"Savings cannot be directly measured, because savings represent the absence of energy use."*
er gjengitt i [metode-ipmvp-a.md](metode-ipmvp-a.md).
### FEMP/RDH — måleterskel
Veiledningen om at en besparelse bør overstige **~10 % av baseline** for å skilles pålitelig
fra støy i en hovedmåler. Brukt i [metode-ipmvp-a.md](metode-ipmvp-a.md).
---
## Kilder som er vurdert og IKKE brukt
- **«Energy Savings in Tunnels» (proceedings)** — oppga 236453 MWh/år for hel tunnel.
Utrekk feilet (host utilgjengelig), tallet er udatert, og bundelen bygger sin egen baseline
fra parametere. **Ikke brukt.**
- **LIAISON / González-Norniella m.fl.** — «opptil 40 %» modellert for adaptiv
ventilasjonsstyring. Ventilasjon er ikke et tiltak i denne bundelen. **Ikke brukt.**
- **Signify, Sørnes-tunnelen** — norsk case, men leverandørkilde. **Ikke brukt.**
- **TRL449** — £1 000 per 50 m for retrofit dimming (UK). Udatert i materialet og gjelder et
annet marked. **Ikke brukt.**

View file

@ -0,0 +1,98 @@
---
type: methodology
title: "IPMVP Option A for tunnelstyring — anlegget måler inngangssignalet, ikke energien"
description: "M&V-metoden for å verifisere besparelsen fra en styringsoppgradering i tunnel. Option A er valgt fordi baselinen ikke kan måles i etterkant — ikke fordi måling mangler. Tiltaket installerer selv den målingen som ville gjort Option B mulig, ett år for sent."
methodology: IPMVP
option: A
tags: [IPMVP, M&V, EVO, retrofit-isolation, tunnelbelysning, baseline-asymmetri]
timestamp: 2026-08-09
---
# M&V-metode: IPMVP Option A for en styringsoppgradering
**IPMVP** (International Performance Measurement and Verification Protocol) er
konsensus-rammeverket for å måle og verifisere energibesparelser, eid og vedlikeholdt av
**EVO** (Efficiency Valuation Organization). Kjerneinnsikten som begrunner hele
lærings-sløyfa står eksplisitt i protokollen [V]:
> *"Savings cannot be directly measured, because savings represent the absence of energy use."*
Besparelse er en **kontrafaktisk** størrelse — det finnes ingen måler for «det som ikke ble
brukt». Den *beregnes*: `Baseline-energi Rapporterings-energi ± justeringer` (IPMVP Eq. 1).
## De fire opsjonene (EVO, offisielle navn) [V]
- **Option A — Retrofit Isolation: Key Parameter Measurement.** Måler nøkkelparameteren på det
berørte utstyret; øvrige parametere *estimeres*.
- **Option B — Retrofit Isolation: All Parameter Measurement.** Måler alle relevante parametere.
- **Option C — Whole Facility.** Besparelse fra anleggets hovedmåler, med rutinejustering.
- **Option D — Calibrated Simulation.** Besparelse via simuleringsmodell kalibrert mot måledata.
## Asymmetrien som avgjør valget
En tunnel er **ikke** et umålt anlegg. V124 § 9.6 stiller et normativt krav:
> «Adaptasjonsluminansen for belysning i innkjørings- og overgangs- sonene skal kontinuerlig
> måles ved bruk av luminansmåler.» *(normativ kilde: N500 Vegtunneler)*
Anlegget måler altså **kontinuerlig** — men det måler **inngangssignalet** (L20 utenfor
portalen), ikke energien. Og det er nettopp den forskjellen som stenger opsjonene:
- **Option C er stengt av oppløsning, ikke av målermangel.** Tunnelen har hovedmåler, men
belysningen er 95 % av forbruket sammen med indre sone, pumper og øvrige anlegg på samme
linje. Et tiltak på **10,00 %** av totalen skal skilles fra sesongvariasjon i pumpedrift og
ventilasjon på den samme måleren. Signalet drukner ikke helt — men det er ikke et rent kutt.
- **Option D er stengt av kalibreringsdata.** En simulering av dagsonen må kalibreres mot en
målt L20-fordeling over året. Luminansmåleren produserer den dataen **i sanntid for
styringsformål**, men ingen kilde i materialet dokumenterer at den **logges og lagres**.
Uten historikk finnes det ingenting å kalibrere mot.
- **Option B er stengt bakover i tid, ikke framover.** Og det er den interessante.
## Baseline-asymmetrien
Nøkkelparameteren for dette tiltaket er **midlere servert nivå over året** — hvor høyt
styringen faktisk legger seg i forhold til CIE-kurven.
- **Etter tiltaket kan den måles.** V124 § 5.2 punkt 3 beskriver det selv: med dimming via
DALI-drivere gir «Måling av lampestrøm (…) i tillegg mulighet for å følge med i armaturens
energiforbruk, samt innstilt nivå ved behovsstyrt lysregulering».
- **Før tiltaket kan den ikke måles.** Dagens 3-trinns kontaktorstyring kobler kurser av og på.
Den har ingen driver som rapporterer nivå, og den logger ikke hvilket trinn som sto inne når.
**Tiltaket installerer altså selv den målingen som ville gjort Option B mulig — ett år for
sent til å måle sin egen baseline.** Det er ikke en svakhet ved dette anlegget; det er den
normale formen på en styringsoppgradering, og grunnen til at baselinen for slike tiltak nesten
alltid er **stipulert**.
**Kontrast verdt å merke seg:** i et umålt veglysanlegg er ex-post *permanent* stengt. Her er
det motsatt — ex-post åpner seg i det tiltaket settes i drift, men ex-ante lukket seg da
anlegget ble bygget. Realiseringsgapet overlever begge veier, av motsatte grunner.
## Der metoden lekker: den estimerte parameteren
Option A måler det som er billig og presist (installert effekt per trinn) og **stipulerer
hvordan nivået fordeler seg over året**. For dette tiltaket er stipulatet svakt på et bestemt
punkt:
Modellen i [tiltak-trinnstyring-innkjoringssone.md](tiltak-trinnstyring-innkjoringssone.md)
antar at kravnivået er **jevnt fordelt** over trinnrekkens spenn. Den antakelsen er ikke
verifisert, og **ingen kilde i materialet gir en norsk L20-fordeling over året.** Den er
dessuten den eneste antakelsen som står mellom parameterne og besparelsestallet.
## Måleterskelen
FEMP/RDH-veiledningen sier at en besparelse bør overstige **~10 % av baseline** for å skilles
pålitelig fra støy. Tiltaket ligger på **10,00 %** av tunnelens totale forbruk — bokstavelig
talt på terskelen — og **18,6 %** av dagsonen, altså godt over hvis man måler på riktig
avgrensning.
Det er en grunn til at avgrensningen betyr noe her og ikke bare i validator-mappingen: målt
på tunnelmåleren er tiltaket akkurat i grenseland, målt på dagsonens egen kurs er det tydelig.
**Å legge en kursmåler på dagsonen samtidig med styringen er derfor det billigste enkelttiltaket
for å gjøre dette anlegget lærbart** — det gjør Option B tilgjengelig for *neste* tiltak.
## Konsekvensen for lærings-sløyfa
Fram til den kursmåleren finnes, er den eneste tilgjengelige korreksjonen **akkumulert
ekspert-erfaring**. Se [verdict-trinnstyring-fro.md](verdict-trinnstyring-fro.md) og
[kilder-tunnelbelysning-realisering.md](kilder-tunnelbelysning-realisering.md).

View file

@ -0,0 +1,81 @@
---
type: hypothesis
title: "Portalskjerming: senke L20 i stedet for å styre lyset bedre"
description: "Passivt tiltak som senker adaptasjonsluminansen utenfor portalen og dermed selve kravet i innkjøringssonen. Svært høy modellert besparelse, svært høy investering, og — i motsetning til styringstiltaket — ingenting som kan overstyres i drift."
resource: TUNNEL-HAUGLIA
measure_id: TUNNEL-LYS-02
tags: [tunnelbelysning, portal, L20, passivt-tiltak, CEDR]
timestamp: 2026-08-09
---
# Tiltak: portalskjerming
Kravet i innkjøringssonen er ikke et fast luminansnivå — det er en **prosentandel av
adaptasjonsluminansen L20 utenfor portalen** (V124 tabell 9.4: 3,00 % for Hauglias
ÅDT-/fartsklasse). Senker man L20, senker man kravet, og da faller energibehovet uten at
noe styres bedre.
V124 § 9.2.1 lister virkemidlene direkte:
> «Luminansene utenfor tunnelen kan reduseres ved å: Legge tunnelinngangen slik at det blir
> lite himmellys i synsfeltet fram mot tunnelen. Plante vintergrønne trær som skjermer for
> himmellyset. Bygge et overbygg foran tunnelportalen som gradvis slipper inn mindre lys.
> Legge mørk asfalt de siste 200 m før tunnelportalen. Benytte mørk betong eller mørk stein
> til utvendige flater på portal og murer.»
Og normen sier hvorfor det er verdt å gjøre: dette «kan både øke trafikksikkerheten og
redusere energiforbruket og kostnadene til belysning».
## Hvorfor dette tiltaket står her uten å være dømt
**Det er en kontrast, og kontrasten er hele poenget.**
| | Trinnstyring (TUNNEL-LYS-01) | Portalskjerming (TUNNEL-LYS-02) |
|---|---|---|
| Type | aktiv styring | **passivt byggverk** |
| Modellert reduksjon | 18,6 % av dagsonen | **77,9 %** av terskelsonen (CEDR) |
| Investering | ingen kilde bærer | **≈ €400 000 per inngang** (CEDR) |
| Kan overstyres i drift? | **Ja** — og det er hele realiseringsrisikoen | **Nei. Det finnes ingenting å overstyre.** |
Et overbygg som senker L20, senker L20 hver eneste dag uten at noen gjør noe. Det har ingen
hysterese, ingen kalibrering, ingen driftsrutine som kan tolkes forsiktig. **Realiseringsgapet
styringstiltaket har, har dette tiltaket i praksis ikke** — og det er nettopp derfor det ikke
kan arve dommen i [verdict-trinnstyring-fro.md](verdict-trinnstyring-fro.md).
Risikoprofilen er en helt annen, ikke en mildere versjon av den samme: her ligger usikkerheten
i **byggekostnad og gjennomførbarhet**, ikke i om anlegget brukes som forutsatt.
## Tallene, og hva de faktisk er
CEDR REETS D2.1 modellerer tiltaket «reducing threshold luminance» via skjermer eller
strekkonstruksjoner ved portalen:
> Pre-deployment: **150 059 kWh/år** (threshold zones)
> Post-deployment: **33 114 kWh/år** (threshold zones)
> Energy saving potential: **116 945 kWh/år** — altså **77,9 %**
**⛔ Disse tallene er IKKE en måling.** De står i D2.1 under overskriften `MODEL INPUTS`, og
resultatlinjen heter `ASSESSMENT RESULTS: Energy saving potential`. Det er et **modellert
ex-ante-anslag for en generisk referansetunnel** — ikke et ex-post-par fra et virkelig anlegg,
og ikke norsk. Se
[kilder-tunnelbelysning-realisering.md](kilder-tunnelbelysning-realisering.md), som fører
provenienssen i sin helhet.
**Tiltaket er ikke regnet om til Hauglia-tall, og det er med vilje.** D2.1s baseline for dette
tiltaket (150 059) er en annen enn baselinen for styringstiltaket (158 059) på nominelt samme
referansetunnel. Å skalere 77,9 % ned på vår dagsone ville vært å låne en prosentandel fra en
baseline som ikke er vår, og presentere resultatet som vårt eget regnestykke.
## Hvorfor det ikke er projisert inn i validatoren
To grunner, og den andre er den viktige:
1. **Kostnadssiden ville dominert.** €400 000 per inngang, for to innganger, mot en besparelse
i størrelsesorden hundretusen kroner i året. Tilbakebetalingstiden er ikke marginal — den
er utenfor det en energibegrunnelse bærer alene. Tiltaket bygges i praksis når portalen
uansett skal bygges eller rehabiliteres; D2.1 sier det selv: «Deployment costs would be
part of tunnel building costs».
2. **Det har ingen lærings-overflate.** Bundelen finnes for å frø en lærings-sløyfe med et
gap mellom modellert og realisert. Et passivt byggverk uten driftsavhengighet har
knapt noe slikt gap å lære av. Det gjør det til en dårlig kandidat for et verdict-frø —
og til en god kontrast som viser hvorfor det *andre* tiltaket trenger ett.

View file

@ -0,0 +1,167 @@
---
type: hypothesis
title: "Trinnstyring av innkjørings- og overgangssone: fra 3 trinn til 13"
description: "Erstatte kontaktorstyrt 3-trinns regulering av dagsonen med 13-trinns dimming slik Håndbok V124 anbefaler. Modellert besparelse utledet av kvantiseringsoverskuddet i de to trinnrekkene, med et åpent kostnadsgulv."
resource: TUNNEL-HAUGLIA
measure_id: TUNNEL-LYS-01
tags: [tunnelbelysning, lysstyring, dimming, DALI, ECM, V124]
timestamp: 2026-08-09
---
# Tiltak: 13-trinns dimming av dagsonen
Oppgradering av styringen i **innkjørings- og overgangssonen** fra dagens
**3-trinns kontaktorstyring** til **13-trinns dimming**, slik Håndbok V124 (2021) § 9.6.1
anbefaler. Armaturene byttes ikke — det er reguleringen som byttes.
Dette er tiltaket som er **projisert inn i validatoren**.
## Tiltaket er beskrevet av normen selv
V124 § 9.6.1 beskriver både utgangspunktet og målet, ordrett:
> «Innkjøringssonens nedtrapping er gitt av «CIE kurven» i figur 9.2. I utførelse har dette
> vært begrenset til 3 trinn arrangert med oppdeling i kurser styrt via kontaktorer. LED og
> dimbare anlegg åpner for en bedre tilpasning til kurven ved hjelp av dimming i flere trinn
> som vil redusere energiforbruket vesentlig.»
>
> «Det anbefales å definere innkjørings-/overgansgssone i 13 trinn henholdsvis
> 0-5-10-15-20-25-30-40-50-60-70-80-90-100 % alternativt dynamisk (…). Det bør som minimum
> legges til en hysteresetid på 60 sekunder for endringer i nivåene.»
**Det er uvanlig komfortabelt utgangspunkt for en hypotese:** normen navngir dagens praksis,
navngir tiltaket, og lister trinnene. Vi trenger ikke finne på noen av delene.
## Parametere
| Parameter | Verdi | Status | Kilde/forankring |
|---|---|---|---|
| Installert effekt, dagsone | 60 kW | [I] | se [hauglia-tunnelen.md](hauglia-tunnelen.md) |
| Timer dagtrinn aktivt | 4 500 t/år | [I-avledet] | ≈ 4 380 t soltimer + skumringsmargin |
| Trinnrekke FØR | 3 trinn: 33,3 / 66,7 / 100 % | [V-forankret] | V124 § 9.6.1, «oppdeling i kurser styrt via kontaktorer» |
| Trinnrekke ETTER | 14 nivåer: 0-5-10-15-20-25-30-40-50-60-70-80-90-100 % | [V] | V124 § 9.6.1, ordrett |
| Variabel energipris | 1,00 NOK/kWh | [V-forankret] | se [hauglia-tunnelen.md](hauglia-tunnelen.md) |
## Modellert besparelse (ex-ante)
Mekanismen er **kvantiseringsoverskudd**. En trinnstyrt regulator må aldri legge seg *under*
det CIE-kurven krever — gulvet er et sikkerhetskrav, ikke en preferanse. Den må derfor velge
**det laveste tilgjengelige trinnet som er ≥ kravet**. Energitapet er den midlere
overskytingen, og den krymper når trinnene blir finere.
Med kravet modellert som **jevnt fordelt over trinnrekkens spenn** blir midlere servert nivå:
> 3 trinn `{33,3 %, 66,7 %, 100 %}` → midlere servert nivå **66,67 %**
> 13 trinn `{0 … 100 %}` → midlere servert nivå **54,25 %**
> Reduksjon: **12,42 prosentpoeng av installert effekt = 18,625 % av dagsonens energi**
Regnestykket, med den ene antakelsen synlig:
> Dagsone i dag: 60 kW × 0,6667 × 4 500 t = **180 000 kWh/år**
> Dagsone etter: 60 kW × 0,5425 × 4 500 t = **146 475 kWh/år**
> Besparelse: 180 000 146 475 = **33 525 kWh/år** = **33 525 NOK/år**
Det er **18,6 %** av dagsonens forbruk og **10,00 %** av tunnelens totale elforbruk.
**Antakelsen som bærer tallet, og som ikke er verifisert:** at kravnivået er jevnt fordelt.
Det er det nesten sikkert ikke — L20 utenfor en norsk portal er skjevfordelt mot lave verdier
store deler av året, og i den skjevheten hjelper de fine trinnene *mer* enn jevnfordelingen
tilsier, ikke mindre. **Ingen kilde i materialet gir en norsk L20-fordeling.** Vi lar
antakelsen stå eksplisitt i stedet for å skjule den i et rundt tall.
## Kryss-sjekk mot CEDR (og hvorfor tallene ikke er like)
CEDR REETS D2.1 modellerer et beslektet tiltak — *«LED lighting with 'closed loop' feedback»*
på en referansetunnel med samme geometriklasse som Hauglia:
| | CEDR REETS D2.1 | Hauglia (vår) |
|---|---|---|
| Terskel-/dagsone før | 158 059 kWh/år | 180 000 kWh/år |
| Terskel-/dagsone etter | 136 893 kWh/år | 146 475 kWh/år |
| **Besparelse** | **21 166 kWh/år (13,4 %)** | **33 525 kWh/år (18,6 %)** |
Størrelsesordenen stemmer — og det er hele poenget med en kryss-sjekk. Men **vår andel er
5,2 prosentpoeng høyere, og det skal forklares, ikke bortforklares:**
- CEDR-tiltaket beholder **konvensjonelle fotometer-sensorer** og forbedrer selve
tilbakekoblingssløyfa. Vårt tiltak endrer **trinnoppløsningen** fra 3 til 13. Det er to
ulike inngrep i samme kjede, og de har ingen grunn til å gi samme tall.
- CEDRs tall er **modellert av CEDR**, ikke målt av CEDR. Det er et anslag på linje med vårt,
ikke en fasit vårt anslag skal kalibreres mot.
- Vår jevnfordelings-antakelse trekker i retning av **for lavt** anslag, ikke for høyt (se over).
**⚠️ Og en felle i selve kilden:** D2.1 oppgir **ulik** pre-deployment-baseline for nominelt
samme referansetunnel — **158 059** kWh/år for dette tiltaket, men **150 059** kWh/år for
portalskjermings-tiltaket ([tiltak-portalskjerming.md](tiltak-portalskjerming.md)). Baselinen
er altså ikke felles på tvers av tiltakene i D2.1. De to kan ikke settes i samme regnestykke,
og vi gjør det ikke.
## Kostnadssiden — et anker med feil årstall
NFF Publication 4 gir en **norsk** enhetspris for tunnelbelysning:
> «For tunnels longer than approx. 300 metres, the average price per linear metre could vary
> between NOK 1000 and NOK 3000. (This price includes fittings, cable trays, installation of
> transformer and mains connection)»
For dagsonens 600 m gir det 0,61,8 mill. NOK. **Men tallet er ubrukelig som det står, av to
grunner:**
1. **Publikasjonen er udatert i vårt uttrekk.** Et beløp uten årstall kan ikke prisjusteres.
NFF Publication 4 omtaler «more than 700 road tunnels in Norway» — Norge passerte det for
flere tiår siden, så tallet er gammelt, men *hvor* gammelt vet vi ikke.
2. **Prisen gjelder feil ting.** Den dekker **hele belysningsanlegget** per løpemeter — armatur,
kabelbroer, trafo, nettilknytning. Vårt tiltak bytter **bare styringen**. En
styringsoppgradering er en brøkdel av et komplett anlegg, og ingen kilde i materialet gir
den brøken.
**Konsekvensen er at `cost-baseline.json` ikke får noen investeringsrad.** Det er samme valg
som veglys-bundelen tok, men av en annen grunn: der fantes det ingen kilde, her finnes det en
kilde som ikke bærer. Å prisjustere et udatert beløp til et tiltak det ikke gjelder, ville
vært å produsere et tall og kalle det et anker.
CEDRs `≈ €35 000 per inngang` for det beslektede styringstiltaket er den nærmeste
størrelsesordenen vi har, og den er europeisk og udatert. Den står i
[kilder-tunnelbelysning-realisering.md](kilder-tunnelbelysning-realisering.md) som
orientering, **ikke** som kostbase.
## Usikkerhet (for Monte Carlo P10/P50/P90)
Den dominerende usikkerheten er **ikke** energiprisen — den er **hvor godt styringen faktisk
følger kurven i drift**. Den usikkerheten er systematisk, ikke tilfeldig, og den peker én vei.
Derfor håndteres den i verdict-laget
([verdict-trinnstyring-fro.md](verdict-trinnstyring-fro.md)), ikke her.
Den eksisterende validatorens Monte Carlo varierer **enhetspris**. I denne mappingen brukes
derfor prisbandet **0,701,40 NOK/kWh** som usikkerhetsakse, identisk med veglys-mappingen.
## Mapping til validatoren (hvorfor `validator-input.json` ser ut som den gjør)
Den eksisterende deterministiske validatoren er en *feasibility-gate*
(`claimed ≤ 30 % av affected total`, Monte Carlo over enhetspris) bygd for kostnadskutt.
Tiltaket mappes inn **uendret**:
- `affected_items = [{code: "ENERGI-TUNNEL-EL", quantity: 335250 kWh/år, unit_cost: 1.00 NOK/kWh}]`
**hele tunnelens** årlige energikostnad (335 250 NOK).
- `claimed_saving_nok = 33525` → den modellerte besparelsen.
- `assumptions = {"ENERGI-TUNNEL-EL": [0.70, 1.40]}` → prisbandet for Monte Carlo.
**Hvorfor hele tunnelen og ikke bare dagsonen:** hadde `affected_items` vært dagsonens eget
forbruk (180 000 kWh), ville besparelsen vært **18,6 %** av den — under cap-en, men med langt
mindre margin, og konvolutten ville vært feil størrelse i prinsippet: tiltaket virker på
tunnelens energikostnad, og det er den linjen anleggseieren betaler. Veglys-bundelen tok samme
beslutning med porteføljen som konvolutt. **For ett enkelt anlegg er anleggets totale
elforbruk den riktige analogien til en portefølje** — ikke den sonen tiltaket tilfeldigvis
sitter i.
Forholdet blir da `claimed / nominal_feasible = 33 525 / 100 575 = **1/3 eksakt**`, mot
reservens 0,3333 og veglys-bundelens 0,3386.
**`cost-baseline.json` bærer nøyaktig samme rad.** `code`, `quantity` og `unit_cost` er
identiske i de to filene — ikke «innenfor toleranse», men identiske, fordi begge er skrevet
fra summen `180 000 + 139 230 + 16 020`. Hver `code` i `affected_items` finnes som nøkkel i
`items`.
**Ærlig begrensning:** validatorens P10/P50/P90 betyr her «øvre feasible grense» (30 % av
samplet energikostnad), *ikke* «styringsbesparelsens fysiske band». Det er bevisst — den
domenetro modelleringen og realiseringsgapet hører hjemme i verdict-laget.

View file

@ -0,0 +1,16 @@
{
"_note": "IR-projeksjon (ir.SavingsProposal) for det eksisterende deterministiske validatoren. Styringstiltaket er mappet inn i kost-IR-en UENDRET: affected_items = HELE tunnelens arlige energikostnad (dagsone 180 000 + indre-/utkjoringssone 139 230 + ovrige tekniske anlegg 16 020 = 335 250 kWh/ar a 1,00 NOK/kWh); claimed_saving_nok = modellert besparelse fra kvantiseringsmodellen (60 kW x (0,6667 - 0,5425) x 4 500 t = 33 525 kWh/ar), som er 10,00 % av total og godt innenfor 30 %-cap-en. Forholdet claimed/nominal_feasible = 33 525/100 575 = 1/3 eksakt. affected_items er anleggets TOTALE forbruk og ikke bare dagsonen fordi ett anleggs totale energikostnad er den riktige analogien til en portefolje - se veglys-bundelen, som tok samme beslutning. assumptions = energipris-band (NOK/kWh) for Monte Carlo. cost-baseline.json baerer IDENTISK code, quantity og unit_cost - begge er skrevet fra samme sum, ikke avstemt i ettertid. Se tiltak-trinnstyring-innkjoringssone.md, seksjon 'Mapping til validatoren'.",
"project_id": "TUNNEL-HAUGLIA",
"measure": "Oppgradering av innkjorings- og overgangssonen fra 3-trinns kontaktorstyring til 13-trinns dimming (Handbok V124 2021, par. 9.6.1). Armaturene byttes ikke - reguleringen byttes.",
"affected_items": [
{
"code": "ENERGI-TUNNEL-EL",
"quantity": 335250,
"unit_cost": 1.0
}
],
"claimed_saving_nok": 33525,
"assumptions": {
"ENERGI-TUNNEL-EL": [0.70, 1.40]
}
}

View file

@ -0,0 +1,138 @@
---
type: verdict
title: "Ekspert-dom (frø): 13-trinns dimming av dagsonen — godkjent med realiseringskorreksjon"
description: "Frøsatt ekspert-dom for styringsoppgraderingen. Den modellerte besparelsen er korrekt fra trinnrekkene, men den forutsetter at reguleringen faktisk følger CIE-kurven i drift. Tre navngitte mekanismer i Håndbok V124 selv trekker den andre veien. Forventet faktisk besparelse settes til 72 % av modellert, lånt fra dagslysstyrings-metalitteratur og merket som lån."
resource: TUNNEL-HAUGLIA
measure_id: TUNNEL-LYS-01
decision: approved_with_adjustment
realization_rate: 0.72
modelled_saving_nok: 33525
expected_actual_saving_nok: 24138
gap_source: control-tracking-overestimation
context_key: "tunnelbelysning; styring=3-trinn->13-trinn; L20-maaling=kontinuerlig-paakrevd; energimaaling=fravaerende-i-baseline"
provenance: "frø — AI-forfattet. Realiseringsgraden er LÅNT fra LBNL-5095E (2011): dagslysstyring faller fra 39 % til 28 % gjennomsnittlig besparelse når anslagene filtreres til faktiske installasjoner (n 73 -> 32), forhold 0,718. Det er IKKE en prosjekt-realiseringsgrad, men forholdet mellom to filtrerte populasjonsgjennomsnitt, fra amerikanske naeringsbygg. Det finnes INGEN norsk ex-post-evaluering for tunnelbelysningsstyring. Erstattes av ekte HITL i produksjon."
tags: [verdict, realization-rate, ExpeL-seed, HITL, tunnelbelysning, lysstyring, laant-rate]
timestamp: 2026-08-09
---
# Ekspert-dom (frø): 13-trinns dimming av dagsonen
> **Dette er et frø**, ikke en ekte dom. I simulering gir en ekspert-persona slike dommer;
> i produksjon gir et menneske dem via samme mappe-grensesnitt. Frøet er forankret i
> verifisert litteratur ([kilder-tunnelbelysning-realisering.md](kilder-tunnelbelysning-realisering.md)),
> ikke oppdiktet — men **raten er lånt, ikke norsk**, og det står i `provenance`.
## Dommen
**Beslutning:** godkjent — med realiseringskorreksjon.
Den modellerte besparelsen (**33 525 NOK/år**) er korrekt regnet fra de to trinnrekkene, og
validatoren bekrefter at den ligger innenfor feasibelt område. Men modellen regner på hvordan
en trinnrekke **kan** legge seg mot CIE-kurven, og et anlegg i drift legger seg systematisk
høyere. Forventet faktisk besparelse settes til **≈ 24 138 NOK/år** (72 % av modellert).
## Begrunnelse (det validatoren ikke kan regne)
### Hovedmekanismen: modellen regner på trinn, driften leverer et forløp
Kvantiseringsmodellen i
[tiltak-trinnstyring-innkjoringssone.md](tiltak-trinnstyring-innkjoringssone.md) antar at
regulatoren til enhver tid står på **det laveste trinnet som er ≥ kravet**. Det er sant for en
regulator uten treghet. Håndbok V124 forutsetter tre former for treghet — og alle tre er
**normens egne krav eller forbehold**, ikke svakheter ved et bestemt anlegg:
**1. Hysteresen er påkrevd, og den koster.**
V124 § 9.6.1: «Det bør som minimum legges til en **hysteresetid på 60 sekunder** for endringer
i nivåene.» Hysterese er asymmetrisk i energi: den holder anlegget på det **høyere** trinnet
gjennom svingninger i L20 som ellers ville utløst nedtrinn. På en dag med vekslende skydekke
er det ikke en marginal effekt. Kravet er et sikkerhetskrav og kan ikke regnes bort.
**2. Den variable sonelengden implementeres ofte ikke.**
V124 § 9.6.1, siste setning: «Ved varierende trinn vil også lengden av innkjøringssonen
variere, og dette er viktig å få implementert for å utnytte energisparepotensialet **mest
mulig**.» At normen finner det nødvendig å be om dette, forteller at det er den delen som
faller ut. **Halvparten av gevinsten ved fin trinning ligger i at sonen også blir kortere når
kravet faller** — implementeres bare nivåtrinningen, leveres bare den ene halvparten.
**3. Kalibreringen er en driftsrutine, ikke en konstant.**
V124 § 9.6: «Innjustering av anlegg ved igangkjøring med kalibrert måleinstrument for korrekte
nivåer for adaptasjonsluminans er viktig for korrekt drift.» En luminansmåler som drifter, er
skitten, eller er innjustert med sikkerhetsmargin, gir et for høyt L20 — og et for høyt L20
gir et for høyt trinn hver time resten av året. Feilen er **systematisk og ensrettet**: ingen
driftsorganisasjon kalibrerer seg til for lite lys i en tunnelportal.
### Hvorfor raten er lånt fra dagslysstyring, og hva lånet er
LBNL-5095E (2011) sorterte 240 besparelsesanslag fra 88 studier og filtrerte dem suksessivt.
For **daylighting** — dagslysstyrt regulering, samme strategi som vår — falt gjennomsnittet
fra **39 %** til **28 %** når utvalget ble begrenset til **faktiske installasjoner**
(n fra 73 til 32). Rapporten konkluderer at «simulations significantly overestimate (by at
least 10%) the average savings obtainable from daylighting in actual buildings».
**Forholdet 28/39 = 0,718 er lånet. 0,72 er dette lånet, ikke en norsk måling.**
Og lånet er svakere enn veglys-bundelens på ett punkt og sterkere på et annet:
**svakere** fordi det ikke er en prosjekt-realiseringsgrad (målt ÷ predikert for de samme
prosjektene), men forholdet mellom to filtrerte populasjonsgjennomsnitt; **sterkere** fordi
styringsstrategien er den samme — det er dagslys som styrer i begge tilfeller, og det er
sensor, kalibrering og treghet som spiser gevinsten i begge tilfeller.
### Motmekanismen — og hvorfor den IKKE er trukket fra
Én forhold peker **motsatt vei**, og det er modellens egen antakelse: kravnivået er antatt
**jevnt fordelt** over trinnrekkens spenn. Utenfor en norsk portal er L20 skjevfordelt mot
**lave** verdier store deler av året — lav sol, overskyet, mørketid — og i det området ligger
de fine trinnene tettest (5-10-15-20-25-30 %). Der hjelper 13-trinnsrekka **mer** enn
jevnfordelingen tilsier, ikke mindre. Med en realistisk L20-fordeling ville den modellerte
besparelsen trolig vært **høyere** enn 33 525.
Den er likevel ikke netto-regnet inn, av én grunn: **ingen kilde i materialet gir en norsk
L20-fordeling over året.** Å justere modellen opp på en fordeling vi ikke har, for så å
justere den ned igjen med en lånt rate, ville vært to gjetninger som later som de opphever
hverandre.
**Derfor er 0,72 beheftet med usikkerhet i BEGGE retninger**, og det skiller den fra
veglys-frøets 0,81, som var en uttalt **nedre** grense. Her vet vi ikke hvilken vei feilen
peker — bare at den er der.
### Hvorfor dette ikke kan regnes fra parameterne
Du kan **ikke** regne deg til RR = 0,72 fra `{60 kW, 4 500 t, 3 trinn, 13 trinn}`. Alle fire
er kjent, og modellen som forbinder dem er aritmetisk lukket. Skjevheten ligger i **hvordan
et anlegg faktisk driftes** — hysterese, uimplementert sonelengde, kalibreringsmargin — og
det er epistemikk parameterne ikke bærer. Det er nøyaktig lærings-overflaten bundelen er
bygget for.
## Lærings-signalet (ExpeL)
Korreksjonen er **kontekstbetinget**:
`context_key = "tunnelbelysning; styring=3-trinn->13-trinn; L20-maaling=kontinuerlig-paakrevd; energimaaling=fravaerende-i-baseline"`.
`gap_source` er satt til **`control-tracking-overestimation`** — og det er **bevisst en annen
nøkkel enn `hours-of-use-overestimation`**, som både kontorbygg- og veglys-frøet bruker.
Forskjellen er ikke kosmetisk:
- `hours-of-use-overestimation` er en **parameterfeil**. Anlegget gjør det det skal; tallet
vi matet inn var galt. Korreksjonen er å måle parameteren bedre.
- `control-tracking-overestimation` er en **driftsfeil**. Parameterne er riktige; anlegget
leverer ikke det utstyret er i stand til. Korreksjonen er å endre idriftsettelse,
kalibreringsrutine og hva som faktisk implementeres.
**En lærings-sløyfe som slår disse sammen, lærer feil tiltak.** Å måle brenntimer bedre
hjelper ikke et anlegg som står på for høyt trinn, og å kalibrere luminansmåleren hjelper
ikke et anlegg med feil timeanslag. De to nøklene skal leve side om side.
Neste kjøring, gitt en lignende hypotese i samme kontekst, skal hente denne dommen og justere
den modellerte ex-ante-besparelsen mot forventet ex-post (≈ 0,72×).
## Om tiltak 2 (portalskjerming)
Denne dommen gjelder **kun** styringsoppgraderingen (`TUNNEL-LYS-01`). Portalskjermingen
([tiltak-portalskjerming.md](tiltak-portalskjerming.md)) er ikke dømt her, og **skal ikke arve
raten** — den skal ikke engang arve `gap_source`.
Grunnen er strukturell: et overbygg som senker L20, har **ingenting som kan overstyres**. Det
har ingen hysterese, ingen kalibrering og ingen driftsrutine. Alle tre mekanismene som
begrunner 0,72 er fraværende. Et passivt tiltak med samme `gap_source` som et aktivt ville
vært en kategorifeil i lærings-sløyfa — og risikoen der ligger et helt annet sted, i
byggekostnad og gjennomførbarhet.

View file

@ -0,0 +1,10 @@
{
"_note": "Prosjektets kostdata for VEGLYS-FV-SOER, i det formatet den konsumerende implementasjonen definerer (deres akse - commons normerer ikke dette formatet). Raden er portefoeljens arlige energikostnad: 9 500 lyspunkter x 114 W installert (100 W HPS + 14 W forkobling, NMFV) x 4 050 brenntimer/ar (Handbok V124, 2021: 4 000-4 100 t/ar for eldre vegbelysning) / 1 000 = 4 386 150 kWh/ar, a 1,00 NOK/kWh eks. mva. quantity og unit_cost er BYTE-IDENTISKE med affected_items-raden i validator-input.json fordi begge filene er skrevet fra denne ene linjen - 5 %-toleransen er lukket ved konstruksjon, ikke ved avstemming. Investeringskostnad er BEVISST utelatt: ingen kilde i materialet gir NOK per lyspunkt eller per styringsnode, og en utledet verdi hoerer ikke hjemme i en kostbase. Se veglys-fv-soer.md og tiltak-led-utskifting.md.",
"project_id": "VEGLYS-FV-SOER",
"items": {
"ENERGI-VEGLYS-EL": {
"quantity": 4386150,
"unit_cost": 1.0
}
}
}

View file

@ -0,0 +1,71 @@
---
type: index
okf_version: 0.1
title: "Veglys fylkesveg sør — LED-utskifting og adaptiv styring"
description: "OKF-bundle for en fylkeskommunal veglysportefølje med to kandidat-tiltak: LED-utskifting av 2 500 eldre HPS-lyspunkter, og adaptiv styring som utnytter den tillatte vedlikeholdsfaktoren. Bygget rundt et dokumentert norsk evidensgap — uten måler kan realiseringsgraden ikke ses."
tags: [energieffektivisering, veglys, vegbelysning, M&V, IPMVP, realiseringsgrad]
timestamp: 2026-08-09
---
# Veglys fylkesveg sør
En OKF-bundle for **utskifting og styring av veglysanlegg langs fylkesveg**: én portefølje,
to kandidat-tiltak. Den deler lærings-overflate med bygg-energi-mikro-bundelen, men står på
egne ben: metode- og kildelaget er **materialisert inn her**, ikke lenket på tvers av
bundler, og evidensgrunnlaget er **norsk der det teller**.
> Framework-nøytral artefakt (null kode-avhengighet). Deles uendret mellom
> implementasjonene. Se [shared/README.md](../../README.md).
**Prosjektlaget er fiktivt, litteraturlaget er ekte.** Porteføljen «Fylkesveg Sør» finnes
ikke; parameterne den er bygget av (installert effekt, brenntimer, energipris,
realiseringsgrad) er hentet fra navngitte primærkilder og merket `[V]` der de er verifisert.
Det er samme konvensjon som mikro-bundelen bruker — en produksjons-deployer erstatter
prosjektlaget med en ekte kunnskapsbase og beholder litteraturlaget.
## Hvorfor veglys
Domenet ble valgt fordi det bærer lærings-overflaten **skarpere enn kontorbygget gjør**.
I et kontorbygg er gapet mellom modellert og realisert besparelse *målbart, men sjelden
målt*. I norsk veglys er det noe strengere: **NVE og RME dokumenterer at mange veilysanlegg
mangler måling helt, eller avregnes på estimerte verdier.** Uten meterdata finnes det ingen
ex-post å sammenligne ex-ante med. Realiseringsgraden er ikke ukjent fordi ingen har regnet
på den — den er **strukturelt usynlig**.
Det gjør domenet til et godt frø for lærings-sløyfa: den eneste kilden til korreksjon er
akkumulert ekspert-erfaring, som er nøyaktig det verdict-laget bærer og validatoren ikke kan
regne. Se [verdict-veglys-fro.md](verdict-veglys-fro.md).
## Innhold (progressiv disclosure)
- [veglys-fv-soer.md](veglys-fv-soer.md) — `type: project` — porteføljen, energibaselinen
og rammene.
- [tiltak-led-utskifting.md](tiltak-led-utskifting.md) — `type: hypothesis` — kandidat-tiltak
1: LED-utskifting av 2 500 eldre HPS-lyspunkter. **Det er dette tiltaket som er projisert
inn i validatoren.**
- [tiltak-adaptiv-styring.md](tiltak-adaptiv-styring.md) — `type: hypothesis`
kandidat-tiltak 2: adaptiv styring som henter ut den overdimensjoneringen
vedlikeholdsfaktoren allerede tillater. Svakere kildebelagt enn tiltak 1, og merket slik.
- [metode-ipmvp-a.md](metode-ipmvp-a.md) — `type: methodology` — M&V-metoden (IPMVP
Option A), og hvorfor de øvrige opsjonene er stengt for et umålt veglysanlegg.
- [kilder-veglys-realisering.md](kilder-veglys-realisering.md) — `type: reference`
verifisert litteratur: norske baseline- og regelverksankere, og programlitteraturen
realiseringsgraden er lånt fra.
- [verdict-veglys-fro.md](verdict-veglys-fro.md) — `type: verdict` — frøsatt ekspert-dom.
**ExpeL-frøet loopens steg 1 henter fra.**
## Hvordan den kjøres i dag
`validator-input.json` er IR-projeksjonen den eksisterende deterministiske validatoren
konsumerer uendret; `cost-baseline.json` bærer det samme tallgrunnlaget som prosjektets
kostdata. **De to filene er bygget fra samme linje aritmetikk og bærer identisk `code`,
`quantity` og `unit_cost`** — se [tiltak-led-utskifting.md](tiltak-led-utskifting.md),
§«Mapping til validatoren».
Bundelen ships **uten `golden.json`**. Den blokken er kryss-implementasjons-fasit produsert
av en seedet Monte Carlo, og commons har ingen kjørbar pipeline å produsere den med. En
fasit ingen gate leser er verre enn ingen fasit. Lærings-overflaten går ikke tapt: de
strukturerte feltene ExpeL-folden faktisk henter (`realization_rate`,
`expected_actual_saving_nok`) ligger i frontmatteren til
[verdict-veglys-fro.md](verdict-veglys-fro.md), som er der loopen leser dem.

View file

@ -0,0 +1,142 @@
---
type: reference
title: "Veglys: norske ankere og lånt realiseringsgrad — verifisert litteratur"
description: "Kildebelagte tall for veglysets energibaseline, regelverk og realiseringsgap. Skiller strengt mellom det norske materialet (baseline, regelverk, årsak) og den lånte programlitteraturen (selve realiseringsgraden)."
tags: [realization-rate, performance-gap, veglys, M&V, kilder, evidensgap]
timestamp: 2026-08-09
---
# Veglys: verifisert litteratur
**Realiseringsgrad (RR)** = faktisk evaluert besparelse (ex-post) ÷ modellert/påstått
besparelse (ex-ante). RR < 1 betyr at drift leverte mindre enn modellen lovte.
Denne fila har en **skarp todeling**, og den er det viktigste ved den:
- **Del A — norsk materiale.** Baseline, regelverk og *årsaken til* at gapet ikke kan ses.
Alt `[V]` mot primærkilde.
- **Del B — lånt materiale.** Selve realiseringsgraden. Den finnes **ikke** for norsk
veglys i noen kilde vi har funnet, og er lånt fra amerikansk belysnings-programlitteratur.
**Lånet er merket overalt der tallet brukes.**
Å blande de to ville gjort et lånt tall til en norsk måling. Det gjør vi ikke.
---
## Del A — norsk materiale [V]
| Nivå | Funn | Kilde | År |
|---|---|---|---|
| Aggregat (norsk) | 13 000 lyspunkter langs riks- og fylkesveg = «rett over 13 GWh/år» ⇒ **≈ 1 000 kWh/lyspunkt/år** | Agder fylkeskommune, fagrapport riks- og fylkesveger | ikke oppgitt |
| Armatur | HPS småtrafikkert veg: 100 W lampe + 14 W forkobling = **114 W**; tilsvarende LED **70 W** | NMFV, Road Lighting Efficiency | ikke oppgitt |
| **Brenntimer (offisielt)** | **4 0004 100 t/år for eldre vegbelysning** | **Statens vegvesen Håndbok V124** | **2021** |
| **Vedlikeholdsfaktor** | **MF ≤ 0,85** — ≥15 % redusert lysutgang tillatt ved overdimensjonering | **Statens vegvesen Håndbok V124** | **2021** |
| Lysteknisk gulv | 1,0 cd/m² og 5 lx for små trafikkveger | NMFV | ikke oppgitt |
| Kostnad (fylkesnivå) | **≈ 200 mill. NOK** for full LED-oppgradering, forventet **67 %** energikutt, **≈ 27 mill. NOK/år** spart | **Vestland fylkeskommune** | **2022** |
| Vedlikehold | LED «Very good» ≤ 5 år; konvensjonelle lamper byttes hyppig (Vestland: hver 4. år) | AIM hovedplan vei og veilys | ikke oppgitt |
| Praksis | Nattslukking 00:0005:00 pilotert 3/415/10/2024; må vurderes lokalt/økologisk | Statens vegvesen | 2024 |
### Årsaken gapet ikke kan ses (norsk, og bundelens poeng) [V]
**NVE og RME dokumenterer at mange veilysanlegg mangler måling eller avregnes på estimerte
verdier.** Uten meterdata er ex-post-måling — og dermed realiseringsgrad — ikke mulig.
Det er ikke et hull i denne bundelen. Det er grunnen til at den finnes: i et domene der
gapet er strukturelt usynlig, er ekspert-erfaring den eneste korreksjonskilden.
### To gap-mekanismer som er veglys-spesifikke, og som peker hver sin vei [V]
1. **Installert effekt ≠ merkeeffekt — peker OPP.** Målt: en armatur merket 100 W trekker
**120 W** (MDPI, Energy Audit of Road Lighting Installations). Modellen regner merkeeffekt;
nettet betaler den faktiske. Er baselinen understatt, er den *faktiske* besparelsen
**større** enn modellert. Dette trekker realiseringsgraden **oppover**.
2. **Brenntimer — peker NED.** V124 gir 4 0004 100 t/år som tabellverdi; MDPI-caset antar
4 150 t. **Ingen kilde gir en skumringsstyrt norsk brenntimekurve.** Er timene overvurdert,
er besparelsen overvurdert.
**De to opphever ikke hverandre til noe kjent.** Mekanisme 1 er målt på den *gamle* armaturen;
tilsvarende måling for LED-siden finnes ikke i materialet, så nettoen kan ikke regnes. Se
[verdict-veglys-fro.md](verdict-veglys-fro.md) for hvordan dommen håndterer det.
### Evidensgap i det norske materialet (rapportens egen liste)
- NOK per lyspunkt for LED-armatur inkl. montasje, per årstall
- NOK per styringsnode / komplett adaptivt styringssystem
- Kvantifisert kWh eller % for adaptiv styring/dimming i norske prosjekter
- Reell realiseringsgrad (ex-post ÷ ex-ante) for norske LED- eller styringsprosjekter
- Standardisert skumringsstyrt brenntimekurve for norsk breddegrad
**Oslo-caset er bevisst utelatt fra tabellen.** Kilden oppgir både «estimert sparepotensial
4,5 GWh/år» og «70 % reduksjon» for retrofit av 10 000 HPS-punkter, men ikke som et
ex-ante/ex-post-par. Ingen realiseringsgrad kan regnes av det, og vi later ikke som.
---
## Del B — lånt materiale: realiseringsgraden [V, men ikke norsk]
Veglys **er** belysning. Programlitteraturen under evaluerer belysningstiltak med samme
lysligning og samme stipulerte parameter (driftstimer). Den er `[V]` mot primærkilde, men
**amerikansk**, og den er lånt inn her fordi det norske materialet ikke har motstykket.
| Nivå | Funn | Kilde |
|---|---|---|
| Program (regulatorisk default) | Default gross RR **0,90**; ex-ante «generally over-estimated» | CPUC Resolution E-4952 |
| **Program (lys, drift lavere)** | Operational adjustment ned til **81,1 %** (metrede driftstimer 15 % lavere); coincidence factor **0,566** vs antatt 1,0 | **National Grid SBS 2010 (DNV KEMA)** |
| Program (lys, drift høyere) | Hours-of-Use RR **106,5 %**; coincidence 72,2 % — gapet går **begge veier** | Massachusetts Impact Evaluation 2010 |
| **Parameter (driftstimer)** | Metret **3 053 t/år** vs antatt **3 772 t/år** (≈19 % lavere); CV ≈ 0,5 | **Efficiency Maine 2021** |
| Portefølje | Commercial lighting **98 %** vs residential **61 %** vs total **93 %** | LADWP Retrospective FY15/1619/20 |
| Måleterskel | Besparelse bør overstige **~10 % av baseline** for å skilles fra støy | FEMP/RDH M&V-veiledning |
**Efficiency Maine-raden er den mest relevante av dem alle**, fordi den treffer nøyaktig den
parameteren veglys lever på: metret brenntid mot antatt brenntid, 3 053 mot 3 772 timer.
Forholdet er **0,809**. National Grid kommer uavhengig til **0,811** gjennom samme mekanisme.
### Systematiske årsaker til at faktisk < modellert [V]
1. **Driftstimer / Hours-of-Use** — dominerende, og for veglys forsterket av at
skumringskurven ikke er kjent.
2. **In-service rate, drift og persistens** — ikke alt installeres eller forblir i drift;
styringer overstyres.
3. **Baseline-skjevhet** — en over- eller underpredikert baseline forplanter seg rett inn i
den absolutte besparelsen.
4. **Måleusikkerhet** — under ~10 %-terskelen drukner signalet i støy. Og uten måler finnes
ikke signalet i det hele tatt.
5. **Rebound / atferd** — mer lys, lengre, fordi det «koster mindre».
### Ett mønster fra et naboområde, tatt med fordi det er navngitt
NFF Publication 13 beskriver et norsk tunnelanlegg der det modellerte
ventilasjonspotensialet uteble, med en eksplisitt årsak: **«viften ble holdt på full
hastighet mesteparten av tiden».** Det er ikke veglys, og tallet er ikke overførbart. Men
mekanismen — en styring som i praksis ikke styrer — er den samme risikoen
[tiltak-adaptiv-styring.md](tiltak-adaptiv-styring.md) bærer.
---
## Kilder (URL)
**Norske:**
- Statens vegvesen Håndbok V124 (2021): https://vegvesen.no/globalassets/fag/handboker/hb-v124.pdf
- Agder fylkeskommune, fagrapport riks- og fylkesveger: https://agderfk.no/_f/p1/i8c46461d-20b4-4178-a692-5674bb1fbabc/vedlegg-9-fagrapport-om-riks-og-fylkesveger.pdf
- NVE/RME, nettleie for veilys: https://nve.no/reguleringsmyndigheten/regulering/nettvirksomhet/nettleie/nettleie-for-forbruk/veilys
- RME eksternrapport 8/2020: https://publikasjoner.nve.no/rme_eksternrapport/2020/rme_eksternrapport2020_08.pdf
- Statens vegvesen, nattslukking av veilys (pilot 2024): https://vegvesen.no/fag/fokusomrader/klima-miljo-og-omgivelser/lysforurensning/nattslukking-av-veilys
- NFF Publication 13: https://nff.no/wp-content/uploads/sites/2/2020/04/Publication-13.pdf
- SSB Elektrisitetspriser (kraftpris tjenesteytende næringer): https://www.ssb.no/energi-og-industri/energi/statistikk/elektrisitetspriser
**Nordiske / internasjonale:**
- NMFV, Road Lighting Efficiency: https://nmfv.dk/wp-content/uploads/2012/11/4589rap001-Rev1-RoadLightingEfficiency.pdf
- MDPI Energies 18(20):5357, Energy Audit of Road Lighting Installations: https://mdpi.com/1996-1073/18/20/5357
- EVO IPMVP Generally Accepted M&V Principles (okt. 2018): https://evo-world.org/images/corporate_documents/IPMVP-Generally-Accepted-Principles_Final_26OCT2018.pdf
- DOE/NREL Uniform Methods Project, Ch. 2 Commercial & Industrial Lighting (NREL 68558): https://docs.nrel.gov/docs/fy17osti/68558.pdf
- National Grid SBS 2010 Prescriptive Lighting (DNV KEMA): https://www.nationalgridus.com/media/pdfs/our-company/eereports/2014-ngrid-sbs-impact-eval-final-prot.pdf
- Efficiency Maine Retail & Distributor Lighting 2021: https://www.efficiencymaine.com/docs/Retail-and-Distributor-Lighting-Final-Impact-Evaluation-Report-2021.pdf
- Massachusetts Impact Evaluation of 2010 Prescriptive Lighting: https://ma-eeac.org/wp-content/uploads/Impact-Evaluation-of-2010-Prescriptive-Lighting-Installations-Final-Report-6-21-13.pdf
- LADWP Retrospective Impact Evaluation FY15/1619/20: https://www.ladwp.com/sites/default/files/2024-01/LADWP%20Retrospective%20Report%20FINAL%20V4.pdf
- CPUC Resolution E-4952: https://docs.cpuc.ca.gov/publisheddocs/published/g000/m232/k459/232459122.pdf
**Utelatt med begrunnelse:** UNEP C2E2s Oslo-case (ikke et ex-ante/ex-post-par, se over) og
en leverandørblogg som ble brukt til å underbygge målings-mangelen — den påstanden er dekket
av NVE/RME, som er primærkilde.

View file

@ -0,0 +1,81 @@
---
type: methodology
title: "IPMVP Option A for veglys — og hvorfor de andre opsjonene er stengt"
description: "M&V-metoden for å verifisere besparelsen fra et veglystiltak. Option A er ikke valgt fordi den er best, men fordi et umålt veglysanlegg stenger de tre andre."
methodology: IPMVP
option: A
tags: [IPMVP, M&V, EVO, retrofit-isolation, veglys, maalermangel]
timestamp: 2026-08-09
---
# M&V-metode: IPMVP Option A for veglys
**IPMVP** (International Performance Measurement and Verification Protocol) er
konsensus-rammeverket for å måle og verifisere energibesparelser, eid og vedlikeholdt av
**EVO** (Efficiency Valuation Organization). Kjerneinnsikten som begrunner hele
lærings-sløyfa står eksplisitt i protokollen [V]:
> *"Savings cannot be directly measured, because savings represent the absence of energy use."*
Besparelse er en **kontrafaktisk** størrelse — det finnes ingen måler for «det som ikke ble
brukt». Den *beregnes*: `Baseline-energi Rapporterings-energi ± justeringer` (IPMVP Eq. 1).
## De fire opsjonene (EVO, offisielle navn) [V]
- **Option A — Retrofit Isolation: Key Parameter Measurement.** Måler nøkkelparameteren
(typisk effekt) på det berørte utstyret; øvrige parametere (typisk driftstimer) *estimeres*.
- **Option B — Retrofit Isolation: All Parameter Measurement.** Måler alle relevante parametere.
- **Option C — Whole Facility.** Besparelse fra anleggets hovedmåler, med rutinejustering.
- **Option D — Calibrated Simulation.** Besparelse via simuleringsmodell kalibrert mot måledata.
## Hvorfor Option A her — ved eliminasjon, ikke ved preferanse
I et kontorbygg velges Option A fordi den er **billigst og enklest** for ett isolert tiltak.
For denne porteføljen er begrunnelsen en annen og svakere: **de tre andre opsjonene er
praktisk stengt.**
- **Option C er stengt av målermangel.** Option C forutsetter en hovedmåler å lese
besparelsen ut av. NVE og RME dokumenterer at mange norske veilysanlegg **mangler måling**
eller avregnes på **estimerte** verdier. Der det ikke finnes meterdata, finnes det ingen
rapporteringsperiode å trekke fra en baseline.
- **Option B er stengt av kostnad og geografi.** «Alle relevante parametere» for veglys
betyr brenntimer per lyspunkt, over et anlegg spredt over titalls kilometer veg.
Instrumenteringen ville kostet mer enn tiltaket på en småtrafikkert fylkesveg.
- **Option D er stengt av kalibreringsdata.** En kalibrert simulering må kalibreres mot noe.
Se Option C.
**Option A er derfor det som står igjen** — og det er verdt å si høyt, fordi valget ved
eliminasjon flytter mer vekt over på den parameteren Option A tillater å *estimere*.
## Der metoden lekker: den estimerte parameteren
Option A måler effekt (billig, presist — 114 W før, 70 W etter) og **stipulerer
driftstimer**. For veglys er det stipulatet svakere enn i et bygg:
- Et bygg har en **timeplan** å stipulere fra. Den treffer sjelden metret brenntid, men den
er i det minste anleggsspesifikk.
- Et veglysanlegg har en **skumringsstyring**, og **ingen kilde i materialet vårt gir en
skumringsstyrt norsk brenntimekurve.** Vi bruker Håndbok V124s 4 0004 100 t/år — et
nasjonalt tabellanslag for «eldre vegbelysning», ikke en målt kurve for dette anlegget på
denne breddegraden.
**Det gir en dobbel eksponering:** parameteren metoden tillater å estimere er både den
dominerende usikkerheten *og* den vi har svakest kilde for. Realiseringsgapet oppstår
nøyaktig der.
## Måleterskelen, og hvorfor den ikke redder oss
FEMP/RDH-veiledningen sier at en besparelse bør overstige **~10 % av baseline** for å skilles
pålitelig fra støy. Trinn 1 ligger på 10,2 % av porteføljen — akkurat på terskelen — og
38,6 % av de berørte punktenes eget forbruk, altså godt over hvis man måler på riktig
avgrensning.
Det hjelper likevel ikke, fordi terskelen forutsetter at det **finnes en måling** å skille
signalet ut av. Se Option C.
## Konsekvensen for lærings-sløyfa
Når ex-post-verifikasjon er stengt, er den eneste tilgjengelige korreksjonen **akkumulert
ekspert-erfaring**. Det er ikke en nødløsning i dette domenet — det er den eneste kilden
som finnes. Se [verdict-veglys-fro.md](verdict-veglys-fro.md) og
[kilder-veglys-realisering.md](kilder-veglys-realisering.md).

View file

@ -0,0 +1,96 @@
---
type: hypothesis
title: "Adaptiv styring — utnytting av vedlikeholdsfaktoren"
description: "Konstant lysytelse (CLO) og dimming på de 2 500 LED-punktene fra trinn 1, som henter ut den overdimensjoneringen vedlikeholdsfaktoren allerede tillater. Svakere kildebelagt enn tiltak 1, og merket slik."
resource: VEGLYS-FV-SOER
measure_id: STYRING-VEGLYS-02
tags: [adaptiv-styring, dimming, CLO, vedlikeholdsfaktor, ECM, trinn-2]
timestamp: 2026-08-09
---
# Tiltak: Adaptiv styring på de LED-utskiftede punktene
Styringstiltak på de **samme 2 500 punktene** som er byttet i trinn 1
([tiltak-led-utskifting.md](tiltak-led-utskifting.md)). Tiltaket forutsetter LED — det er
dimmebarheten LED-driveren gir som gjør det mulig.
> **Denne hypotesen er svakere kildebelagt enn tiltak 1, og det er med vilje synlig.**
> Tiltak 1 er regnet fra to merkeeffekter i samme tabell. Denne er regnet fra en
> *regelverksmargin*, fordi det er det beste materialet gir.
## Evidensgapet, sagt først
**Ingen kilde i materialet vårt kvantifiserer besparelsen fra adaptiv styring eller dimming
i norske veglysanlegg** — ikke i kWh, ikke i prosent. Det er et av de fem punktene på
research-kjøringens egen uverifisert-liste.
Vi kunne ha utledet et tall ved å trekke tiltak 1 fra Vestlands 67 % og tilskrive resten til
styring. Det ville gitt ~46 % av forbruket etter LED — **urimelig høyt for dimming alene**, og
det ville tilskrevet en kilde en dekomponering den ikke inneholder. Vi gjør det ikke.
I stedet regner vi fra den ene marginen norsk regelverk faktisk **navngir**.
## Grunnlaget: vedlikeholdsfaktoren er en innebygd overdimensjonering
Et veglysanlegg skal ligge over det lystekniske minstekravet **over tid**, ikke bare ved
idriftsettelse. Derfor dimensjoneres det med en vedlikeholdsfaktor (MF) som tar høyde for at
lysutbyttet faller gjennom levetiden. Håndbok V124 (2021) setter **MF ≤ 0,85**.
Konsekvensen: et **nytt** anlegg leverer minst **15 % mer lys enn kravet** — en margin som
brennes bort som varme til anlegget har eldes nok til å trenge den. Konstant lysytelse (CLO)
er styringen som henter den tilbake: driveren settes ned ved idriftsettelse og skrus gradvis
opp etter hvert som armaturen degraderer.
**Dette er ikke en besparelse mot kravet — det er en besparelse mot overoppfyllelsen.** Den
lystekniske minsteytelsen (1,0 cd/m² og 5 lx for småtrafikkerte veger) er urørt hele veien.
## Parametere
| Parameter | Verdi | Status | Kilde/forankring |
|---|---|---|---|
| Antall lyspunkter | 2 500 | [I] | samme som trinn 1 |
| Effekt etter LED (utgangspunkt) | 70 W | [V] | NMFV |
| Vedlikeholdsfaktor | **MF ≤ 0,85** | [V] | Håndbok V124 (2021) |
| Effekt ved CLO-nedsetting | 70 × 0,85 = **59,5 W** | beregnet | følger direkte av MF |
| Reduksjon per lyspunkt (ΔW) | **10,5 W** | beregnet | 70 59,5 |
| Brenntimer | 4 050 t/år | [V-forankret] | Håndbok V124 (2021) |
## Modellert besparelse (ex-ante)
> Forbruk etter trinn 1: 70 × 2 500 × 4 050 / 1 000 = **708 750 kWh/år**
> ΔW = 10,5 W/lyspunkt
> kWh/år = 10,5 × 2 500 × 4 050 / 1 000 = **106 312,5 kWh/år**
> kr/år = **106 312,5 NOK/år**
Det er **15,0 %** av forbruket etter LED, som det må være — tallet er MF-marginen, ikke et
uavhengig estimat.
**Samlet med trinn 1:** 445 500 + 106 312,5 = **551 812,5 kWh/år**, altså **47,8 %** av de
2 500 punktenes opprinnelige forbruk (1 154 250 kWh/år).
## Tre grunner til at dette tallet er en øvre grense, ikke et anslag
1. **Marginen er ikke gratis hele levetiden.** CLO henter 15 % ved idriftsettelse og
**null** ved slutten av vedlikeholdsintervallet, når armaturen faktisk trenger hele
utgangseffekten. Gjennomsnittet over intervallet er lavere enn 15 % — hvor mye lavere
avhenger av degraderingskurven, som **ingen kilde her oppgir**.
2. **Dimming utover CLO er ikke modellert.** Trafikkadaptiv dimming (mindre lys ved lav
trafikk) og nattsenking ville kommet i tillegg, men vi har ingen norsk kvantifisering, og
Statens vegvesens egen nattslukkings-pilot (00:0005:00, 2024) sier eksplisitt at tiltaket
må vurderes lokalt og økologisk. **Ikke modellert.**
3. **Styringsutstyret koster, og prisen finnes ikke i materialet.** **Ingen kilde gir NOK per
styringsnode eller for et komplett adaptivt system.** Vi anslår den ikke. Uten
kostnadssiden er dette et energitall, ikke en business case.
## Forholdet til validatoren
**Dette tiltaket er ikke projisert inn i `validator-input.json`.** IR-projeksjonen bærer ett
kandidat-tiltak, og det er trinn 1. Denne hypotesen er her som det den er: et **andre**
kandidat-tiltak lærings-sløyfa kan foreslå, med en modellert besparelse som er svakere
forankret enn den første — og en ekspert-dom som derfor har mer å korrigere.
Realiseringsgapet for styring er bredere enn for lampeutskifting. NFF Publication 13
dokumenterer mønsteret rått fra tunnelventilasjon: potensialet uteble fordi **«viften ble
holdt på full hastighet mesteparten av tiden»**. En styring som overstyres av drift,
leverer null. Se [kilder-veglys-realisering.md](kilder-veglys-realisering.md) og
[verdict-veglys-fro.md](verdict-veglys-fro.md).

View file

@ -0,0 +1,132 @@
---
type: hypothesis
title: "LED-utskifting av veglysarmatur, trinn 1"
description: "Bytte 2 500 eldre HPS-armaturer (114 W installert) til LED (70 W) på de eldste strekningene i porteføljen. Kandidat-tiltak med modellert besparelse, usikkerhet og en åpen kostnadsside."
resource: VEGLYS-FV-SOER
measure_id: LED-VEGLYS-01
tags: [LED, vegbelysning, retrofit, ECM, trinn-1]
timestamp: 2026-08-09
---
# Tiltak: LED-utskifting av veglysarmatur (trinn 1)
Utskifting av **2 500 av porteføljens 9 500 lyspunkter** — de eldste strekningene — fra
høytrykksnatrium til LED. Trinnvis utrulling er den vanlige formen i fylkeskommunale
veglysprosjekter: alderen på armaturen, ikke effekten, avgjør rekkefølgen.
Dette er tiltaket som er **projisert inn i validatoren**. Tiltak 2
([tiltak-adaptiv-styring.md](tiltak-adaptiv-styring.md)) forutsetter at dette er utført.
## Parametere
| Parameter | Verdi | Status | Kilde/forankring |
|---|---|---|---|
| Antall lyspunkter i trinn 1 | 2 500 | [I] | trinnvis utrulling, andel valgt |
| Effekt før (HPS 100 W + forkobling) | 114 W | [V] | NMFV, Road Lighting Efficiency |
| Effekt etter (LED, tilsvarende veg) | 70 W | [V] | NMFV, samme tabell |
| Reduksjon per lyspunkt (ΔW) | **44 W** | beregnet | 114 70 |
| Brenntimer (HOU) | 4 050 t/år | [V-forankret] | Håndbok V124 (2021): 4 0004 100 t/år |
| Variabel energipris | 1,00 NOK/kWh | [V-forankret] | se [veglys-fv-soer.md](veglys-fv-soer.md) |
## Modellert besparelse (ex-ante)
Samme lysligning som for innendørs belysning (DOE/NREL Uniform Methods Project, Eq. 3):
`kWh = Σ (W_før W_etter) × antall × HOU / 1000`
> ΔW = 114 70 = **44 W/lyspunkt**
> kWh/år = 44 × 2 500 × 4 050 / 1 000 = **445 500 kWh/år**
> kr/år = 445 500 × 1,00 = **445 500 NOK/år**
Det er **38,6 %** av de berørte punktenes eget forbruk (1 154 250 kWh/år) og **10,2 %** av
porteføljens totale forbruk.
**Ingen HVAC-interaktiv effekt.** Utendørs finnes ikke motstykket til spillvarme-korreksjonen
et kontorbygg trenger (UMP Eq. 6). Kjernetallet står uten den justeringen.
## Hvorfor 38,6 % og ikke 67 %
Vestland fylkeskommune anslo i 2022 **67 % energireduksjon** ved full LED-oppgradering, til
≈ 200 mill. NOK og ≈ 27 mill. NOK/år spart. Vår bunn-opp-beregning fra merkeeffekt kommer til
38,6 %. Differansen er stor nok til at den må forklares, ikke bortforklares:
- Vår 38,6 % er **ren lampeutskifting**, regnet fra to merkeeffekter i samme NMFV-tabell.
- Vestlands 67 % er et **fylkeskommunalt aggregat-anslag** hvis sammensetning kilden ikke
bryter ned. Det er rimelig å anta at det også inneholder styring/dimming og korreksjon av
overdimensjonering — men **kilden sier det ikke**, og vi tilskriver den ikke noe den ikke
skriver.
- Legger vi tiltak 2 oppå ([tiltak-adaptiv-styring.md](tiltak-adaptiv-styring.md)), kommer vi
til **47,8 %** — fortsatt et godt stykke under 67 %.
**Det gjenstående gapet på ~19 prosentpoeng er uforklart i materialet vårt.** Vi lar det stå
åpent. Det er en av grunnene til at en ekspert-dom, ikke en modell, må sette forventet
faktisk besparelse.
## Kostnadssiden — et navngitt evidenshull
**Ingen kilde i materialet gir NOK per lyspunkt for LED-armatur inkl. montasje.** Vestlands
200 mill. NOK er en totalsum uten per-punkt-oppløsning, og antall lyspunkter oppgis ikke.
En per-punkt-kostnad kan **utledes**, men bare gjennom tre ledd som hver bærer sin egen
usikkerhet:
> 27 mill. NOK/år spart ÷ 1,00 NOK/kWh = 27 GWh/år spart
> 27 GWh/år = 67 % ⇒ baseline ≈ 40,3 GWh/år
> 40,3 GWh/år ÷ ~1 000 kWh per lyspunkt (Agder) ≈ 40 300 lyspunkter
> 200 mill. NOK ÷ 40 300 ≈ **~4 960 NOK per lyspunkt** `[U-utledet]`
Kjeden låner energiprisen fra vår egen baseline og lyspunkt-intensiteten fra et **annet**
fylke. Den er en størrelsesorden, ikke et tall.
**Konsekvensen er ubehagelig og skal stå:** 2 500 × ~4 960 ≈ 12,4 mill. NOK mot 445 500
NOK/år spart gir **~28 års tilbakebetaling på energi alene**. Det er langt dårligere enn
Vestlands egne ~7,4 år, og forskjellen er ikke mystisk — våre punkter er småveg-armatur med
462 kWh/år, mot ~1 000 kWh/år i et riks-inkluderende aggregat. Lavforbrukspunkter har
dårligere energiøkonomi.
Et ekte veglysprosjekt bæres derfor sjelden av energi alene. Vedlikehold er den andre halvdelen:
LED holder «Very good» i ≤ 5 år mens konvensjonelle lamper byttes langt hyppigere (Vestland
oppgir hver 4. år). **Den besparelsen er ikke modellert her** — vi har ingen kilde som
kvantifiserer den i NOK, og vi fyller ikke hullet med et anslag.
**Ingenting av dette går inn i `cost-baseline.json`.** Kostbasen ligger på aggregat-nivå
(energi), der Agder- og Vestland-tallene faktisk bærer.
## Usikkerhet (for Monte Carlo P10/P50/P90)
Den dominerende usikkerheten i en veglysbesparelse er **brenntimer**, ikke pris — og for
norsk veglys er den verre enn i et bygg: **ingen kilde i materialet gir en skumringsstyrt
norsk brenntimekurve.** V124s 4 0004 100 t/år er et tabellanslag for «eldre vegbelysning»,
ikke en målt kurve for et bestemt anlegg på en bestemt breddegrad.
Den eksisterende validatorens Monte Carlo varierer likevel **enhetspris**, ikke brenntimer.
I denne mappingen brukes derfor prisbandet **0,701,40 NOK/kWh** som usikkerhetsakse. Den
fysiske brenntime-usikkerheten — og viktigere, den *systematiske* brenntime-skjevheten —
håndteres i verdict-laget ([verdict-veglys-fro.md](verdict-veglys-fro.md)), ikke her.
## Mapping til validatoren (hvorfor `validator-input.json` ser ut som den gjør)
Den eksisterende deterministiske validatoren er en *feasibility-gate* (`claimed ≤ 30 % av
affected total`, Monte Carlo over enhetspris) bygd for kostnadskutt. Veglystiltaket mappes
inn **uendret**:
- `affected_items = [{code: "ENERGI-VEGLYS-EL", quantity: 4386150 kWh/år, unit_cost: 1.00 NOK/kWh}]`
**hele porteføljens** årlige energikostnad (4 386 150 NOK). Trinn 1-besparelsen er
10,2 % av den, godt innenfor 30 %-cap-en.
- `claimed_saving_nok = 445500` → den modellerte besparelsen fra trinn 1.
- `assumptions = {"ENERGI-VEGLYS-EL": [0.70, 1.40]}` → prisbandet for Monte Carlo.
**Hvorfor porteføljen og ikke bare de 2 500 punktene:** hadde `affected_items` vært de
berørte punktenes eget forbruk (1 154 250 kWh), ville den modellerte besparelsen vært 38,6 %
av den — **over 30 %-cap-en**, og det riktige forslaget ville blitt avvist av en gate som
måler feil størrelse. Porteføljen er den korrekte kostnads-linjen tiltaket virker på, på
samme måte som byggets totale elforbruk er det for et innendørs LED-tiltak.
**`cost-baseline.json` bærer nøyaktig samme rad.** `code`, `quantity` og `unit_cost` er
identiske i de to filene — ikke «innenfor toleranse», men identiske, fordi begge er skrevet
fra linjen `114 W × 9 500 × 4 050 t / 1 000`. Hver `code` i `affected_items` finnes som
nøkkel i `items`.
**Ærlig begrensning:** validatorens P10/P50/P90 betyr her «øvre feasible grense» (30 % av
samplet energikostnad), *ikke* «LED-besparelsens fysiske band». Det er bevisst — den domenetro
besparelses-modelleringen og realiseringsgapet hører hjemme i verdict-laget, som er nettopp
det lærings-sløyfa skal lære.

View file

@ -0,0 +1,16 @@
{
"_note": "IR-projeksjon (ir.SavingsProposal) for det eksisterende deterministiske validatoren. Veglystiltaket er mappet inn i kost-IR-en UENDRET: affected_items = HELE portefoeljens arlige energikostnad (9 500 lyspunkter x 114 W x 4 050 t / 1 000 = 4 386 150 kWh/ar a 1,00 NOK/kWh); claimed_saving_nok = modellert besparelse fra trinn 1 (2 500 punkter x 44 W x 4 050 t / 1 000 = 445 500 kWh/ar), som er 10,2 % av total og godt innenfor 30 %-cap-en; assumptions = energipris-band (NOK/kWh) for Monte Carlo. Hadde affected_items vaert kun de berorte punktenes eget forbruk, ville besparelsen vaert 38,6 % av den og det RIKTIGE forslaget blitt avvist. cost-baseline.json baerer IDENTISK code, quantity og unit_cost - begge er skrevet fra samme linje aritmetikk, ikke avstemt i ettertid. Se tiltak-led-utskifting.md, seksjon 'Mapping til validatoren'.",
"project_id": "VEGLYS-FV-SOER",
"measure": "LED-utskifting av 2 500 eldre HPS-armaturer (114 W -> 70 W) pa smatrafikkerte fylkesveger, trinn 1 av portefoeljen",
"affected_items": [
{
"code": "ENERGI-VEGLYS-EL",
"quantity": 4386150,
"unit_cost": 1.0
}
],
"claimed_saving_nok": 445500,
"assumptions": {
"ENERGI-VEGLYS-EL": [0.70, 1.40]
}
}

View file

@ -0,0 +1,81 @@
---
type: project
title: "Veglysportefølje Fylkesveg Sør"
description: "Fiktiv fylkeskommunal veglysportefølje: 9 500 lyspunkter med eldre høytrykksnatrium-armatur langs småtrafikkerte fylkesveger. Energibaseline og rammer for utskifting og styring."
resource: VEGLYS-FV-SOER
tags: [veglys, vegbelysning, fylkesveg, energibaseline, HPS]
timestamp: 2026-08-09
---
# Veglysportefølje Fylkesveg Sør (VEGLYS-FV-SOER)
**Fiktiv portefølje.** Tallene er illustrative, men bygget av parametere som er forankret i
norske primærkilder — ikke et ekte fylke. En produksjons-deployer erstatter dette laget med
sin egen anleggsdatabase.
Porteføljen er **9 500 lyspunkter** langs småtrafikkerte fylkesveger, alle med eldre
høytrykksnatrium-armatur (HPS). Den er valgt uniform med vilje: hele variasjonen som
betyr noe for lærings-overflaten ligger i **brenntimer og realisering**, ikke i
armatur-miksen.
## Energibaseline
| Størrelse | Verdi | Merknad |
|---|---|---|
| Antall lyspunkter | 9 500 | [I] illustrativt |
| Installert effekt per lyspunkt | **114 W** | [V] 100 W HPS-lampe + 14 W forkobling (NMFV) |
| Brenntimer | **4 050 t/år** | [V-forankret] midtpunkt i Håndbok V124s 4 0004 100 t/år for eldre vegbelysning |
| **Totalt elforbruk** | **4 386 150 kWh/år** | beregnet: 114 W × 9 500 × 4 050 t / 1 000 |
| Per lyspunkt | 461,7 kWh/år | beregnet |
| Variabel energikostnad | **1,00 NOK/kWh** ekskl. mva | [V-forankret] kraftpris + nettleie energiledd + elavgift |
| **Total årlig energikostnad** | **4 386 150 NOK/år** | beregnet |
**Energiprisen** (1,00 NOK/kWh) er den marginale variable kostnaden et spart kWh faktisk
unngår, ekskl. mva. Sammensetningen er den samme som for næringsbygg — kraftpris + nettleie
energiledd + elavgift — og varierer kraftig med prisområde og sesong. Derfor er den
konfigurerbar, og usikkerheten håndteres i Monte Carlo-steget (band 0,701,40 NOK/kWh). Se
[kilder-veglys-realisering.md](kilder-veglys-realisering.md).
**Én forskjell fra næringsbygg er verdt å merke:** veglys har sitt eget nettleie-regime, og
NVE/RME dokumenterer at mange veilysanlegg avregnes på **estimerte** verdier fordi de mangler
måler. Det påvirker ikke den marginale kostnaden per spart kWh, men det er grunnen til at
ex-post-verifikasjon er stengt her. Se [metode-ipmvp-a.md](metode-ipmvp-a.md).
## Kryss-sjekk mot norsk aggregat (og hvorfor tallene ikke er like)
Agder fylkeskommune oppgir at **13 000 lyspunkter** langs riks- og fylkesveger bruker «rett
over 13 GWh/år» — altså **≈ 1 000 kWh per lyspunkt per år**. Vår portefølje ligger på
**461,7 kWh** per lyspunkt, under halvparten.
**Avviket er reelt og forklarlig, ikke en feil:** Agder-tallet dekker **riks- OG fylkesveger**,
altså også høyere vegklasser med 150 W- og 250 W-lamper og lengre master. Fylkesveg Sør er
med vilje modellert som ren småtrafikkert fylkesveg med 100 W-armatur — den vegklassen NMFV
måler på. Retningen på avviket stemmer med den forklaringen: vår portefølje **skal** ligge
under et riks-inkluderende aggregat.
**Dette er en design-beslutning, ikke en måling.** Et ekte fylke ville hatt blandet
armatur-mikse, og en deployer som bytter ut dette laget må regne baselinen på nytt fra sin
egen anleggsdatabase. Konsekvensen for lærings-overflaten er null — realiseringsgapet er en
*rate*, ikke et absolutt tall.
## Rammer (constraints)
- Tiltak vurderes **inne i** denne porteføljen (ikke på tvers av fylkeskommunens øvrige
anlegg).
- **Lystekniske minstekrav setter gulvet.** For småtrafikkerte veger: 1,0 cd/m² og 5 lx
(NMFV). Ingen besparelse kan hentes ved å gå under kravet.
- **Vedlikeholdsfaktoren (MF) må inn i beregningen.** Anlegget skal ligge over kravet **over
tid**, ikke bare ved idriftsettelse. Håndbok V124 setter MF ≤ 0,85. Se
[tiltak-adaptiv-styring.md](tiltak-adaptiv-styring.md) — det er nettopp den marginen
tiltak 2 lever av.
- **Nattslukking kan ikke antas.** Statens vegvesen kjørte pilot på slukking 00:0005:00
i 2024, men dokumentasjonen sier at tiltaket må vurderes lokalt og økologisk. Det er
derfor **ikke** modellert som besparelse i noen av hypotesene her.
- Budsjett og anskaffelsesrammer eies av deployer; her holdes de minimale.
## Kandidat-tiltak
- [tiltak-led-utskifting.md](tiltak-led-utskifting.md) — LED-utskifting, trinn 1
(2 500 lyspunkter).
- [tiltak-adaptiv-styring.md](tiltak-adaptiv-styring.md) — adaptiv styring på de samme
2 500 punktene, etter LED.

View file

@ -0,0 +1,97 @@
---
type: verdict
title: "Ekspert-dom (frø): LED-utskifting veglys — godkjent med realiseringskorreksjon"
description: "Frøsatt ekspert-dom for LED-utskiftingen. Den modellerte besparelsen er teknisk korrekt fra parameterne, men brenntimene er et nasjonalt tabellanslag, ikke en målt kurve, og anlegget mangler måler — så avviket kan ikke oppdages i drift. Forventet faktisk besparelse settes til 81 % av modellert, lånt fra belysnings-programlitteratur og merket som lån. Raten er en NEDRE grense: en motvirkende mekanisme (målt effekt over merkeeffekt) er dokumentert, men ikke kvantifiserbar for LED-siden."
resource: VEGLYS-FV-SOER
measure_id: LED-VEGLYS-01
decision: approved_with_adjustment
realization_rate: 0.81
modelled_saving_nok: 445500
expected_actual_saving_nok: 360855
gap_source: hours-of-use-overestimation
context_key: "veglys; HOU-kilde=V124-tabellverdi; maaling=fravaerende"
provenance: "frø — AI-forfattet. Realiseringsgraden er LÅNT fra belysnings-programlitteratur (National Grid SBS 2010: 81,1 %; Efficiency Maine 2021: 3 053 metrede mot 3 772 antatte timer = 0,809). Det finnes INGEN norsk ex-post-måling for veglys. Erstattes av ekte HITL i produksjon."
tags: [verdict, realization-rate, ExpeL-seed, HITL, veglys, laant-rate]
timestamp: 2026-08-09
---
# Ekspert-dom (frø): LED-utskifting veglys
> **Dette er et frø**, ikke en ekte dom. I simulering gir en ekspert-persona slike dommer;
> i produksjon gir et menneske dem via samme mappe-grensesnitt. Frøet er forankret i
> verifisert litteratur ([kilder-veglys-realisering.md](kilder-veglys-realisering.md)), ikke
> oppdiktet — men **raten er lånt, ikke norsk**, og det står i `provenance`.
## Dommen
**Beslutning:** godkjent — med realiseringskorreksjon.
Den modellerte besparelsen (**445 500 NOK/år**) er teknisk korrekt fra parameterne, og
validatoren bekrefter at den ligger godt innenfor feasibelt område. Men parameteren
besparelsen henger på — brenntimer — er et **nasjonalt tabellanslag**, og anlegget har ingen
måler som kan avsløre at anslaget bommer. Forventet faktisk besparelse settes til
**≈ 360 855 NOK/år** (81 % av modellert).
## Begrunnelse (det validatoren ikke kan regne)
### Hovedmekanismen: brenntimene er stipulert, ikke målt
Håndbok V124s 4 0004 100 t/år gjelder «eldre vegbelysning» som kategori. Det er ikke en
målt kurve for dette anlegget, og **ingen kilde gir en skumringsstyrt norsk
brenntimekurve**. Metoden ([metode-ipmvp-a.md](metode-ipmvp-a.md)) er Option A nettopp fordi
måling er stengt — og Option A er den opsjonen som *tillater* å estimere denne parameteren.
Erfaringen fra belysningsprogrammer med samme lysligning og samme stipulerte parameter er
entydig i retning: Efficiency Maine metret **3 053 t/år** der programmet antok **3 772**
(forholdet 0,809), og National Grid kom uavhengig til en operational adjustment på **81,1 %**
gjennom samme mekanisme. **0,81 er dette lånet, ikke en norsk måling.**
### Sekundære mekanismer, samme retning
- **In-service rate < 1.** Ikke alle 2 500 punktene er nødvendigvis montert og i drift ved
evaluering. Et veglysanlegg spredt over vegnettet har lengre haler enn et bygg.
- **Persistens.** Armaturer som feiler, blir stående mørke til neste vedlikeholdsrunde. Et
mørkt punkt sparer riktignok energi, men leverer ikke tiltaket — og telles typisk ikke som
besparelse i en evaluering.
### Motmekanismen — og hvorfor den IKKE er trukket fra
Én dokumentert mekanisme peker **motsatt vei**: en armatur merket 100 W er målt til å trekke
**120 W** (MDPI). Er den faktiske baseline-effekten høyere enn merkeeffekten modellen regner
med, er den faktiske besparelsen **større** enn modellert — det ville løftet
realiseringsgraden.
Den er likevel ikke netto-regnet inn, av én grunn: **målingen finnes bare for den gamle
armaturen.** Om LED-siden har et tilsvarende påslag — og hvor stort — sier ingen kilde i
materialet. Å anta at LED treffer merkeeffekten eksakt, mens HPS bommer med 20 %, ville vært
en gratis oppjustering av besparelsen bygget på fravær av data.
**Derfor er 0,81 en NEDRE grense, og den er merket slik.** En ekte ekspert med målt
LED-effekt for dette anlegget ville sannsynligvis satt raten høyere.
### Hvorfor dette ikke kan regnes fra parameterne
Du kan **ikke** regne deg til RR = 0,81 fra `{2 500, 114 W, 70 W, 4 050 t, 1,00 NOK/kWh}`.
Skjevheten er epistemikk parameterne ikke bærer — den finnes bare i akkumulert
drifts-erfaring, og i dette domenet finnes den ikke engang i norske måledata. Det er
nøyaktig lærings-overflaten bundelen er bygget for.
## Lærings-signalet (ExpeL)
Korreksjonen er **kontekstbetinget**:
`context_key = "veglys; HOU-kilde=V124-tabellverdi; maaling=fravaerende"`.
Neste kjøring, gitt en lignende hypotese i samme kontekst, skal hente denne dommen og justere
den modellerte ex-ante-besparelsen mot forventet ex-post (≈ 0,81×) — uten å vente på 12
måneders måling som uansett ikke kommer, fordi måleren ikke finnes.
`gap_source` er bevisst satt til **`hours-of-use-overestimation`**, samme nøkkel som
kontorbygg-frøet bruker. Domenene er ulike, men mekanismen er den samme, og en lærings-sløyfa
som ikke ser den koblingen lærer to ganger det den kunne lært én gang.
## Om tiltak 2 (adaptiv styring)
Denne dommen gjelder **kun** LED-utskiftingen (`LED-VEGLYS-01`). Styringstiltaket
([tiltak-adaptiv-styring.md](tiltak-adaptiv-styring.md)) er ikke dømt her, og bør ikke arve
raten: dets modellerte besparelse er en regelverksmargin uten kostnadsside, og
risikoprofilen er en annen — en styring som overstyres av drift leverer null, ikke 81 %.

View file

@ -31,7 +31,8 @@ spec, the golden suite, or agent behaviour.
connector) does not require any change to this spec, and NOT implementing it does not break
conformance.
- **Honesty rule (unwaivable, method spec §1):** a machine-generated bundle is labelled as
such (`generated: true` plus a manifest reference, §7) everywhere it is presented.
such (`generated.by` naming the ingest actor, plus a manifest reference, §7) everywhere it is
presented.
- **Boundary:** the deploying organisation owns processing purposes and impact assessments;
ingest provides only the technical prerequisites (local-only default, provenance, no silent
egress).
@ -67,9 +68,10 @@ approved knowledge into. Two rules keep ingest and the learning loop apart:
self-contamination the gate exists to prevent. This MUST be enforced fail-fast at manifest
validation (before any source call) and proven by a load-bearing test (§11).
- **Ingest owns only its own files.** Re-materialization replaces EXACTLY the files carrying
the ingest stamp (`generated: true` plus an `ingest_manifest` reference, §7) and MUST NOT
touch curated or promoted files. If a generated filename collides with an existing file that
does NOT carry the stamp, materialization MUST fail — never overwrite curated content.
the ingest stamp (`generated.by` equal to the ingest actor plus an `ingest_manifest`
reference, §7) and MUST NOT touch curated or promoted files. If a generated filename
collides with an existing file that does NOT carry the stamp, materialization MUST fail —
never overwrite curated content.
Index updating is idempotent and preserves curated links (§6). The stamp is unforgeable
against **accident**, not against **will**: an operator who hand-copies a generated file —
stamp and all — into curated content makes it indistinguishable from ingest-owned content,
@ -79,10 +81,11 @@ approved knowledge into. Two rules keep ingest and the learning loop apart:
- **No other writer may forge the stamp.** The stamp is the sole mark distinguishing
ingest-owned files from curated ones, so any authoring primitive that materializes a concept
file from **caller-supplied** frontmatter MUST reject a frontmatter carrying the *complete*
ownership stamp — `generated: true` together with an `ingest_manifest` reference — while
permitting either field alone (curated content may legitimately carry a single provenance
field). The check is on the complete stamp, never on the individual field names, so a
legitimate verbatim round-trip is preserved; it is a **validation, never a repair**.
ownership stamp — `generated.by` equal to the ingest actor together with an `ingest_manifest`
reference — while permitting either field alone (curated content may legitimately carry a
single provenance field). The check is on the complete stamp, never on the individual field
names, so a legitimate verbatim round-trip is preserved; it is a **validation, never a
repair**.
## 4. The ingest manifest (the contract)
@ -211,7 +214,7 @@ that are never mixed — the same discipline as the two falsifiers.
| `source_query` | The query that fetched the content (whitespace-collapsed, §5). |
| `ingested_at` | The explicit timestamp argument, verbatim (§5). |
| `ingest_manifest` | The manifest reference `{stem}@{hash16}` (§5). |
| `generated` | Literally `true` — the machine-generated marker (§1 honesty rule). |
| `generated` | The inline mapping `{ by: process:okf-ingest, at: <ingested_at> }`. `by` is the fixed ingest actor this spec defines — a `process:` actor, never a producer's name (the preamble rule: this layer is implementable **from this spec alone**, and the prose never names a concrete toolkit or vendor stack); it is what marks the file machine-generated (§1 honesty rule), since the key's mere presence does not (curated content may carry a `human:` actor). `at` repeats the `ingested_at` value verbatim. Quoting is NOT normative: frontmatter is parsed line-oriented (method spec §3), so a quote character would be part of the value. |
- OKF consumers preserve unknown frontmatter fields, so this layer rides through navigation
and context rendering unchanged.
@ -272,7 +275,7 @@ spec §11 regime):
| Seam | The test MUST fail when… |
|---|---|
| Provenance stamping | a generated file no longer carries the §7 layer |
| Stamp integrity (curated writers) | a caller-supplied frontmatter carrying the complete ownership stamp (`generated: true` with `ingest_manifest`) stops being rejected by the verbatim authoring path (§3) |
| Stamp integrity (curated writers) | a caller-supplied frontmatter carrying the complete ownership stamp (`generated.by` equal to the ingest actor, with `ingest_manifest`) stops being rejected by the verbatim authoring path (§3) |
| Navigability | the generated bundle stops being consumable by the UNCHANGED bundle-navigation code, index links included |
| Verdict reservation | a manifest mapping to `type: verdict` (or the reserved filename namespace) stops being rejected |
| Title link-safety | a `title` containing `[` or `]` stops being rejected fail-fast at manifest load (§4) |