{
  "modelVersion": "1.1.0",
  "illustrative": true,
  "horizon": 10,
  "bids": [
    {
      "name": "Non-transferable",
      "capex": 100,
      "lifetime": 20,
      "annualOpex": 10,
      "annualEnergy": 0,
      "energyPrice": 0,
      "downtimeHours": 0,
      "lossPerHour": 0,
      "residual": 0,
      "tco": 167.1008139894144,
      "eac": 24.902948869707533,
      "capexPv": 100,
      "replacementPv": 0,
      "residualPv": 0,
      "energyPv": 0,
      "opexPv": 67.10081398941442,
      "downtimePv": 0,
      "fixedPv": 100
    },
    {
      "name": "Transferable",
      "capex": 130,
      "lifetime": 20,
      "annualOpex": 10,
      "annualEnergy": 0,
      "energyPrice": 0,
      "downtimeHours": 0,
      "lossPerHour": 0,
      "residual": 0,
      "tco": 197.1008139894144,
      "eac": 29.373833530619795,
      "capexPv": 130,
      "replacementPv": 0,
      "residualPv": 0,
      "energyPv": 0,
      "opexPv": 67.10081398941442,
      "downtimePv": 0,
      "fixedPv": 130
    }
  ],
  "schedule": [
    {
      "bid": "Non-transferable",
      "year": 1,
      "energy": 0,
      "opex": 10,
      "downtime": 0,
      "replacement": 0,
      "residual": 0,
      "cost": 10,
      "presentValue": 9.259259259259258
    },
    {
      "bid": "Non-transferable",
      "year": 2,
      "energy": 0,
      "opex": 10,
      "downtime": 0,
      "replacement": 0,
      "residual": 0,
      "cost": 10,
      "presentValue": 8.573388203017831
    },
    {
      "bid": "Non-transferable",
      "year": 3,
      "energy": 0,
      "opex": 10,
      "downtime": 0,
      "replacement": 0,
      "residual": 0,
      "cost": 10,
      "presentValue": 7.938322410201696
    },
    {
      "bid": "Non-transferable",
      "year": 4,
      "energy": 0,
      "opex": 10,
      "downtime": 0,
      "replacement": 0,
      "residual": 0,
      "cost": 10,
      "presentValue": 7.350298527964533
    },
    {
      "bid": "Non-transferable",
      "year": 5,
      "energy": 0,
      "opex": 10,
      "downtime": 0,
      "replacement": 0,
      "residual": 0,
      "cost": 10,
      "presentValue": 6.805831970337529
    },
    {
      "bid": "Non-transferable",
      "year": 6,
      "energy": 0,
      "opex": 10,
      "downtime": 0,
      "replacement": 0,
      "residual": 0,
      "cost": 10,
      "presentValue": 6.301696268831045
    },
    {
      "bid": "Non-transferable",
      "year": 7,
      "energy": 0,
      "opex": 10,
      "downtime": 0,
      "replacement": 0,
      "residual": 0,
      "cost": 10,
      "presentValue": 5.834903952621337
    },
    {
      "bid": "Non-transferable",
      "year": 8,
      "energy": 0,
      "opex": 10,
      "downtime": 0,
      "replacement": 0,
      "residual": 0,
      "cost": 10,
      "presentValue": 5.402688845019758
    },
    {
      "bid": "Non-transferable",
      "year": 9,
      "energy": 0,
      "opex": 10,
      "downtime": 0,
      "replacement": 0,
      "residual": 0,
      "cost": 10,
      "presentValue": 5.002489671314589
    },
    {
      "bid": "Non-transferable",
      "year": 10,
      "energy": 0,
      "opex": 10,
      "downtime": 0,
      "replacement": 0,
      "residual": 0,
      "cost": 10,
      "presentValue": 4.631934880846841
    },
    {
      "bid": "Transferable",
      "year": 1,
      "energy": 0,
      "opex": 10,
      "downtime": 0,
      "replacement": 0,
      "residual": 0,
      "cost": 10,
      "presentValue": 9.259259259259258
    },
    {
      "bid": "Transferable",
      "year": 2,
      "energy": 0,
      "opex": 10,
      "downtime": 0,
      "replacement": 0,
      "residual": 0,
      "cost": 10,
      "presentValue": 8.573388203017831
    },
    {
      "bid": "Transferable",
      "year": 3,
      "energy": 0,
      "opex": 10,
      "downtime": 0,
      "replacement": 0,
      "residual": 0,
      "cost": 10,
      "presentValue": 7.938322410201696
    },
    {
      "bid": "Transferable",
      "year": 4,
      "energy": 0,
      "opex": 10,
      "downtime": 0,
      "replacement": 0,
      "residual": 0,
      "cost": 10,
      "presentValue": 7.350298527964533
    },
    {
      "bid": "Transferable",
      "year": 5,
      "energy": 0,
      "opex": 10,
      "downtime": 0,
      "replacement": 0,
      "residual": 0,
      "cost": 10,
      "presentValue": 6.805831970337529
    },
    {
      "bid": "Transferable",
      "year": 6,
      "energy": 0,
      "opex": 10,
      "downtime": 0,
      "replacement": 0,
      "residual": 0,
      "cost": 10,
      "presentValue": 6.301696268831045
    },
    {
      "bid": "Transferable",
      "year": 7,
      "energy": 0,
      "opex": 10,
      "downtime": 0,
      "replacement": 0,
      "residual": 0,
      "cost": 10,
      "presentValue": 5.834903952621337
    },
    {
      "bid": "Transferable",
      "year": 8,
      "energy": 0,
      "opex": 10,
      "downtime": 0,
      "replacement": 0,
      "residual": 0,
      "cost": 10,
      "presentValue": 5.402688845019758
    },
    {
      "bid": "Transferable",
      "year": 9,
      "energy": 0,
      "opex": 10,
      "downtime": 0,
      "replacement": 0,
      "residual": 0,
      "cost": 10,
      "presentValue": 5.002489671314589
    },
    {
      "bid": "Transferable",
      "year": 10,
      "energy": 0,
      "opex": 10,
      "downtime": 0,
      "replacement": 0,
      "residual": 0,
      "cost": 10,
      "presentValue": 4.631934880846841
    }
  ],
  "hurdles": [
    {
      "name": "Transferable",
      "reference": "Non-transferable",
      "incrementalFixedPv": 30,
      "annualSavingsHurdle": 4.4708846609122626,
      "actualOperatingSavings": 0,
      "tcoGap": 30
    }
  ],
  "stress": [
    {
      "case": "Energy +50%",
      "name": "Non-transferable",
      "tco": 167.1008139894144,
      "eac": 24.902948869707533,
      "rank": 1
    },
    {
      "case": "Energy +50%",
      "name": "Transferable",
      "tco": 197.1008139894144,
      "eac": 29.373833530619795,
      "rank": 2
    },
    {
      "case": "Downtime +50%",
      "name": "Non-transferable",
      "tco": 167.1008139894144,
      "eac": 24.902948869707533,
      "rank": 1
    },
    {
      "case": "Downtime +50%",
      "name": "Transferable",
      "tco": 197.1008139894144,
      "eac": 29.373833530619795,
      "rank": 2
    },
    {
      "case": "Combined +50%",
      "name": "Non-transferable",
      "tco": 167.1008139894144,
      "eac": 24.902948869707533,
      "rank": 1
    },
    {
      "case": "Combined +50%",
      "name": "Transferable",
      "tco": 197.1008139894144,
      "eac": 29.373833530619795,
      "rank": 2
    }
  ],
  "annuityFactor": 6.710081398941445,
  "metrics": [
    {
      "key": "preferred",
      "label": "Lowest lifecycle cost",
      "value": "Non-transferable",
      "unit": "",
      "detail": ""
    },
    {
      "key": "tco",
      "label": "Lifecycle present cost",
      "value": 167.1008139894144,
      "unit": "USDk",
      "detail": ""
    },
    {
      "key": "eac",
      "label": "Equivalent annual cost",
      "value": 24.902948869707533,
      "unit": "USDk/year",
      "detail": ""
    },
    {
      "key": "gap",
      "label": "Gap to next bid",
      "value": 30,
      "unit": "USDk",
      "detail": ""
    }
  ],
  "tables": [
    {
      "title": "Lifecycle cost decomposition",
      "columns": [
        {
          "key": "name",
          "label": "Bid",
          "unit": ""
        },
        {
          "key": "tco",
          "label": "Total PV",
          "unit": "USDk"
        },
        {
          "key": "eac",
          "label": "Equivalent annual cost",
          "unit": "USDk/year"
        },
        {
          "key": "capexPv",
          "label": "Acquisition",
          "unit": "USDk PV"
        },
        {
          "key": "replacementPv",
          "label": "Replacements",
          "unit": "USDk PV"
        },
        {
          "key": "energyPv",
          "label": "Energy",
          "unit": "USDk PV"
        },
        {
          "key": "opexPv",
          "label": "Opex",
          "unit": "USDk PV"
        },
        {
          "key": "downtimePv",
          "label": "Downtime",
          "unit": "USDk PV"
        },
        {
          "key": "residualPv",
          "label": "Residual credit",
          "unit": "USDk PV"
        }
      ],
      "rows": [
        {
          "name": "Non-transferable",
          "capex": 100,
          "lifetime": 20,
          "annualOpex": 10,
          "annualEnergy": 0,
          "energyPrice": 0,
          "downtimeHours": 0,
          "lossPerHour": 0,
          "residual": 0,
          "tco": 167.1008139894144,
          "eac": 24.902948869707533,
          "capexPv": 100,
          "replacementPv": 0,
          "residualPv": 0,
          "energyPv": 0,
          "opexPv": 67.10081398941442,
          "downtimePv": 0,
          "fixedPv": 100
        },
        {
          "name": "Transferable",
          "capex": 130,
          "lifetime": 20,
          "annualOpex": 10,
          "annualEnergy": 0,
          "energyPrice": 0,
          "downtimeHours": 0,
          "lossPerHour": 0,
          "residual": 0,
          "tco": 197.1008139894144,
          "eac": 29.373833530619795,
          "capexPv": 130,
          "replacementPv": 0,
          "residualPv": 0,
          "energyPv": 0,
          "opexPv": 67.10081398941442,
          "downtimePv": 0,
          "fixedPv": 130
        }
      ]
    },
    {
      "title": "Negotiation savings hurdle",
      "columns": [
        {
          "key": "name",
          "label": "Alternative bid",
          "unit": ""
        },
        {
          "key": "reference",
          "label": "Cost leader",
          "unit": ""
        },
        {
          "key": "incrementalFixedPv",
          "label": "Incremental fixed cost",
          "unit": "USDk PV"
        },
        {
          "key": "annualSavingsHurdle",
          "label": "Required operating saving",
          "unit": "USDk/year"
        },
        {
          "key": "actualOperatingSavings",
          "label": "Modelled operating saving",
          "unit": "USDk/year"
        },
        {
          "key": "tcoGap",
          "label": "Lifecycle gap",
          "unit": "USDk"
        }
      ],
      "rows": [
        {
          "name": "Transferable",
          "reference": "Non-transferable",
          "incrementalFixedPv": 30,
          "annualSavingsHurdle": 4.4708846609122626,
          "actualOperatingSavings": 0,
          "tcoGap": 30
        }
      ]
    },
    {
      "title": "Energy and downtime stress ranking",
      "columns": [
        {
          "key": "case",
          "label": "Stress case",
          "unit": ""
        },
        {
          "key": "rank",
          "label": "Rank",
          "unit": ""
        },
        {
          "key": "name",
          "label": "Bid",
          "unit": ""
        },
        {
          "key": "tco",
          "label": "Total present cost",
          "unit": "USDk"
        },
        {
          "key": "eac",
          "label": "Equivalent annual cost",
          "unit": "USDk/year"
        }
      ],
      "rows": [
        {
          "case": "Energy +50%",
          "name": "Non-transferable",
          "tco": 167.1008139894144,
          "eac": 24.902948869707533,
          "rank": 1
        },
        {
          "case": "Energy +50%",
          "name": "Transferable",
          "tco": 197.1008139894144,
          "eac": 29.373833530619795,
          "rank": 2
        },
        {
          "case": "Downtime +50%",
          "name": "Non-transferable",
          "tco": 167.1008139894144,
          "eac": 24.902948869707533,
          "rank": 1
        },
        {
          "case": "Downtime +50%",
          "name": "Transferable",
          "tco": 197.1008139894144,
          "eac": 29.373833530619795,
          "rank": 2
        },
        {
          "case": "Combined +50%",
          "name": "Non-transferable",
          "tco": 167.1008139894144,
          "eac": 24.902948869707533,
          "rank": 1
        },
        {
          "case": "Combined +50%",
          "name": "Transferable",
          "tco": 197.1008139894144,
          "eac": 29.373833530619795,
          "rank": 2
        }
      ]
    },
    {
      "title": "Annual lifecycle cash-cost ledger",
      "columns": [
        {
          "key": "bid",
          "label": "Bid",
          "unit": ""
        },
        {
          "key": "year",
          "label": "Year",
          "unit": ""
        },
        {
          "key": "energy",
          "label": "Energy",
          "unit": "USDk"
        },
        {
          "key": "opex",
          "label": "Opex",
          "unit": "USDk"
        },
        {
          "key": "downtime",
          "label": "Downtime",
          "unit": "USDk"
        },
        {
          "key": "replacement",
          "label": "Replacement",
          "unit": "USDk"
        },
        {
          "key": "residual",
          "label": "Residual credit",
          "unit": "USDk"
        },
        {
          "key": "cost",
          "label": "Net annual cost",
          "unit": "USDk"
        },
        {
          "key": "presentValue",
          "label": "Present cost",
          "unit": "USDk"
        }
      ],
      "rows": [
        {
          "bid": "Non-transferable",
          "year": 1,
          "energy": 0,
          "opex": 10,
          "downtime": 0,
          "replacement": 0,
          "residual": 0,
          "cost": 10,
          "presentValue": 9.259259259259258
        },
        {
          "bid": "Non-transferable",
          "year": 2,
          "energy": 0,
          "opex": 10,
          "downtime": 0,
          "replacement": 0,
          "residual": 0,
          "cost": 10,
          "presentValue": 8.573388203017831
        },
        {
          "bid": "Non-transferable",
          "year": 3,
          "energy": 0,
          "opex": 10,
          "downtime": 0,
          "replacement": 0,
          "residual": 0,
          "cost": 10,
          "presentValue": 7.938322410201696
        },
        {
          "bid": "Non-transferable",
          "year": 4,
          "energy": 0,
          "opex": 10,
          "downtime": 0,
          "replacement": 0,
          "residual": 0,
          "cost": 10,
          "presentValue": 7.350298527964533
        },
        {
          "bid": "Non-transferable",
          "year": 5,
          "energy": 0,
          "opex": 10,
          "downtime": 0,
          "replacement": 0,
          "residual": 0,
          "cost": 10,
          "presentValue": 6.805831970337529
        },
        {
          "bid": "Non-transferable",
          "year": 6,
          "energy": 0,
          "opex": 10,
          "downtime": 0,
          "replacement": 0,
          "residual": 0,
          "cost": 10,
          "presentValue": 6.301696268831045
        },
        {
          "bid": "Non-transferable",
          "year": 7,
          "energy": 0,
          "opex": 10,
          "downtime": 0,
          "replacement": 0,
          "residual": 0,
          "cost": 10,
          "presentValue": 5.834903952621337
        },
        {
          "bid": "Non-transferable",
          "year": 8,
          "energy": 0,
          "opex": 10,
          "downtime": 0,
          "replacement": 0,
          "residual": 0,
          "cost": 10,
          "presentValue": 5.402688845019758
        },
        {
          "bid": "Non-transferable",
          "year": 9,
          "energy": 0,
          "opex": 10,
          "downtime": 0,
          "replacement": 0,
          "residual": 0,
          "cost": 10,
          "presentValue": 5.002489671314589
        },
        {
          "bid": "Non-transferable",
          "year": 10,
          "energy": 0,
          "opex": 10,
          "downtime": 0,
          "replacement": 0,
          "residual": 0,
          "cost": 10,
          "presentValue": 4.631934880846841
        },
        {
          "bid": "Transferable",
          "year": 1,
          "energy": 0,
          "opex": 10,
          "downtime": 0,
          "replacement": 0,
          "residual": 0,
          "cost": 10,
          "presentValue": 9.259259259259258
        },
        {
          "bid": "Transferable",
          "year": 2,
          "energy": 0,
          "opex": 10,
          "downtime": 0,
          "replacement": 0,
          "residual": 0,
          "cost": 10,
          "presentValue": 8.573388203017831
        },
        {
          "bid": "Transferable",
          "year": 3,
          "energy": 0,
          "opex": 10,
          "downtime": 0,
          "replacement": 0,
          "residual": 0,
          "cost": 10,
          "presentValue": 7.938322410201696
        },
        {
          "bid": "Transferable",
          "year": 4,
          "energy": 0,
          "opex": 10,
          "downtime": 0,
          "replacement": 0,
          "residual": 0,
          "cost": 10,
          "presentValue": 7.350298527964533
        },
        {
          "bid": "Transferable",
          "year": 5,
          "energy": 0,
          "opex": 10,
          "downtime": 0,
          "replacement": 0,
          "residual": 0,
          "cost": 10,
          "presentValue": 6.805831970337529
        },
        {
          "bid": "Transferable",
          "year": 6,
          "energy": 0,
          "opex": 10,
          "downtime": 0,
          "replacement": 0,
          "residual": 0,
          "cost": 10,
          "presentValue": 6.301696268831045
        },
        {
          "bid": "Transferable",
          "year": 7,
          "energy": 0,
          "opex": 10,
          "downtime": 0,
          "replacement": 0,
          "residual": 0,
          "cost": 10,
          "presentValue": 5.834903952621337
        },
        {
          "bid": "Transferable",
          "year": 8,
          "energy": 0,
          "opex": 10,
          "downtime": 0,
          "replacement": 0,
          "residual": 0,
          "cost": 10,
          "presentValue": 5.402688845019758
        },
        {
          "bid": "Transferable",
          "year": 9,
          "energy": 0,
          "opex": 10,
          "downtime": 0,
          "replacement": 0,
          "residual": 0,
          "cost": 10,
          "presentValue": 5.002489671314589
        },
        {
          "bid": "Transferable",
          "year": 10,
          "energy": 0,
          "opex": 10,
          "downtime": 0,
          "replacement": 0,
          "residual": 0,
          "cost": 10,
          "presentValue": 4.631934880846841
        }
      ]
    }
  ],
  "warnings": [],
  "summary": "Non-transferable has the lowest supplied 10-year lifecycle present cost, 167.1 USDk. Acquisition price alone excludes replacement, operating exposure and residual credit. The next bid is 30 USDk more expensive on this common horizon.",
  "methods": [
    "PV lifecycle cost includes acquisition at t = 0, replacements at each service-life multiple strictly before the horizon, annual opex, escalated energy and downtime, less supplied horizon residual.",
    "Energy price in year 1 equals the input price, then compounds annually.",
    "Equivalent annual cost divides lifecycle PV by the ordinary annuity present-value factor.",
    "Savings hurdle divides incremental fixed lifecycle PV (acquisition, replacements and residual) by the annuity factor. Positive values require that much annual operating saving.",
    "Bid totals are ordered by their computed lifecycle present value. A tie warning applies only to the same computed value, with a stable name ordering.",
    "Equal computed costs use literal name order independent of browser language for consistent display; no economic superiority is implied by that order."
  ],
  "limitations": [
    "Constant real opex/downtime, identical replacement cost, no tax or stochastic failure model.",
    "Supplied residual is credited at the common horizon regardless of asset age; user must support it.",
    "Energy units are USDk/MWh, so 0.12 represents USD120/MWh.",
    "Discounted costs use floating-point arithmetic. A computed tie can result from numerical precision and does not establish exact economic indifference or substantive procurement equivalence.",
    "Numerical input precision: use zero or absolute values of at least 0.000000001. Smaller nonzero inputs are rejected explicitly."
  ]
}
