Kvalitetsøkt · F3 Mikro · Torsdag 29. januar 2026

29 × 45/15

Intensjon antatt — format fra lapper, hensikt fra nivå · Utført: 3:45

29 drag på 3:56, steady-puls 148 — 18 slag under normalen din på farten.

Saucony Endorphin Pro 4 · 226 kmtredemølle · mølle−14,1 °C · vind 8,7 km/t · fukt 58 %8,3 km · 41:45
Nivå
96,8 %
av LT2-fart (3:49) · sub-terskel
Mot målet
🇩🇪 om 59 dager
Opptjente merker
Laveste puls på 3:58 siste 12 mnd148 · forrige 155 (08.12)
Øktas bilde — drag-grafen
fart per dragsteady-pulsdin normal ved fartenlab-kurvelaktat↓ fall i pausen (60 s)

Kart

dragoppvarming · pauser · nedjoggstart

Tid i soner

draghele økta

Løpsdynamikk

ingen dynamikkdata for økta
Kvalitets-km
6,0 km
økt 8,3 km · 41:45
Snittfart drag
3:58 /km
spenn 22 s
Steady-puls
148 bpm
normal 166 · lab 160 · maks 167
Laktat
mmol
ikke målt
Restitusjon
bpm / 60 s
pauser < 45 s
Drift
+5,2 bpm
siste-2-min-puls sett 1 → 3: +5 bpm
Effekt · kadens
446 W · 178 spm
økt 344 W · 0 spm
Belastning
TSB 3 · CTL 83
TRIMP 67 · 1 om morgenen
Kostnad — laktat og puls mot lab-profilen
lab 2026-02 (Biosen) · feltmålinger siste 8 uker
lab 2026-02forrige labi dagfelt siste 8 uker
labdin normal (offset 5,1)i dag, steady per drag
Mot målet — nedtelling, modell og hva økta sier
Fysiologisk plassering3:56 = sub-terskel for deg nå (96,8 % av LT2-fart 3:49). HMP 3:53 (🇩🇪) ligger i sub-terskel-sonen din (98,2 %).
Formatets trend29×45 s normalisert til 3:56: puls 148 → 152 → 171 → 148 (15.12 · 18.12 · 22.12 · 29.01).
I blokka — Berlin halvmaraton 2026
○ langtur · ◇ løp

Samme format sist 5 + i dag

DatoØktFartSteady-pulsLaktatSkår
24.112 x 10 x 45/153:51147,87,1 v1
08.122 x 10 x 45/153:57155,36,9 v1
15.122 x 10 x 45/154:06143,86,7 v1
18.123 x 10 x 45/154:06148,57,3 v1
22.122 x 10 x 45/154:49151,47,8 v1
29.013 x 10 x 45/15 @ 3:453:58147,78,8
fart puls skår

Økonomi-trend — puls ved 3:56

puls normalisert til referansefarten (0,37 bpm per s/km)din normallab

Ukevolum siste 26 uker

Kvalitets-km fordelt på fart — siste 12 uker

244 km kvalitet i drag og segmenter · dagens bånd uthevet
Samme format alle år — 29×45 s (35 økter)
DatoØktFartSteady-pulsLaktatSkår
30.0625x 45/154:13154,86,3 v1
27.0415 x 40s @ 3:403:51158,54,7 v1
27.0710 x 45/153:44169,67,4 v1
04.0815 x 45/153:56157,27,8 v1
21.0811 x 45/154:20149,65,5 v1
18.1120 x 45/154:16157,37,2 v1
15.0210x45/154:08163,97,7 v1
01.0315 x 1 min4:49148,05,9 v1
30.0330 x 1 min4:44148,04,6 v1
12.0320 x 45/154:08159,68,4 v1
13.112 x 10 x 45/15 @ 15 - 17 k3:45154,57,9 v1
20.113 x 10 x 45/15 @ 15-17 kmh3:39154,87,5 v1
14.122 x 10 x 45/15 @ 15-17 kmh3:46156,38,2 v1
17.122 x 10 x 45/15 @ 15 - 17 k3:44150,86,8 v1
30.123 x 10 x 45/15 @ 15-16 kmh3:50153,88,3 v1
13.013 x 10 x 45/15 @ 15-17 kmh3:53154,98,4 v1
31.014 x 10 x 45/153:57153,68,4 v1
11.023 x 10 x 45/15 @ 4:004:05145,56,7 v1
23.023 x 10 x 45/15 @ 4:004:08139,07,0 v1
23.123 x 10 x 45/154:16145,77,0 v1
10.012 x 10 x 45/154:25148,76,5 v1
17.013 x 10 x 45/154:05151,07,5 v1
07.023 x 10 x 45/154:05149,87,4 v1
14.023 x 10 x 45/154:34149,06,8 v1
04.043 x 10 x 45/154:33138,37,1 v1
11.0650 x 45/154:29149,86,3 v1
07.112 x 10 x 45/154:03147,46,3 v1
14.112 x 10 x 45/154:03151,46,9 v1
17.112 x 10 x 45/153:53143,77,2 v1
24.112 x 10 x 45/153:51147,87,1 v1
08.122 x 10 x 45/153:57155,36,9 v1
15.122 x 10 x 45/154:06143,86,7 v1
18.123 x 10 x 45/154:06148,57,3 v1
22.122 x 10 x 45/154:49151,47,8 v1
29.013 x 10 x 45/15 @ 3:453:58147,78,8
Dagen
HRV 7-dagers glattetenkeltdagerbaseline-bånd
HRV i morges
63 ms
7 d 60 · 60 d 64 · baseline ≥ —
Hvilepuls · søvn
42 bpm · 80
7 d 41–42 · 6,8 t søvn · readiness 83
Vær
−14,1 °C
følt −19,3 · vind 8,7 km/t · fukt 58 %
Arena · sko
tredemølle
Saucony Endorphin Pro 4 · 226 km
Belastning
CTL 83 · TSB 3
1 om morgenen · TRIMP 67 · kl. 19:13
Analyse — prosa skrevet under forrige skåringssystem
claude-opus-4-8 · 2026-06-11
Merknad (auto): Prosaen er skrevet 11.06.2026 under skåring v1 og beholdes uendret. Da var skåren 7,3 Solid; med Skåring 2.0 er den 8,8 Sterk (se kortet øverst). Tall i teksten som gjelder skår, komponenter eller «kontekst» er derfor historiske.

