{
 "meta": {
  "modelVersion": "1.1.0",
  "generatedAtUtc": "2026-09-17T05:22:48.289Z"
 },
 "statusVocabulary": {
  "OBSERVED": {
   "ro": "OBSERVAT — măsurătoare/date de piață istorică reală",
   "en": "OBSERVED — actual historical measurement/market datum"
  },
  "DOCUMENTED_DESIGN": {
   "ro": "PROIECT DOCUMENTAT — specificație istorică dintr-un studiu numit",
   "en": "DOCUMENTED DESIGN — historical specification from a named study"
  },
  "DERIVED": {
   "ro": "DERIVAT — calcul transparent din valori documentate",
   "en": "DERIVED — transparent calculation from documented values"
  },
  "SCENARIO_ASSUMPTION": {
   "ro": "IPOTEZĂ DE SCENARIU — parametru de model ales",
   "en": "SCENARIO ASSUMPTION — a chosen model parameter"
  },
  "MODEL_OUTPUT": {
   "ro": "REZULTAT DE MODEL",
   "en": "MODEL OUTPUT"
  },
  "NOT_QUANTIFIED": {
   "ro": "NECUANTIFICAT — efect relevant în afara modelului",
   "en": "NOT QUANTIFIED — relevant effect outside the model"
  }
 },
 "entries": [
  {
   "id": "dam_prices",
   "labelRo": "Prețurile PZU/spot (interval)",
   "labelEn": "DAM (PZU) clearing prices (interval)",
   "value": "92.852 intervale, 2019-01-01 → 2026-09-16",
   "unit": "EUR/MWh",
   "status": "OBSERVED",
   "source": "ENTSO-E Transparency Platform, zona de ofertare RO (prețul cuplat SDAC = PZU OPCOM), accesat prin interfața Fraunhofer ISE energy-charts; mediile anuale validate cu rapoartele anuale OPCOM",
   "sourceYear": "2019–2026",
   "roleRo": "Singura intrare de piață a backtest-ului: fiecare interval orar (până la 30.09.2025) sau sfert-orar (din 01.10.2025) este o observație.",
   "roleEn": "The backtest’s only market input: every hourly (until 30 Sep 2025) or quarter-hourly (from 1 Oct 2025) interval is one observation.",
   "sensitivityRo": "Rezultatul fundamental: fără aceste prețuri nu există marjă. Orice eroare de preț se propagă direct în venituri.",
   "sensitivityEn": "The foundational result: without these prices there is no margin. Any price error flows straight into revenues."
  },
  {
   "id": "rte_central",
   "labelRo": "Randament central (RTE)",
   "labelEn": "Central round-trip efficiency",
   "value": "78,4% / 78.4%",
   "unit": "%",
   "status": "DERIVED",
   "source": "Studiul CNSP 2019 / programul de funcționare ISPH: 1.649,46 GWh generare / 2.103,33 GWh pompare",
   "sourceYear": "2019",
   "roleRo": "Cazul central al modelului: pierderile de ciclu complet sunt alocate convențional pe ramura de încărcare (SoC += Ppompă·dt·RTE − Pgen·dt).",
   "roleEn": "The model’s central case: full-cycle losses are conventionally assigned to the charging leg (SoC += Ppump·dt·RTE − Pgen·dt).",
   "sensitivityRo": "Fiecare punct procentual de RTE mută pragul de rentabilitate (preț-vânzare ≥ preț-cumpărare / RTE) și marja anuală cu câteva procente.",
   "sensitivityEn": "Each RTE percentage point moves the break-even hurdle (sell price ≥ buy price / RTE) and annual margin by several percent."
  },
  {
   "id": "rte_alt",
   "labelRo": "RTE alternativ documentat",
   "labelEn": "Documented alternative RTE",
   "value": "76,2% / 76.2%",
   "unit": "%",
   "status": "DOCUMENTED_DESIGN",
   "source": "Studiul WWF România 2026 privind stocarea prin pompare: scenariu ~1.625 GWh / ~2.132 GWh",
   "sourceYear": "2026",
   "roleRo": "Al doilea caz selectabil în backtest; arată sensibilitatea la o ipoteză de randament mai recentă.",
   "roleEn": "Second selectable backtest case; shows sensitivity to a more recent efficiency assumption.",
   "sensitivityRo": "Marja 2019–2025 scade cu ~5% față de cazul central.",
   "sensitivityEn": "2019–2025 margin falls ~5% versus the central case."
  },
  {
   "id": "rte_stress",
   "labelRo": "RTE scenariu conservator",
   "labelEn": "Conservative-stress RTE",
   "value": "72%",
   "unit": "%",
   "status": "SCENARIO_ASSUMPTION",
   "source": "Alegere de modelare conservatoare; NU este randamentul declarat al proiectului Tarnița",
   "sourceYear": "—",
   "roleRo": "Al treilea caz selectabil: test de stres, nu valoare oficială.",
   "roleEn": "Third selectable case: a stress test, not an official project value.",
   "sensitivityRo": "Marja 2019–2025 scade cu ~13% față de cazul central.",
   "sensitivityEn": "2019–2025 margin falls ~13% versus the central case."
  },
  {
   "id": "emax",
   "labelRo": "Plafonul de energie stocat (model)",
   "labelEn": "Stored-energy ceiling (model)",
   "value": "13.100 MWh (output-equivalent)",
   "unit": "MWh",
   "status": "DERIVED",
   "source": "10.000.000 m³ volum util superior / 212 m³/s debit maxim turbinare (4×53) = 13,10 h × 1.000 MW (CNSP/ISPH)",
   "sourceYear": "2019–2021",
   "roleRo": "Starea SoC (MWh livrabili ulterior în rețea) este mărginită 0–13.100 MWh. Parametru de model simplificat, nu putere nominală electrică oficială.",
   "roleEn": "SoC state (MWh later deliverable to the grid) is bounded 0–13,100 MWh. A simplified model parameter, not an official electrical nameplate.",
   "sensitivityRo": "Un plafon mai mic reduce ciclurile adânci săptămânale și marja în anii volatili; unul mai mare o crește până la limita de putere.",
   "sensitivityEn": "A lower ceiling trims deep weekly cycles and margin in volatile years; a higher one adds margin up to the power limit."
  },
  {
   "id": "p_gen",
   "labelRo": "Putere de generare",
   "labelEn": "Generation power",
   "value": "1.000 MW (4×250 MW)",
   "unit": "MW",
   "status": "DOCUMENTED_DESIGN",
   "source": "Baza de proiectare istorică CNSP/ISPH/EPDC: patru grupuri reversibile de 250 MW",
   "sourceYear": "1999–2021",
   "roleRo": "Limita de descărcare pe orice interval; dispecerizare în trepte de 250 MW.",
   "roleEn": "Per-interval discharge cap; dispatch in 250 MW blocks.",
   "sensitivityRo": "Puterea limitează cât din spread poate fi capturat în orele de vârf scurte.",
   "sensitivityEn": "Power caps how much spread can be captured in short peak hours."
  },
  {
   "id": "p_pump",
   "labelRo": "Putere de pompare",
   "labelEn": "Pumping power",
   "value": "1.000 MW electric (ipoteză agregată)",
   "unit": "MW",
   "status": "SCENARIO_ASSUMPTION",
   "source": "Ancoră documentată: max. 258 MW/absorbiți/grup informativ istoric (4×258); curbele reale depind de cădere și echipamentul final",
   "sourceYear": "1999–2021",
   "roleRo": "Limita de încărcare pe interval; modelul abstractizează curbele pompă/turbină dependente de cădere.",
   "roleEn": "Per-interval charging cap; the model abstracts from head-dependent pump/turbine curves.",
   "sensitivityRo": "O putere de pompare mai mică lungește umplerea și poate rata ferestrele ieftine scurte.",
   "sensitivityEn": "Lower pumping power stretches filling and can miss short cheap windows."
  },
  {
   "id": "capex",
   "labelRo": "CAPEX (scenariu)",
   "labelEn": "CAPEX (scenario)",
   "value": "1.300 mil. € (implicit)",
   "unit": "mil. EUR",
   "status": "SCENARIO_ASSUMPTION",
   "source": "Intrare de scenariu a modelului public; NU este o ofertă EPC sau o estimare investițională curentă (studiul CNSP 2019 folosea ~1 mld. €)",
   "sourceYear": "—",
   "roleRo": "Anuitizat pe orizontul financiar la WACC-ul ales; împreună cu OPEX formează necesarul anual simplificat.",
   "roleEn": "Annuitised over the financial horizon at the chosen WACC; with OPEX it forms the simplified annual requirement.",
   "sensitivityRo": "Variabila dominantă a testului de recuperare a capitalului: ±100 mil. € CAPEX ≈ ±8,9 mil. €/an la 8%/30 ani.",
   "sensitivityEn": "The dominant capital-recovery variable: ±€100m CAPEX ≈ ±€8.9m/yr at 8%/30 years."
  },
  {
   "id": "opex",
   "labelRo": "OPEX (scenariu)",
   "labelEn": "OPEX (scenario)",
   "value": "25 mil. €/an (implicit)",
   "unit": "mil. EUR/an",
   "status": "SCENARIO_ASSUMPTION",
   "source": "Intrare de scenariu a modelului public; bază primară exactă slabă",
   "sourceYear": "—",
   "roleRo": "Adăugat anual la anuitatea de capital în testul simplificat.",
   "roleEn": "Added yearly to the capital annuity in the simplified test.",
   "sensitivityRo": "1:1 cu necesarul rezidual: fiecare milion în plus crește golul cu un milion.",
   "sensitivityEn": "One-for-one with the residual: each extra million widens the gap by a million."
  },
  {
   "id": "wacc",
   "labelRo": "Rata de actualizare / WACC (scenariu)",
   "labelEn": "Discount rate / WACC (scenario)",
   "value": "8,0% (implicit)",
   "unit": "%",
   "status": "SCENARIO_ASSUMPTION",
   "source": "Ipoteză de scenariu editabilă; structura de finanțare reală (datorie/capital, taxe) nu este modelată",
   "sourceYear": "—",
   "roleRo": "Anuitizează CAPEX-ul și actualizează fluxurile; aceeași rată pe ambele părți ale comparației BESS.",
   "roleEn": "Annuitises CAPEX and discounts cash flows; the same rate on both sides of the BESS comparison.",
   "sensitivityRo": "Ridicarea WACC crește puternic anuitatea: la 30 ani, 8%→10% ≈ +21% anuitate.",
   "sensitivityEn": "Raising WACC lifts the annuity hard: at 30 years, 8%→10% ≈ +21% annuity."
  },
  {
   "id": "horizon",
   "labelRo": "Orizont financiar (scenariu)",
   "labelEn": "Financial horizon (scenario)",
   "value": "30 ani (implicit; 50/60 opțional)",
   "unit": "ani",
   "status": "SCENARIO_ASSUMPTION",
   "source": "Alegere de scenariu: standard bancar comercial vs. durată de viață hidrotehnică",
   "sourceYear": "—",
   "roleRo": "Perioada de anuitizare a CAPEX-ului.",
   "roleEn": "The CAPEX annuitisation period.",
   "sensitivityRo": "Orizonturile lungi scad anuitatea anuală, dar presupun o viață tehnică atinsă.",
   "sensitivityEn": "Long horizons cut the annual annuity but assume the technical life is achieved."
  },
  {
   "id": "capture",
   "labelRo": "Ajustare ilustrativă de captură",
   "labelEn": "Illustrative capture haircut",
   "value": "100% (limită superioară cu previziune perfectă)",
   "unit": "%",
   "status": "SCENARIO_ASSUMPTION",
   "source": "Cursor de sensibilitate ales de utilizator (50–100%); NU este o estimare de acuratețe a prognozei",
   "sourceYear": "—",
   "roleRo": "Întreabă: cum se schimbă rezultatul dacă operatorul captează doar X% din valoarea optimă ex-post?",
   "roleEn": "Asks: how does the result change if the operator captures only X% of the ex-post optimal value?",
   "sensitivityRo": "Liniar în marjă: 80% captură = 80% din marja cu previziune perfectă.",
   "sensitivityEn": "Linear in margin: 80% capture = 80% of the perfect-foresight margin."
  },
  {
   "id": "spread_comp",
   "labelRo": "Sensibilitate la compresia spread-ului",
   "labelEn": "Spread-compression sensitivity",
   "value": "0% (implicit; până la 40%)",
   "unit": "%",
   "status": "SCENARIO_ASSUMPTION",
   "source": "Cursor de sensibilitate; NU este o estimare a impactului de echilibru al Tarniței asupra prețurilor",
   "sourceYear": "—",
   "roleRo": "Aplică o reducere transparentă a marjei: marjă × (1 − compresie). Reclearing-ul pieței nu este modelat.",
   "roleEn": "Applies a transparent margin haircut: margin × (1 − compression). Market re-clearing is not modelled.",
   "sensitivityRo": "Liniar în marjă; combinat cu captura: marjă × captură × (1 − compresie).",
   "sensitivityEn": "Linear in margin; combined with capture: margin × capture × (1 − compression)."
  },
  {
   "id": "hydro_volume",
   "labelRo": "Volumul util al lacului superior",
   "labelEn": "Upper-reservoir useful volume",
   "value": "10 mil. m³",
   "unit": "m³",
   "status": "DOCUMENTED_DESIGN",
   "source": "Materialul CNSP/ISPH: volum util superior 10 mil. m³; nivel minim de exploatare ~0,35 mil. m³",
   "sourceYear": "2019–2021",
   "roleRo": "Baza volumului pentru durata hidraulică derivată (13,1 h la debit maxim).",
   "roleEn": "Volume basis for the derived hydraulic duration (13.1 h at maximum flow).",
   "sensitivityRo": "Nu intră direct în modelul de piață decât prin plafonul Emax derivat.",
   "sensitivityEn": "Enters the market model only via the derived Emax ceiling."
  },
  {
   "id": "epdc_5h",
   "labelRo": "Criteriul EPDC de 5 ore",
   "labelEn": "EPDC five-hour criterion",
   "value": "1.000 MW × 5 h funcționare continuă",
   "unit": "h",
   "status": "DOCUMENTED_DESIGN",
   "source": "Studiul EPDC: concluzie de capabilitate operațională continuă, nu capacitate totală de stocare",
   "sourceYear": "1999",
   "roleRo": "Context de proiectare istorică; NU este plafonul de stocare al modelului de piață.",
   "roleEn": "Historical design context; NOT the market model’s storage ceiling.",
   "sensitivityRo": "Nu afectează numeric modelul; afectează interpretarea (oră de funcționare ≠ energie totală).",
   "sensitivityEn": "Does not enter the model numerically; affects interpretation (operating hours ≠ total energy)."
  },
  {
   "id": "dam_cutoff",
   "labelRo": "Acoperirea datelor de piață",
   "labelEn": "Market-data coverage",
   "value": "2019-01-01 → 2026-09-16",
   "unit": "zile livrare",
   "status": "OBSERVED",
   "source": "Setul de date interval construit pentru acest model (92.852 observații + 3 placeholder-uri marcate)",
   "sourceYear": "2026",
   "roleRo": "Definește orizontul backtest-ului; 2026 este YTD (259 zile) și nu intră în mediile anuale.",
   "roleEn": "Defines the backtest horizon; 2026 is YTD (259 days) and never enters full-year averages.",
   "sensitivityRo": "Extinderea acoperirii schimbă mediile multianuale; regulile de marcare YTD rămân.",
   "sensitivityEn": "Extending coverage moves multi-year averages; the YTD-marking rules stay."
  },
  {
   "id": "bess_rte",
   "labelRo": "RTE baterie (BESS)",
   "labelEn": "Battery (BESS) RTE",
   "value": "85% AC–AC",
   "unit": "%",
   "status": "DOCUMENTED_DESIGN",
   "source": "Cadrul NREL ATB 2024 pentru baterii utility-scale (verificare în proiect 15.09.2026)",
   "sourceYear": "2024",
   "roleRo": "Randamentul complet al bateriei în comparația LCOS.",
   "roleEn": "Full battery efficiency in the LCOS comparison.",
   "sensitivityRo": "Sub 85%, costul energiei de încărcare (preț/RTE) crește pe partea BESS.",
   "sensitivityEn": "Below 85%, the charging-energy cost (price/RTE) rises on the BESS side."
  },
  {
   "id": "bess_life",
   "labelRo": "Viață baterie (BESS)",
   "labelEn": "Battery (BESS) life",
   "value": "15 ani și ~4.000 cicluri",
   "unit": "ani/cicluri",
   "status": "SCENARIO_ASSUMPTION",
   "source": "15 ani: cadru NREL ATB 2024; 4.000 cicluri: ipoteză ilustrativă LFP (NREL modelează degradarea prin augmentare, inclusă în O&M)",
   "sourceYear": "2024",
   "roleRo": "Viața = min(15 ani, 4000/cicluri-an) în calculul LCOS al frontierei.",
   "roleEn": "Life = min(15 years, 4000/cycles-per-year) in the frontier LCOS.",
   "sensitivityRo": "La ciclare intensă, plafonul de cicluri scurtează viața și ridică LCOS-ul BESS.",
   "sensitivityEn": "Under intense cycling the cycle cap shortens life and lifts BESS LCOS."
  },
  {
   "id": "bess_fom",
   "labelRo": "O&M fix baterie (BESS)",
   "labelEn": "Battery (BESS) fixed O&M",
   "value": "2,5% din CAPEX/an",
   "unit": "%",
   "status": "DOCUMENTED_DESIGN",
   "source": "NREL ATB 2024: ~2,5% incluzând augmentarea pentru menținerea capacității",
   "sourceYear": "2024",
   "roleRo": "Cost anual de operare pe partea BESS a comparației.",
   "roleEn": "Annual operating cost on the BESS side of the comparison.",
   "sensitivityRo": "Fiecare punct procentual ≈ aceeași pondere în LCOS-ul BESS la ciclare dată.",
   "sensitivityEn": "Each percentage point ≈ the same weight in BESS LCOS at given cycling."
  },
  {
   "id": "bess_capex_path",
   "labelRo": "Traiectoria costurilor BESS",
   "labelEn": "BESS cost path",
   "value": "tabel 2026–2050 (vezi mai jos)",
   "unit": "EUR",
   "status": "SCENARIO_ASSUMPTION",
   "source": "Traiectorie ilustrativă de scădere a costurilor, în spiritul declinurilor NREL ATB moderate; NU este o transcriere a valorilor din foaia ATB; fără atribuire LCOS către NREL/BNEF",
   "sourceYear": "—",
   "roleRo": "Intrări de cost (energie + putere) pentru frontiera LCOS, interpolate liniar între anii-ancoră.",
   "roleEn": "Cost inputs (energy + power) for the LCOS frontier, linearly interpolated between anchor years.",
   "sensitivityRo": "Principalul determinant al poziției frontierei BESS-vs-hidro în fiecare an-orizont.",
   "sensitivityEn": "The main determinant of the BESS-vs-hydro frontier position in each horizon year."
  }
 ],
 "bessCostTable": [
  {
   "year": 2026,
   "packEurKwh": 140,
   "bosEurKw": 120,
   "interpolated": false
  },
  {
   "year": 2027,
   "packEurKwh": 128.8,
   "bosEurKw": 115,
   "interpolated": true
  },
  {
   "year": 2028,
   "packEurKwh": 117.5,
   "bosEurKw": 110,
   "interpolated": true
  },
  {
   "year": 2029,
   "packEurKwh": 106.3,
   "bosEurKw": 105,
   "interpolated": true
  },
  {
   "year": 2030,
   "packEurKwh": 95,
   "bosEurKw": 100,
   "interpolated": false
  },
  {
   "year": 2031,
   "packEurKwh": 89,
   "bosEurKw": 97,
   "interpolated": true
  },
  {
   "year": 2032,
   "packEurKwh": 83,
   "bosEurKw": 94,
   "interpolated": true
  },
  {
   "year": 2033,
   "packEurKwh": 77,
   "bosEurKw": 91,
   "interpolated": true
  },
  {
   "year": 2034,
   "packEurKwh": 71,
   "bosEurKw": 88,
   "interpolated": true
  },
  {
   "year": 2035,
   "packEurKwh": 65,
   "bosEurKw": 85,
   "interpolated": false
  },
  {
   "year": 2036,
   "packEurKwh": 62,
   "bosEurKw": 83,
   "interpolated": true
  },
  {
   "year": 2037,
   "packEurKwh": 59,
   "bosEurKw": 81,
   "interpolated": true
  },
  {
   "year": 2038,
   "packEurKwh": 56,
   "bosEurKw": 79,
   "interpolated": true
  },
  {
   "year": 2039,
   "packEurKwh": 53,
   "bosEurKw": 77,
   "interpolated": true
  },
  {
   "year": 2040,
   "packEurKwh": 50,
   "bosEurKw": 75,
   "interpolated": false
  },
  {
   "year": 2041,
   "packEurKwh": 48.8,
   "bosEurKw": 74,
   "interpolated": true
  },
  {
   "year": 2042,
   "packEurKwh": 47.6,
   "bosEurKw": 73,
   "interpolated": true
  },
  {
   "year": 2043,
   "packEurKwh": 46.4,
   "bosEurKw": 72,
   "interpolated": true
  },
  {
   "year": 2044,
   "packEurKwh": 45.2,
   "bosEurKw": 71,
   "interpolated": true
  },
  {
   "year": 2045,
   "packEurKwh": 44,
   "bosEurKw": 70,
   "interpolated": true
  },
  {
   "year": 2046,
   "packEurKwh": 42.8,
   "bosEurKw": 69,
   "interpolated": true
  },
  {
   "year": 2047,
   "packEurKwh": 41.6,
   "bosEurKw": 68,
   "interpolated": true
  },
  {
   "year": 2048,
   "packEurKwh": 40.4,
   "bosEurKw": 67,
   "interpolated": true
  },
  {
   "year": 2049,
   "packEurKwh": 39.2,
   "bosEurKw": 66,
   "interpolated": true
  },
  {
   "year": 2050,
   "packEurKwh": 38,
   "bosEurKw": 65,
   "interpolated": false
  }
 ],
 "financeDefaults": {
  "capexMlnEur": 1300,
  "waccPct": 8,
  "horizonYears": 30,
  "opexMlnEur": 25
 }
}