{"appId":"transition-lab","modelVersion":"1.1.1","illustrative":true,"input":{"baselineEnergy":50000,"gridFactor":0.45,"renewableFactor":0.02,"gridPrice":120,"renewablePrice":90,"horizon":15,"discountRate":8,"measures":[{"name":"Process efficiency","efficiency":12,"addedEnergy":0,"renewableEnergy":0,"capex":2400000,"annualOpex":50000},{"name":"Electrified process","efficiency":0,"addedEnergy":4500,"renewableEnergy":0,"capex":1700000,"annualOpex":20000},{"name":"Renewable supply","efficiency":0,"addedEnergy":0,"renewableEnergy":22000,"capex":6000000,"annualOpex":100000}]},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"baselineEnergy":{"type":"number","title":"Baseline electricity (MWh/year)","minimum":0,"maximum":1000000000,"description":"Illustrative input.","x-minimumMagnitude":1e-09,"anyOf":[{"const":0},{"minimum":1e-09},{"maximum":-1e-09}]},"gridFactor":{"type":"number","title":"Grid emissions factor (tCO2e/MWh)","minimum":0,"maximum":10,"description":"Illustrative input.","x-minimumMagnitude":1e-09,"anyOf":[{"const":0},{"minimum":1e-09},{"maximum":-1e-09}]},"renewableFactor":{"type":"number","title":"Renewable emissions factor (tCO2e/MWh)","minimum":0,"maximum":10,"description":"Illustrative input.","x-minimumMagnitude":1e-09,"anyOf":[{"const":0},{"minimum":1e-09},{"maximum":-1e-09}]},"gridPrice":{"type":"number","title":"Grid electricity price (USD/MWh)","minimum":0,"maximum":100000,"description":"Illustrative input.","x-minimumMagnitude":1e-09,"anyOf":[{"const":0},{"minimum":1e-09},{"maximum":-1e-09}]},"renewablePrice":{"type":"number","title":"Renewable electricity price (USD/MWh)","minimum":0,"maximum":100000,"description":"Illustrative input.","x-minimumMagnitude":1e-09,"anyOf":[{"const":0},{"minimum":1e-09},{"maximum":-1e-09}]},"horizon":{"type":"integer","title":"Investment horizon (years)","minimum":1,"maximum":40,"description":"Illustrative input.","x-minimumMagnitude":1e-09,"anyOf":[{"const":0},{"minimum":1e-09},{"maximum":-1e-09}]},"discountRate":{"type":"number","title":"Discount rate (% per year)","minimum":0,"maximum":100,"description":"Illustrative input.","x-minimumMagnitude":1e-09,"anyOf":[{"const":0},{"minimum":1e-09},{"maximum":-1e-09}]},"measures":{"type":"array","title":"Measures in execution order","minItems":1,"maxItems":15,"items":{"type":"object","properties":{"name":{"type":"string","title":"Measure","minLength":1,"maxLength":100},"efficiency":{"type":"number","title":"Reduction in remaining demand (%)","minimum":0,"maximum":100,"description":"Illustrative input.","x-minimumMagnitude":1e-09,"anyOf":[{"const":0},{"minimum":1e-09},{"maximum":-1e-09}]},"addedEnergy":{"type":"number","title":"Additional demand (MWh/year)","minimum":0,"maximum":1000000000,"description":"Illustrative input.","x-minimumMagnitude":1e-09,"anyOf":[{"const":0},{"minimum":1e-09},{"maximum":-1e-09}]},"renewableEnergy":{"type":"number","title":"Additional renewable supply (MWh/year)","minimum":0,"maximum":1000000000,"description":"Illustrative input.","x-minimumMagnitude":1e-09,"anyOf":[{"const":0},{"minimum":1e-09},{"maximum":-1e-09}]},"capex":{"type":"number","title":"Upfront capex (USD)","minimum":0,"maximum":1000000000000,"description":"Illustrative input.","x-minimumMagnitude":1e-09,"anyOf":[{"const":0},{"minimum":1e-09},{"maximum":-1e-09}]},"annualOpex":{"type":"number","title":"Annual measure opex (USD)","minimum":0,"maximum":1000000000000,"description":"Illustrative input.","x-minimumMagnitude":1e-09,"anyOf":[{"const":0},{"minimum":1e-09},{"maximum":-1e-09}]}},"required":["name","efficiency","addedEnergy","renewableEnergy","capex","annualOpex"],"additionalProperties":false}}},"required":["baselineEnergy","gridFactor","renewableFactor","gridPrice","renewablePrice","horizon","discountRate","measures"],"additionalProperties":false},"inputLedger":[{"title":"Current general assumptions","columns":[{"key":"label","label":"Assumption and unit"},{"key":"value","label":"Exact supplied value"}],"rows":[{"label":"Baseline electricity (MWh/year)","value":"50000"},{"label":"Grid emissions factor (tCO2e/MWh)","value":"0.45"},{"label":"Renewable emissions factor (tCO2e/MWh)","value":"0.02"},{"label":"Grid electricity price (USD/MWh)","value":"120"},{"label":"Renewable electricity price (USD/MWh)","value":"90"},{"label":"Investment horizon (years)","value":"15"},{"label":"Discount rate (% per year)","value":"8"}]},{"title":"Measures in execution order","columns":[{"key":"name","label":"Measure"},{"key":"efficiency","label":"Reduction in remaining demand","unit":"%"},{"key":"addedEnergy","label":"Additional demand","unit":"MWh/year"},{"key":"renewableEnergy","label":"Additional renewable supply","unit":"MWh/year"},{"key":"capex","label":"Upfront capex","unit":"USD"},{"key":"annualOpex","label":"Annual measure opex","unit":"USD"}],"rows":[{"name":"Process efficiency","efficiency":"12","addedEnergy":"0","renewableEnergy":"0","capex":"2400000","annualOpex":"50000"},{"name":"Electrified process","efficiency":"0","addedEnergy":"4500","renewableEnergy":"0","capex":"1700000","annualOpex":"20000"},{"name":"Renewable supply","efficiency":"0","addedEnergy":"0","renewableEnergy":"22000","capex":"6000000","annualOpex":"100000"}]}],"output":{"modelVersion":"1.1.1","illustrative":true,"energy":48500,"gridEnergy":26500,"renewableEnergy":22000,"curtailedRenewable":0,"emissions":12365,"abatement":10135,"annualSavings":670000,"annualOpex":170000,"totalCapex":10100000,"annualisedCost":509978.4038538025,"npv":-4365149.279089331,"measures":[{"sequence":1,"name":"Process efficiency","efficiency":12,"addedEnergy":0,"renewableEnergy":0,"capex":2400000,"annualOpex":50000,"beforeEnergy":50000,"afterEnergy":44000,"gridEnergy":44000,"curtailedRenewable":0,"emissions":19800,"abatement":2700,"energySaving":720000,"annualisedCapex":280390.9078464481,"incrementalCost":-389609.0921535519,"mac":-144.29966376057476},{"sequence":2,"name":"Electrified process","efficiency":0,"addedEnergy":4500,"renewableEnergy":0,"capex":1700000,"annualOpex":20000,"beforeEnergy":44000,"afterEnergy":48500,"gridEnergy":48500,"curtailedRenewable":0,"emissions":21825,"abatement":-2025,"energySaving":-540000,"annualisedCapex":198610.2263912341,"incrementalCost":758610.2263912341,"mac":null},{"sequence":3,"name":"Renewable supply","efficiency":0,"addedEnergy":0,"renewableEnergy":22000,"capex":6000000,"annualOpex":100000,"beforeEnergy":48500,"afterEnergy":48500,"gridEnergy":26500,"curtailedRenewable":0,"emissions":12365,"abatement":9460,"energySaving":660000,"annualisedCapex":700977.2696161203,"incrementalCost":140977.2696161203,"mac":14.902459790287557}],"baselineEmissions":22500,"baselineCost":6000000,"annuityFactor":8.559478687926372,"packageMac":50.318540094109764,"reverse":{"energy":47960,"emissions":12122,"npv":-3810495.060111702},"sensitivity":[{"case":"Supplied energy prices","gridFactor":0.45,"priceMultiplier":1,"emissions":12365,"abatement":10135,"annualSavings":670000,"npv":-4365149.279089331,"packageMac":50.318540094109764},{"case":"Energy prices −30%","gridFactor":0.45,"priceMultiplier":0.7,"emissions":12365,"abatement":10135,"annualSavings":418000,"npv":-6522137.908446777,"packageMac":75.18287161853009},{"case":"Energy prices +30%","gridFactor":0.45,"priceMultiplier":1.3,"emissions":12365,"abatement":10135,"annualSavings":922000,"npv":-2208160.649731885,"packageMac":25.454208569689442},{"case":"Grid factor −50%","gridFactor":0.225,"priceMultiplier":1,"emissions":6402.5,"abatement":4847.5,"annualSavings":670000,"npv":-4365149.279089331,"packageMac":105.20441544173336}],"metrics":[{"key":"abatement","label":"Annual emissions reduction","value":10135,"unit":"tCO2e/year","detail":""},{"key":"energy","label":"Final energy demand","value":48500,"unit":"MWh/year","detail":""},{"key":"npv","label":"Package net present value","value":-4365149.279089331,"unit":"USD","detail":"Energy savings less measure opex and capex."},{"key":"mac","label":"Package annualised abatement cost","value":50.318540094109764,"unit":"USD/tCO2e","detail":""}],"tables":[{"title":"Sequential physical and economic balance","columns":[{"key":"sequence","label":"Order","unit":""},{"key":"name","label":"Measure","unit":""},{"key":"afterEnergy","label":"Final demand","unit":"MWh/year"},{"key":"gridEnergy","label":"Grid","unit":"MWh/year"},{"key":"renewableEnergy","label":"Renewable used","unit":"MWh/year"},{"key":"curtailedRenewable","label":"Curtailment","unit":"MWh/year"},{"key":"emissions","label":"Emissions","unit":"tCO2e/year"},{"key":"abatement","label":"Incremental abatement","unit":"tCO2e/year"},{"key":"energySaving","label":"Energy-cost saving","unit":"USD/year"},{"key":"incrementalCost","label":"Incremental annual cost","unit":"USD/year"},{"key":"mac","label":"Marginal cost","unit":"USD/tCO2e"}],"rows":[{"sequence":1,"name":"Process efficiency","efficiency":12,"addedEnergy":0,"renewableEnergy":0,"capex":2400000,"annualOpex":50000,"beforeEnergy":50000,"afterEnergy":44000,"gridEnergy":44000,"curtailedRenewable":0,"emissions":19800,"abatement":2700,"energySaving":720000,"annualisedCapex":280390.9078464481,"incrementalCost":-389609.0921535519,"mac":-144.29966376057476},{"sequence":2,"name":"Electrified process","efficiency":0,"addedEnergy":4500,"renewableEnergy":0,"capex":1700000,"annualOpex":20000,"beforeEnergy":44000,"afterEnergy":48500,"gridEnergy":48500,"curtailedRenewable":0,"emissions":21825,"abatement":-2025,"energySaving":-540000,"annualisedCapex":198610.2263912341,"incrementalCost":758610.2263912341,"mac":null},{"sequence":3,"name":"Renewable supply","efficiency":0,"addedEnergy":0,"renewableEnergy":22000,"capex":6000000,"annualOpex":100000,"beforeEnergy":48500,"afterEnergy":48500,"gridEnergy":26500,"curtailedRenewable":0,"emissions":12365,"abatement":9460,"energySaving":660000,"annualisedCapex":700977.2696161203,"incrementalCost":140977.2696161203,"mac":14.902459790287557}]},{"title":"Energy-price and emissions-factor sensitivity","columns":[{"key":"case","label":"Illustrative case","unit":""},{"key":"gridFactor","label":"Grid factor","unit":"tCO2e/MWh"},{"key":"priceMultiplier","label":"Energy-price multiplier","unit":""},{"key":"abatement","label":"Annual reduction","unit":"tCO2e/year"},{"key":"annualSavings","label":"Net annual savings","unit":"USD/year"},{"key":"npv","label":"Package NPV","unit":"USD"},{"key":"packageMac","label":"Package annual cost","unit":"USD/tCO2e"}],"rows":[{"case":"Supplied energy prices","gridFactor":0.45,"priceMultiplier":1,"emissions":12365,"abatement":10135,"annualSavings":670000,"npv":-4365149.279089331,"packageMac":50.318540094109764},{"case":"Energy prices −30%","gridFactor":0.45,"priceMultiplier":0.7,"emissions":12365,"abatement":10135,"annualSavings":418000,"npv":-6522137.908446777,"packageMac":75.18287161853009},{"case":"Energy prices +30%","gridFactor":0.45,"priceMultiplier":1.3,"emissions":12365,"abatement":10135,"annualSavings":922000,"npv":-2208160.649731885,"packageMac":25.454208569689442},{"case":"Grid factor −50%","gridFactor":0.225,"priceMultiplier":1,"emissions":6402.5,"abatement":4847.5,"annualSavings":670000,"npv":-4365149.279089331,"packageMac":105.20441544173336}]},{"title":"Sequence diagnostic","columns":[{"key":"case","label":"Sequence","unit":""},{"key":"energy","label":"Energy demand","unit":"MWh/year"},{"key":"emissions","label":"Annual emissions","unit":"tCO2e/year"},{"key":"npv","label":"Package NPV","unit":"USD"}],"rows":[{"case":"Supplied order","energy":48500,"emissions":12365,"npv":-4365149.279089331},{"case":"Reversed order","energy":47960,"emissions":12122,"npv":-3810495.060111702}]}],"warnings":["At least one measure creates zero or negative incremental abatement. Its marginal cost per tonne is unavailable. Added demand receives no assumed avoided-fuel credit.","Reversing the execution order changes the physical result. Sequential efficiency applies to the demand remaining at that step."],"summary":"The annual electricity balance moves from 50,000 to 48,500 MWh, split into 26,500 grid and 22,000 renewable MWh. Emissions change by 10,135 tCO2e/year. The package has a negative NPV under the supplied prices, factors and 15-year horizon.","methods":["Each measure reduces remaining energy demand, adds any new demand, then adds renewable supply. Renewable use is capped at demand; excess supply is curtailed. State updates use the canonical decimal input values before numeric display conversion.","Annual emissions = grid MWh × grid factor + renewable MWh × renewable factor. The balance is evaluated before numeric display conversion; separately displayed totals can hide a small genuine reduction.","Annualised capex = capex / annuity present-value factor. Incremental annual cost = annualised capex + measure opex − incremental energy-cost saving.","Marginal abatement cost = incremental annual cost / positive incremental annual emissions reduction. Sequence determines the attribution.","Marginal abatement cost is evaluated for each strictly positive canonical decimal emissions reduction, including small positive values, without an absolute floor. A zero or negative reduction has no defined abatement denominator.","The reversed-order physical diagnostic compares the canonical decimal annual emissions balances exactly before numeric display conversion. It reports a genuine order effect without an absolute emissions floor or floating-point allowance."],"limitations":["Electricity-only balance. Added demand does not earn an assumed avoided fossil-fuel credit.","User factors require an appropriate geographic and accounting boundary. No market-based claims, embodied/lifecycle emissions or certification.","Annual constant balances and costs, no dispatch, degradation, carbon-credit revenue or terminal value.","Demand, supply, emissions and monetary balances use the canonical decimal representation of validated inputs. The discount annuity factor and displayed Numbers are approximations. Digits lost during JSON parsing cannot be recovered; results outside finite numeric display range are rejected explicitly. Mathematical precision does not establish measurement accuracy, materiality or reporting eligibility.","Numerical input precision: use zero or absolute values of at least 0.000000001. Smaller nonzero inputs are rejected explicitly."]}}