Øktanalyse — 3 × 10 × 45/15 @ 3:45 | 29.01.2026

Tretti mikrodrag på mølla i streng kulde — aerob terskel-base mot Berlin

1. Sammendrag

Tre serier à ti mikrodrag på 45/15, kjørt på mølle i 15–16 km/t en svært kald dag, ga en solid aerob terskel-økt — sesjonsskår 7.3 Solid (eksekusjon 7.0, kontekst 8.1). Som alltid med 45/15 leses dette på snittpuls per drag: snittpulsen for kvalitetsdelen lå på 151 — øvre I2 / nedre I3 — og holdt seg stabil rundt 150–158 gjennom de tretti dragene etter en kald oppvarming. Det var en kontrollert, høy-aerob base-økt i build-fasen mot Berlin, med watten jevnt rundt 440–462. Noen få sensor-dropouts og en kald start gir hakk i dataene, men det underliggende bildet er en jevn, velkalibrert aerob belastning.

2. Pre-readiness og dagens kontekst

Carl gikk inn fersk og balansert. TSB dagen før var +1,11 (CTL 83,4, ATL 82,3) — balansert-til-uthvilt. HRV-snittet over 13 dager lå på 62,7 ms med IN_RANGE-status og stabil trend (13 av 14 dager balansert), hvilepuls 42, søvn 6 timer 45 minutter (score 80, «POSITIVE_CONTINUOUS»), stress-snitt 19, Training Readiness 50 (MODERATE). Solide, stabile signaler.

Belastning: vi er i build-fasen mot Berlin halvmaraton 2026, 95 dager etter Frankfurt. Det var ekstremt kaldt ute — −14,1 °C, følt −19,3 — men økten ble kjørt på mølle. Den strenge kulden er likevel relevant for én ting: den forklarer den kalde, lave oppvarmingen i de første dragene og kan ha bidratt til noen tidlige pulsbelte-dropouts. Sko: Saucony Endorphin Pro 4 med 226 km. Strava-navnet er nøkternt: «@ 3:45». Dette er en høy-aerob 45/15-base-økt — tretti korte drag på rask aerob pace, en effektiv måte å bygge aerob kapasitet på med moderat restitusjonskostnad.

3. Pacestrategi

På en 45/15-økt på mølle er per-drag-pace støyende, og de enkelte fartstallene (svingende mellom 3:45 og 4:09) skal ikke leses bokstavelig — 45-sekunders segmenter gir ikke stabile målinger, og en kald start gjør de første dragene tregere. Det meningsfulle er at Carl siktet på 3:45 (cirka 16 km/t) og holdt et jevnt aerobt arbeidsnivå gjennom de tretti dragene. Etter en kald oppvarming i de første par dragene la han seg inn på et stabilt nivå rundt 3:50–4:00 og holdt det konsistent gjennom alle tre seriene. Pacestrategien var riktig for en base-økt: ikke å jakte en presis fart, men å holde en jevn, høy-aerob belastning som kunne gjentas tretti ganger.

4. Aerob belastning

Snittpulsen per drag er den pålitelige kanalen, og den forteller en jevn historie. Etter en kald start (det aller første draget leser bare 118, en uoppvarmet/kaldstart-verdi) la pulsen seg raskt inn på et stabilt nivå: gjennom dragene 2–29 lå snittpulsen jevnt mellom 147 og 158, med snittet for hele kvalitetsdelen på 151 og andre halvdel på 156. Med LT1 på 159 betyr det at Carl tilbrakte økten i øvre I2 / akkurat på grensen til nedre I3 — en høy-aerob base-belastning, kontrollert under terskel. De siste dragene krøp opp mot 156–158, en mild, naturlig stigning mot slutten.

Den tilsynelatende enorme driften (rep 1 til rep 29: 118 → 158) skyldes utelukkende den kalde startverdien — fra drag 2 og ut var pulsen bemerkelsesverdig stabil, en samlet reell drift på under 10 bpm over de tretti dragene. Det er nettopp den jevne, kontrollerte aerobe belastningen en 45/15-base-økt er ment å gi. Noen få drag (10, 11 og 20) viser sensor-dropouts — uventede fall i pulsen midt i serien som ikke er fysiologisk troverdige — og skal ignoreres; de er beltekontakt-artefakter, ikke reelle.

5. Power og økonomi (Stryd)

Watten er den jevneste og mest pålitelige kanalen her, og den bekrefter den stabile aerobe belastningen. Bortsett fra de få dropout-dragene (der watten faller til urealistiske verdier sammen med pulsen) lå kraften jevnt rundt 436–462 watt gjennom alle tretti dragene — 5,9–6,2 W/kg ved 74 kg. Den jevne watten viser at Carl holdt en konstant aerob innsats fra drag til drag, uten den progresjonen vi så i noen av høstens 45/15-økter; dette var en mer stabil, jevn base-belastning. Kadensen lå stabilt rundt 176–181 spm. At watten holdt seg så jevn gjennom tretti drag bekrefter at dette var en kontrollert, velstyrt aerob økt.

6. Drift, decoupling og fatigue-signaler

Den reelle driften (fra drag 2 og ut) er lav — under 10 bpm over tretti drag — og fatigue-signalene er fraværende. Den jevne watten og den stabile pulsen forteller om en kropp i god aerob balanse. Den kalde startverdien og de få sensor-dropoutene er datakvalitets-hakk, ikke fysiologiske signaler. Den ferske TSB-en (+1,1) og den stabile IN_RANGE HRV-en bekrefter at Carl var velrestituert. Som høy-aerob base-økt var dosen passe og godt tolerert — den la aerobt volum uten å tippe over i en hard terskelbelastning.

7. Sammenligning med historikk

Mot samme-sone-historikken er 29. januar en aerob base-økt blant en serie sterke januarøkter. De høyere-scorende naboene (21. januar 10×1000 @ 3:55 skår 8.9, 27. januar 3×12 min skår 8.0) er jevne terskeløkter; 29. januar er en annen sjanger — høy-aerob 45/15-volum. 45/15-økter scorer gjennomgående i 6–7-sjiktet fordi de korte dragene ikke gir den jevne, dokumenterbare terskelbelastningen scoringen premierer, og fordi pace-støyen på 45-sekunders segmenter trekker konsistens-komponentene ned. At denne scorer 7.3 — i øvre del av 45/15-sjiktet — reflekterer den stabile, velkalibrerte aerobe belastningen. Som base-bygger gjorde den jobben sin i en uke ellers fylt med terskelkvalitet.

8. Form og treningskontekst

TSB +1,1 plasserer dagen i fersk balanse. CTL 83 viser en høy base i build-fasen mot Berlin. En høy-aerob 45/15-økt er fasekoherent for base-bygging — den legger aerobt volum og holder kvalitetsfølelsen ved like uten den restitusjonskostnaden en hard terskeløkt gir, hvilket er nyttig i en uke med mye terskelkvalitet. At Carl la den på mølle i −14 graders kulde var et fornuftig valg — innendørs kontroll over fart og forhold. Subjektivt antyder den jevne gjennomføringen at Carl behandlet økten som det den var: en kontrollert aerob base-økt, ikke en hard nøkkeløkt.

9. Gjennomføring og taktiske observasjoner

Det taktisk gode er den jevne, stabile aerobe belastningen over tretti drag. I motsetning til en progressiv 45/15-økt holdt Carl her et konstant nivå gjennom alle tre seriene — en ren volum-stimulus. Formatet 45/15 lar ham akkumulere et betydelig aerobt arbeid i håndterbare biter, og flyt-pausene holder det aerobt. På mølle i streng kulde får han full kontroll over fart og forhold. Den eneste observasjonen er teknisk: den kalde starten og de få sensor-dropoutene minner om at pulsbeltet bør fuktes og varmes før svært kalde økter, slik at HR-kanalen er ren hele veien. Selve treningen var et velvalgt base-bidrag.

10. Eksekusjonsscore — komponenter

Eksekusjonen på 7.0 reflekterer 45/15-sjangerens iboende lavere score (støyende korte drag) kombinert med en solid, jevn utførelse. Pace-konsistensen straffes av den støyende fartsmålingen og den kalde starten, og de få sensor-dropoutene bidrar marginalt negativt. Men den jevne watten og den stabile pulsen (fra drag 2 og ut) trekker opp, og plan-fullføringen er komplett. Det er i øvre del av hva en 45/15-økt typisk scorer på eksekusjon. Kontekstscoren på 8.1 er solid: fersk TSB, stabil IN_RANGE HRV og god fasekoherens for base-bygging. Samlet 7.3 Solid er en rettferdig dom — en velkalibrert aerob base-økt i en sjanger som strukturelt scorer i 6–7-sjiktet.

11. Hva som ville løftet score

Det meste handler om sjanger og datakvalitet. En 45/15-økt vil sjelden score høyt i et terskel-intervall-system, så det realistiske er å vurdere den som aerob volum. Et fuktet, varmt pulsbelte (uten den kalde startverdien og dropoutene) ville gitt renere data og en marginalt høyere eksekusjonsscore. For den som vil ha en høyere score ville en jevn terskeløkt gitt mer uttelling — men det ville vært en annen, hardere stimulus enn den aerobe base-byggingen denne økten leverte. For det den var, gjorde den jobben sin.

12. Konklusjon og veien videre

Dette var en velkalibrert aerob base-økt: tretti mikrodrag på mølla i streng kulde, med pulsen stabil i øvre I2 og watten jevn gjennom alle tre seriene. Den scorer 7.3 — i øvre del av 45/15-sjiktet — fordi formatet strukturelt scorer lavere enn terskelintervaller, ikke fordi treningen var svak. Take-away for treneren er at høy-aerob 45/15 er et effektivt base-verktøy som balanserer en uke med mye terskelkvalitet, og at pulsbeltet bør varmes før svært kalde økter. For Berlin-blokken var dette et godt aerobt volum-bidrag, lagt skånsomt inn mellom de hardere terskeløktene i en sterk januarmåned.

Detaljer
#TidFartMålFørste 500Siste 500Steady-pulsForventetMaksFall 60 sEffektKadensLaktat
10:454:00118,0164,1 (−46,1)139447 W180
20:453:47147,0171,0 (−24,0)154460 W178
30:454:06148,0161,6 (−13,6)155439 W180
40:454:09150,0160,4 (−10,4)156436 W178
50:453:50151,0169,4 (−18,4)158461 W178
60:453:57152,0165,7 (−13,7)161452 W178
70:453:57152,0165,7 (−13,7)161451 W177
80:453:51151,0168,9 (−17,9)159460 W178
90:454:05149,0162,0 (−13,0)160−−1439 W176
100:45125,01618 W134
110:453:50117,0169,4 (−52,4)147187 W182
120:454:05149,0162,0 (−13,0)157440 W180
130:454:05152,0162,0 (−10,0)159438 W180
140:453:58151,0165,2 (−14,2)158445 W179
150:454:04152,0162,5 (−10,5)158436 W180
160:454:06157,0161,6 (−4,6)163432 W179
170:453:54153,0167,3 (−14,3)159453 W178
180:453:53155,0167,8 (−12,8)160453 W178
190:454:03154,0162,9 (−8,9)160−−2438 W180
200:453:53120,0167,8 (−47,8)162109 W181
210:453:49151,0170,0 (−19,0)157458 W178
220:453:56149,0166,2 (−17,2)161450 W177
230:453:55150,0166,8 (−16,8)157448 W178
240:453:56153,0166,2 (−13,2)160450 W178
250:454:03155,0162,9 (−7,9)163435 W178
260:454:05154,0162,0 (−8,0)160437 W180
270:453:55155,0166,8 (−11,8)159449 W175
280:453:54156,0167,3 (−11,3)162453 W180
290:453:48158,0170,5 (−12,5)164462 W181
pulsfartdrag

Etterspill

DagHRVHvilepulsSøvn
D+158 ↓ −1,942 ↑ +0,385 ↑ +7,6
D+276 ↑ +16,141 ↓ −0,799 ↑ +21,6
mot 7-dagers snittet før økta: HRV 60 · hvilepuls 42 · søvn 77

Strava

3 x 10 x 45/15 @ 3:45
Rådata (quality.json)
{
 "activity_id": 17219852224,
 "date": "2026-01-29",
 "name": "3 x 10 x 45/15",
 "session_label": "3 x 10 x 45/15 terskel",
 "quality_type": "interval",
 "interval_structure": "3 x 10 x 45/15 @ 3:45",
 "interval_type": "on_off",
 "is_track": false,
 "is_treadmill": true,
 "arena": "tredemølle",
 "distance_km": 8.26,
 "duration_s": 2505,
 "avg_hr": 139.2,
 "max_hr": 167.0,
 "avg_power": 344,
 "avg_cadence": null,
 "avg_gct": 231.7,
 "avg_stride_length": 140.6,
 "avg_vertical_oscillation": 9.59,
 "avg_vertical_ratio": 6.96,
 "elevation_gain": null,
 "gear_name": "Saucony Endorphin Pro 4",
 "gear_km_at_run": 225.7,
 "weather": {
  "temp_c": -14.1,
  "feels_like_c": -19.3,
  "humidity_pct": 58,
  "wind_kmh": 8.7,
  "precip_mm": 0.0,
  "condition": "stort sett klar"
 },
 "quality_km": 6.0,
 "quality_avg_pace": "3:45",
 "quality_avg_hr": 151,
 "quality_avg_power": 446,
 "quality_avg_cadence": 178,
 "lactate": [],
 "reps": [
  {
   "n": 1,
   "prescribed_distance_m": null,
   "gps_distance_m": 187,
   "time_s": 45,
   "pace": "4:00",
   "hr_avg": 110,
   "hr_max": 139,
   "cadence": 180,
   "power": 447,
   "per_km": null,
   "flag": "45_15_work_lap",
   "stream_stats": {
    "stream_idx_start": 663,
    "stream_idx_end": 707,
    "hr_steady_state": 118,
    "hr_max_stream": 139,
    "hr_last_500m": 118,
    "hr_first_500m": 81,
    "pace_steady_s_per_km": 220.2,
    "cadence_avg": 179,
    "power_avg": 439,
    "_source": "45_15_lap_window"
   },
   "hr_end_500m": 130.2,
   "hr_second_half": 136.5
  },
  {
   "n": 2,
   "prescribed_distance_m": null,
   "gps_distance_m": 198,
   "time_s": 45,
   "pace": "3:47",
   "hr_avg": 147,
   "hr_max": 154,
   "cadence": 178,
   "power": 460,
   "per_km": null,
   "flag": "45_15_work_lap",
   "stream_stats": {
    "stream_idx_start": 723,
    "stream_idx_end": 767,
    "hr_steady_state": 147,
    "hr_max_stream": 154,
    "hr_last_500m": 147,
    "hr_first_500m": 148,
    "pace_steady_s_per_km": 223.4,
    "cadence_avg": 176,
    "power_avg": 457,
    "_source": "45_15_lap_window"
   },
   "hr_end_500m": 149.7,
   "hr_second_half": 152.3
  },
  {
   "n": 3,
   "prescribed_distance_m": null,
   "gps_distance_m": 183,
   "time_s": 45,
   "pace": "4:06",
   "hr_avg": 149,
   "hr_max": 155,
   "cadence": 180,
   "power": 439,
   "per_km": null,
   "flag": "45_15_work_lap",
   "stream_stats": {
    "stream_idx_start": 783,
    "stream_idx_end": 827,
    "hr_steady_state": 148,
    "hr_max_stream": 155,
    "hr_last_500m": 148,
    "hr_first_500m": 155,
    "pace_steady_s_per_km": 222.1,
    "cadence_avg": 180,
    "power_avg": 431,
    "_source": "45_15_lap_window"
   },
   "hr_end_500m": 149.6,
   "hr_second_half": 152.1
  },
  {
   "n": 4,
   "prescribed_distance_m": null,
   "gps_distance_m": 181,
   "time_s": 45,
   "pace": "4:09",
   "hr_avg": 151,
   "hr_max": 156,
   "cadence": 178,
   "power": 436,
   "per_km": null,
   "flag": "45_15_work_lap",
   "stream_stats": {
    "stream_idx_start": 843,
    "stream_idx_end": 887,
    "hr_steady_state": 150,
    "hr_max_stream": 156,
    "hr_last_500m": 150,
    "hr_first_500m": 154,
    "pace_steady_s_per_km": 223.2,
    "cadence_avg": 177,
    "power_avg": 436,
    "_source": "45_15_lap_window"
   },
   "hr_end_500m": 152.0,
   "hr_second_half": 154.5
  },
  {
   "n": 5,
   "prescribed_distance_m": null,
   "gps_distance_m": 195,
   "time_s": 45,
   "pace": "3:50",
   "hr_avg": 151,
   "hr_max": 158,
   "cadence": 178,
   "power": 461,
   "per_km": null,
   "flag": "45_15_work_lap",
   "stream_stats": {
    "stream_idx_start": 903,
    "stream_idx_end": 947,
    "hr_steady_state": 151,
    "hr_max_stream": 158,
    "hr_last_500m": 151,
    "hr_first_500m": 156,
    "pace_steady_s_per_km": 220.6,
    "cadence_avg": 177,
    "power_avg": 461,
    "_source": "45_15_lap_window"
   },
   "hr_end_500m": 154.0,
   "hr_second_half": 157.0
  },
  {
   "n": 6,
   "prescribed_distance_m": null,
   "gps_distance_m": 189,
   "time_s": 45,
   "pace": "3:57",
   "hr_avg": 153,
   "hr_max": 161,
   "cadence": 178,
   "power": 452,
   "per_km": null,
   "flag": "45_15_work_lap",
   "stream_stats": {
    "stream_idx_start": 963,
    "stream_idx_end": 1007,
    "hr_steady_state": 152,
    "hr_max_stream": 161,
    "hr_last_500m": 152,
    "hr_first_500m": 159,
    "pace_steady_s_per_km": 221.7,
    "cadence_avg": 178,
    "power_avg": 462,
    "_source": "45_15_lap_window"
   },
   "hr_end_500m": 156.1,
   "hr_second_half": 159.9
  },
  {
   "n": 7,
   "prescribed_distance_m": null,
   "gps_distance_m": 189,
   "time_s": 45,
   "pace": "3:57",
   "hr_avg": 153,
   "hr_max": 161,
   "cadence": 177,
   "power": 451,
   "per_km": null,
   "flag": "45_15_work_lap",
   "stream_stats": {
    "stream_idx_start": 1023,
    "stream_idx_end": 1067,
    "hr_steady_state": 152,
    "hr_max_stream": 161,
    "hr_last_500m": 152,
    "hr_first_500m": 161,
    "pace_steady_s_per_km": 223.0,
    "cadence_avg": 176,
    "power_avg": 462,
    "_source": "45_15_lap_window"
   },
   "hr_end_500m": 154.0,
   "hr_second_half": 156.8
  },
  {
   "n": 8,
   "prescribed_distance_m": null,
   "gps_distance_m": 194,
   "time_s": 45,
   "pace": "3:51",
   "hr_avg": 152,
   "hr_max": 159,
   "cadence": 178,
   "power": 460,
   "per_km": null,
   "flag": "45_15_work_lap",
   "stream_stats": {
    "stream_idx_start": 1083,
    "stream_idx_end": 1127,
    "hr_steady_state": 151,
    "hr_max_stream": 159,
    "hr_last_500m": 151,
    "hr_first_500m": 159,
    "pace_steady_s_per_km": 220.6,
    "cadence_avg": 176,
    "power_avg": 451,
    "_source": "45_15_lap_window"
   },
   "hr_end_500m": 153.9,
   "hr_second_half": 157.1
  },
  {
   "n": 9,
   "prescribed_distance_m": null,
   "gps_distance_m": 184,
   "time_s": 45,
   "pace": "4:05",
   "hr_avg": 150,
   "hr_max": 160,
   "cadence": 176,
   "power": 439,
   "per_km": null,
   "flag": "45_15_work_lap",
   "stream_stats": {
    "stream_idx_start": 1143,
    "stream_idx_end": 1187,
    "hr_steady_state": 149,
    "hr_max_stream": 160,
    "hr_last_500m": 149,
    "hr_first_500m": 160,
    "pace_steady_s_per_km": 220.9,
    "cadence_avg": 174,
    "power_avg": 439,
    "_source": "45_15_lap_window"
   },
   "hr_end_500m": 151.6,
   "hr_second_half": 154.6
  },
  {
   "n": 10,
   "prescribed_distance_m": null,
   "gps_distance_m": 0,
   "time_s": 45,
   "pace": null,
   "hr_avg": 133,
   "hr_max": 161,
   "cadence": 134,
   "power": 8,
   "per_km": null,
   "flag": "45_15_work_lap",
   "stream_stats": {
    "stream_idx_start": 1258,
    "stream_idx_end": 1303,
    "hr_steady_state": 125,
    "hr_max_stream": 161,
    "hr_last_500m": 125,
    "hr_first_500m": 161,
    "pace_steady_s_per_km": null,
    "cadence_avg": 138,
    "power_avg": 178,
    "_source": "45_15_lap_window"
   },
   "hr_end_500m": 155.6,
   "hr_second_half": 157.8
  },
  {
   "n": 11,
   "prescribed_distance_m": null,
   "gps_distance_m": 195,
   "time_s": 45,
   "pace": "3:50",
   "hr_avg": 86,
   "hr_max": 147,
   "cadence": 182,
   "power": 187,
   "per_km": null,
   "flag": "45_15_work_lap",
   "stream_stats": {
    "stream_idx_start": 1319,
    "stream_idx_end": 1365,
    "hr_steady_state": 117,
    "hr_max_stream": 147,
    "hr_last_500m": 117,
    "hr_first_500m": 91,
    "pace_steady_s_per_km": 219.3,
    "cadence_avg": 182,
    "power_avg": 455,
    "_source": "45_15_lap_window"
   },
   "hr_end_500m": 151.8,
   "hr_second_half": 155.3
  },
  {
   "n": 12,
   "prescribed_distance_m": null,
   "gps_distance_m": 184,
   "time_s": 45,
   "pace": "4:05",
   "hr_avg": 149,
   "hr_max": 157,
   "cadence": 180,
   "power": 440,
   "per_km": null,
   "flag": "45_15_work_lap",
   "stream_stats": {
    "stream_idx_start": 1381,
    "stream_idx_end": 1425,
    "hr_steady_state": 149,
    "hr_max_stream": 157,
    "hr_last_500m": 149,
    "hr_first_500m": 154,
    "pace_steady_s_per_km": 219.5,
    "cadence_avg": 180,
    "power_avg": 440,
    "_source": "45_15_lap_window"
   },
   "hr_end_500m": 154.3,
   "hr_second_half": 157.5
  },
  {
   "n": 13,
   "prescribed_distance_m": null,
   "gps_distance_m": 183,
   "time_s": 45,
   "pace": "4:05",
   "hr_avg": 152,
   "hr_max": 159,
   "cadence": 180,
   "power": 438,
   "per_km": null,
   "flag": "45_15_work_lap",
   "stream_stats": {
    "stream_idx_start": 1441,
    "stream_idx_end": 1485,
    "hr_steady_state": 152,
    "hr_max_stream": 159,
    "hr_last_500m": 152,
    "hr_first_500m": 157,
    "pace_steady_s_per_km": 220.7,
    "cadence_avg": 180,
    "power_avg": 448,
    "_source": "45_15_lap_window"
   },
   "hr_end_500m": 153.0,
   "hr_second_half": 155.4
  },
  {
   "n": 14,
   "prescribed_distance_m": null,
   "gps_distance_m": 189,
   "time_s": 45,
   "pace": "3:58",
   "hr_avg": 151,
   "hr_max": 158,
   "cadence": 179,
   "power": 445,
   "per_km": null,
   "flag": "45_15_work_lap",
   "stream_stats": {
    "stream_idx_start": 1501,
    "stream_idx_end": 1545,
    "hr_steady_state": 151,
    "hr_max_stream": 158,
    "hr_last_500m": 151,
    "hr_first_500m": 158,
    "pace_steady_s_per_km": 220.6,
    "cadence_avg": 179,
    "power_avg": 438,
    "_source": "45_15_lap_window"
   },
   "hr_end_500m": 153.5,
   "hr_second_half": 156.6
  },
  {
   "n": 15,
   "prescribed_distance_m": null,
   "gps_distance_m": 184,
   "time_s": 45,
   "pace": "4:04",
   "hr_avg": 153,
   "hr_max": 158,
   "cadence": 180,
   "power": 436,
   "per_km": null,
   "flag": "45_15_work_lap",
   "stream_stats": {
    "stream_idx_start": 1561,
    "stream_idx_end": 1605,
    "hr_steady_state": 152,
    "hr_max_stream": 158,
    "hr_last_500m": 152,
    "hr_first_500m": 157,
    "pace_steady_s_per_km": 219.1,
    "cadence_avg": 178,
    "power_avg": 436,
    "_source": "45_15_lap_window"
   },
   "hr_end_500m": 157.5,
   "hr_second_half": 159.0
  },
  {
   "n": 16,
   "prescribed_distance_m": null,
   "gps_distance_m": 183,
   "time_s": 45,
   "pace": "4:06",
   "hr_avg": 157,
   "hr_max": 163,
   "cadence": 179,
   "power": 432,
   "per_km": null,
   "flag": "45_15_work_lap",
   "stream_stats": {
    "stream_idx_start": 1621,
    "stream_idx_end": 1665,
    "hr_steady_state": 157,
    "hr_max_stream": 163,
    "hr_last_500m": 157,
    "hr_first_500m": 163,
    "pace_steady_s_per_km": 218.2,
    "cadence_avg": 177,
    "power_avg": 433,
    "_source": "45_15_lap_window"
   },
   "hr_end_500m": 155.1,
   "hr_second_half": 157.5
  },
  {
   "n": 17,
   "prescribed_distance_m": null,
   "gps_distance_m": 192,
   "time_s": 45,
   "pace": "3:54",
   "hr_avg": 154,
   "hr_max": 159,
   "cadence": 178,
   "power": 453,
   "per_km": null,
   "flag": "45_15_work_lap",
   "stream_stats": {
    "stream_idx_start": 1681,
    "stream_idx_end": 1725,
    "hr_steady_state": 153,
    "hr_max_stream": 159,
    "hr_last_500m": 153,
    "hr_first_500m": 159,
    "pace_steady_s_per_km": 219.1,
    "cadence_avg": 176,
    "power_avg": 463,
    "_source": "45_15_lap_window"
   },
   "hr_end_500m": 156.1,
   "hr_second_half": 158.0
  },
  {
   "n": 18,
   "prescribed_distance_m": null,
   "gps_distance_m": 193,
   "time_s": 45,
   "pace": "3:53",
   "hr_avg": 156,
   "hr_max": 160,
   "cadence": 178,
   "power": 453,
   "per_km": null,
   "flag": "45_15_work_lap",
   "stream_stats": {
    "stream_idx_start": 1741,
    "stream_idx_end": 1785,
    "hr_steady_state": 155,
    "hr_max_stream": 160,
    "hr_last_500m": 155,
    "hr_first_500m": 160,
    "pace_steady_s_per_km": 218.6,
    "cadence_avg": 177,
    "power_avg": 453,
    "_source": "45_15_lap_window"
   },
   "hr_end_500m": 155.9,
   "hr_second_half": 158.6
  },
  {
   "n": 19,
   "prescribed_distance_m": null,
   "gps_distance_m": 185,
   "time_s": 45,
   "pace": "4:03",
   "hr_avg": 154,
   "hr_max": 160,
   "cadence": 180,
   "power": 438,
   "per_km": null,
   "flag": "45_15_work_lap",
   "stream_stats": {
    "stream_idx_start": 1801,
    "stream_idx_end": 1845,
    "hr_steady_state": 154,
    "hr_max_stream": 160,
    "hr_last_500m": 154,
    "hr_first_500m": 160,
    "pace_steady_s_per_km": 218.6,
    "cadence_avg": 179,
    "power_avg": 430,
    "_source": "45_15_lap_window"
   },
   "hr_end_500m": 158.2,
   "hr_second_half": 160.2
  },
  {
   "n": 20,
   "prescribed_distance_m": null,
   "gps_distance_m": 193,
   "time_s": 45,
   "pace": "3:53",
   "hr_avg": 81,
   "hr_max": 162,
   "cadence": 181,
   "power": 109,
   "per_km": null,
   "flag": "45_15_work_lap",
   "stream_stats": {
    "stream_idx_start": 1907,
    "stream_idx_end": 1952,
    "hr_steady_state": 120,
    "hr_max_stream": 162,
    "hr_last_500m": 120,
    "hr_first_500m": 162,
    "pace_steady_s_per_km": 220.4,
    "cadence_avg": 181,
    "power_avg": 441,
    "_source": "45_15_lap_window"
   },
   "hr_end_500m": 152.5,
   "hr_second_half": 155.2
  },
  {
   "n": 21,
   "prescribed_distance_m": null,
   "gps_distance_m": 196,
   "time_s": 45,
   "pace": "3:49",
   "hr_avg": 151,
   "hr_max": 157,
   "cadence": 178,
   "power": 458,
   "per_km": null,
   "flag": "45_15_work_lap",
   "stream_stats": {
    "stream_idx_start": 1968,
    "stream_idx_end": 2012,
    "hr_steady_state": 151,
    "hr_max_stream": 157,
    "hr_last_500m": 151,
    "hr_first_500m": 155,
    "pace_steady_s_per_km": 218.5,
    "cadence_avg": 176,
    "power_avg": 458,
    "_source": "45_15_lap_window"
   },
   "hr_end_500m": 150.0,
   "hr_second_half": 153.1
  },
  {
   "n": 22,
   "prescribed_distance_m": null,
   "gps_distance_m": 190,
   "time_s": 45,
   "pace": "3:56",
   "hr_avg": 151,
   "hr_max": 161,
   "cadence": 177,
   "power": 450,
   "per_km": null,
   "flag": "45_15_work_lap",
   "stream_stats": {
    "stream_idx_start": 2028,
    "stream_idx_end": 2072,
    "hr_steady_state": 149,
    "hr_max_stream": 161,
    "hr_last_500m": 149,
    "hr_first_500m": 161,
    "pace_steady_s_per_km": 218.9,
    "cadence_avg": 175,
    "power_avg": 461,
    "_source": "45_15_lap_window"
   },
   "hr_end_500m": 151.6,
   "hr_second_half": 154.8
  },
  {
   "n": 23,
   "prescribed_distance_m": null,
   "gps_distance_m": 191,
   "time_s": 45,
   "pace": "3:55",
   "hr_avg": 150,
   "hr_max": 157,
   "cadence": 178,
   "power": 448,
   "per_km": null,
   "flag": "45_15_work_lap",
   "stream_stats": {
    "stream_idx_start": 2088,
    "stream_idx_end": 2132,
    "hr_steady_state": 150,
    "hr_max_stream": 157,
    "hr_last_500m": 150,
    "hr_first_500m": 156,
    "pace_steady_s_per_km": 219.7,
    "cadence_avg": 177,
    "power_avg": 459,
    "_source": "45_15_lap_window"
   },
   "hr_end_500m": 154.1,
   "hr_second_half": 156.6
  },
  {
   "n": 24,
   "prescribed_distance_m": null,
   "gps_distance_m": 190,
   "time_s": 45,
   "pace": "3:56",
   "hr_avg": 154,
   "hr_max": 160,
   "cadence": 178,
   "power": 450,
   "per_km": null,
   "flag": "45_15_work_lap",
   "stream_stats": {
    "stream_idx_start": 2148,
    "stream_idx_end": 2192,
    "hr_steady_state": 153,
    "hr_max_stream": 160,
    "hr_last_500m": 153,
    "hr_first_500m": 160,
    "pace_steady_s_per_km": 219.9,
    "cadence_avg": 178,
    "power_avg": 460,
    "_source": "45_15_lap_window"
   },
   "hr_end_500m": 155.8,
   "hr_second_half": 157.8
  },
  {
   "n": 25,
   "prescribed_distance_m": null,
   "gps_distance_m": 185,
   "time_s": 45,
   "pace": "4:03",
   "hr_avg": 156,
   "hr_max": 163,
   "cadence": 178,
   "power": 435,
   "per_km": null,
   "flag": "45_15_work_lap",
   "stream_stats": {
    "stream_idx_start": 2208,
    "stream_idx_end": 2252,
    "hr_steady_state": 155,
    "hr_max_stream": 163,
    "hr_last_500m": 155,
    "hr_first_500m": 163,
    "pace_steady_s_per_km": 219.5,
    "cadence_avg": 178,
    "power_avg": 456,
    "_source": "45_15_lap_window"
   },
   "hr_end_500m": 154.9,
   "hr_second_half": 157.1
  },
  {
   "n": 26,
   "prescribed_distance_m": null,
   "gps_distance_m": 183,
   "time_s": 45,
   "pace": "4:05",
   "hr_avg": 154,
   "hr_max": 160,
   "cadence": 180,
   "power": 437,
   "per_km": null,
   "flag": "45_15_work_lap",
   "stream_stats": {
    "stream_idx_start": 2268,
    "stream_idx_end": 2312,
    "hr_steady_state": 154,
    "hr_max_stream": 160,
    "hr_last_500m": 154,
    "hr_first_500m": 160,
    "pace_steady_s_per_km": 220.4,
    "cadence_avg": 180,
    "power_avg": 437,
    "_source": "45_15_lap_window"
   },
   "hr_end_500m": 155.5,
   "hr_second_half": 157.8
  },
  {
   "n": 27,
   "prescribed_distance_m": null,
   "gps_distance_m": 191,
   "time_s": 45,
   "pace": "3:55",
   "hr_avg": 155,
   "hr_max": 159,
   "cadence": 175,
   "power": 449,
   "per_km": null,
   "flag": "45_15_work_lap",
   "stream_stats": {
    "stream_idx_start": 2328,
    "stream_idx_end": 2372,
    "hr_steady_state": 155,
    "hr_max_stream": 159,
    "hr_last_500m": 155,
    "hr_first_500m": 159,
    "pace_steady_s_per_km": 220.3,
    "cadence_avg": 175,
    "power_avg": 460,
    "_source": "45_15_lap_window"
   },
   "hr_end_500m": 157.3,
   "hr_second_half": 160.5
  },
  {
   "n": 28,
   "prescribed_distance_m": null,
   "gps_distance_m": 192,
   "time_s": 45,
   "pace": "3:54",
   "hr_avg": 156,
   "hr_max": 162,
   "cadence": 180,
   "power": 453,
   "per_km": null,
   "flag": "45_15_work_lap",
   "stream_stats": {
    "stream_idx_start": 2388,
    "stream_idx_end": 2432,
    "hr_steady_state": 156,
    "hr_max_stream": 162,
    "hr_last_500m": 156,
    "hr_first_500m": 161,
    "pace_steady_s_per_km": 220.1,
    "cadence_avg": 180,
    "power_avg": 463,
    "_source": "45_15_lap_window"
   },
   "hr_end_500m": 159.2,
   "hr_second_half": 161.1
  },
  {
   "n": 29,
   "prescribed_distance_m": null,
   "gps_distance_m": 197,
   "time_s": 45,
   "pace": "3:48",
   "hr_avg": 158,
   "hr_max": 164,
   "cadence": 181,
   "power": 462,
   "per_km": null,
   "flag": "45_15_work_lap",
   "stream_stats": {
    "stream_idx_start": 2448,
    "stream_idx_end": 2492,
    "hr_steady_state": 158,
    "hr_max_stream": 164,
    "hr_last_500m": 158,
    "hr_first_500m": 164,
    "pace_steady_s_per_km": 219.0,
    "cadence_avg": 179,
    "power_avg": 462,
    "_source": "45_15_lap_window"
   }
  }
 ],
 "block_id": 12,
 "block_phase": "build",
 "training_block": "Berlin halvmaraton 2026",
 "block_goal_date": "2026-03-29",
 "hr_unreliable": false,
 "description": "@ 3:45",
 "session_score": 8.8,
 "execution_score": 7.0,
 "context_score": 8.1,
 "score_tier": "Sterk",
 "score_tag": "45_15_terskel",
 "_scorer_version": "2.0.0-2026-09-09"
}