{
  "methodVersion": "1.1.0",
  "rounding": "Compute from published rounded source inputs; round only presentation.",
  "calculations": [
    {
      "id": "active-connected-2022",
      "name": "Active/connected stock ratio",
      "inputObservationIds": [
        "active-2022",
        "connected-2022"
      ],
      "formula": "active/connected*100",
      "value": 53.125,
      "unit": "percent",
      "assumptions": "Same-year rounded aggregate stocks; not conversion probability."
    },
    {
      "id": "active-passed-2022",
      "name": "Active/passed stock ratio",
      "inputObservationIds": [
        "active-2022",
        "passed-2022"
      ],
      "formula": "active/passed*100",
      "value": 25.95419847,
      "unit": "percent",
      "assumptions": "2025 passed definition change; not unique-household adoption rate."
    },
    {
      "id": "connected-passed-2022",
      "name": "Connected/passed stock ratio",
      "inputObservationIds": [
        "connected-2022",
        "passed-2022"
      ],
      "formula": "connected/passed*100",
      "value": 48.85496183,
      "unit": "percent",
      "assumptions": "Definition caveat and possible overlap."
    },
    {
      "id": "active-connected-2023",
      "name": "Active/connected stock ratio",
      "inputObservationIds": [
        "active-2023",
        "connected-2023"
      ],
      "formula": "active/connected*100",
      "value": 58.90410959,
      "unit": "percent",
      "assumptions": "Same-year rounded aggregate stocks; not conversion probability."
    },
    {
      "id": "active-passed-2023",
      "name": "Active/passed stock ratio",
      "inputObservationIds": [
        "active-2023",
        "passed-2023"
      ],
      "formula": "active/passed*100",
      "value": 24.02234637,
      "unit": "percent",
      "assumptions": "2025 passed definition change; not unique-household adoption rate."
    },
    {
      "id": "connected-passed-2023",
      "name": "Connected/passed stock ratio",
      "inputObservationIds": [
        "connected-2023",
        "passed-2023"
      ],
      "formula": "connected/passed*100",
      "value": 40.78212291,
      "unit": "percent",
      "assumptions": "Definition caveat and possible overlap."
    },
    {
      "id": "active-connected-2024",
      "name": "Active/connected stock ratio",
      "inputObservationIds": [
        "active-2024",
        "connected-2024"
      ],
      "formula": "active/connected*100",
      "value": 61.62790698,
      "unit": "percent",
      "assumptions": "Same-year rounded aggregate stocks; not conversion probability."
    },
    {
      "id": "active-passed-2024",
      "name": "Active/passed stock ratio",
      "inputObservationIds": [
        "active-2024",
        "passed-2024"
      ],
      "formula": "active/passed*100",
      "value": 24.31192661,
      "unit": "percent",
      "assumptions": "2025 passed definition change; not unique-household adoption rate."
    },
    {
      "id": "connected-passed-2024",
      "name": "Connected/passed stock ratio",
      "inputObservationIds": [
        "connected-2024",
        "passed-2024"
      ],
      "formula": "connected/passed*100",
      "value": 39.44954128,
      "unit": "percent",
      "assumptions": "Definition caveat and possible overlap."
    },
    {
      "id": "active-connected-2025",
      "name": "Active/connected stock ratio",
      "inputObservationIds": [
        "active-2025",
        "connected-2025"
      ],
      "formula": "active/connected*100",
      "value": 61.53846154,
      "unit": "percent",
      "assumptions": "Same-year rounded aggregate stocks; not conversion probability."
    },
    {
      "id": "active-passed-2025",
      "name": "Active/passed stock ratio",
      "inputObservationIds": [
        "active-2025",
        "passed-2025"
      ],
      "formula": "active/passed*100",
      "value": 23.61623616,
      "unit": "percent",
      "assumptions": "2025 passed definition change; not unique-household adoption rate."
    },
    {
      "id": "connected-passed-2025",
      "name": "Connected/passed stock ratio",
      "inputObservationIds": [
        "connected-2025",
        "passed-2025"
      ],
      "formula": "connected/passed*100",
      "value": 38.37638376,
      "unit": "percent",
      "assumptions": "Definition caveat and possible overlap."
    },
    {
      "id": "passed-connected-gap-2025",
      "name": "Passed less connected",
      "inputObservationIds": [
        "passed-2025",
        "connected-2025"
      ],
      "formula": "passed-connected",
      "value": 16.7,
      "unit": "million",
      "assumptions": "Arithmetic stage difference, not a disjoint census of unconnected households."
    },
    {
      "id": "connected-active-gap-2025",
      "name": "Connected less active",
      "inputObservationIds": [
        "connected-2025",
        "active-2025"
      ],
      "formula": "connected-active",
      "value": 4.0,
      "unit": "million",
      "assumptions": "Aggregate inactive connected stock; no household refusal reason inferred."
    },
    {
      "id": "scenario-five-pp",
      "name": "Activations under 5 percentage-point connected-stock improvement",
      "inputObservationIds": [
        "connected-2025"
      ],
      "formula": "connected*0.05",
      "value": 0.52,
      "unit": "million",
      "assumptions": "Sensitivity scenario; fixed 2025 stock; no forecast and no causal cost assumptions."
    },
    {
      "id": "active-share-2025",
      "name": "Fibre share of active fixed broadband",
      "inputObservationIds": [
        "active-2025",
        "broadband-2025"
      ],
      "formula": "active/broadband*100",
      "value": 16.49484536,
      "unit": "percent",
      "assumptions": ""
    },
    {
      "id": "active-share-2022",
      "name": "Fibre share of active fixed broadband",
      "inputObservationIds": [
        "active-2022",
        "broadband-2022"
      ],
      "formula": "active/broadband*100",
      "value": 9.06666667,
      "unit": "percent",
      "assumptions": ""
    },
    {
      "id": "fibre-growth-22-25",
      "name": "Active fibre growth",
      "inputObservationIds": [
        "active-2025",
        "active-2022"
      ],
      "formula": "(active2025/active2022-1)*100",
      "value": 88.23529412,
      "unit": "percent",
      "assumptions": ""
    },
    {
      "id": "broadband-growth-22-25",
      "name": "Active fixed broadband growth",
      "inputObservationIds": [
        "broadband-2025",
        "broadband-2022"
      ],
      "formula": "(broadband2025/broadband2022-1)*100",
      "value": 3.46666667,
      "unit": "percent",
      "assumptions": ""
    },
    {
      "id": "cpi-growth-22-25",
      "name": "All-items price change",
      "inputObservationIds": [
        "cpi-2025",
        "cpi-2022"
      ],
      "formula": "(CPI2025/CPI2022-1)*100",
      "value": 10.61705989,
      "unit": "percent",
      "assumptions": ""
    },
    {
      "id": "communications-cpi-growth-22-25",
      "name": "Communication price change",
      "inputObservationIds": [
        "communication-cpi-2025",
        "communication-cpi-2022"
      ],
      "formula": "(communicationCPI2025/communicationCPI2022-1)*100",
      "value": -1.00603622,
      "unit": "percent",
      "assumptions": ""
    },
    {
      "id": "o2-first-year",
      "name": "First-year service plus connection",
      "inputObservationIds": [
        "o2-promo",
        "o2-connection"
      ],
      "formula": "12*24.99+9.99",
      "value": 309.87,
      "unit": "EUR",
      "assumptions": "Own compatible router; no hardware or address-specific work; no bundle rebate. Bounded subtotal."
    },
    {
      "id": "o2-second-year",
      "name": "Second-year recurring service",
      "inputObservationIds": [
        "o2-standard"
      ],
      "formula": "12*39.99",
      "value": 479.88,
      "unit": "EUR",
      "assumptions": "Same terms; no hardware or optional extras."
    },
    {
      "id": "o2-minimum-term",
      "name": "24 month service plus connection",
      "inputObservationIds": [
        "o2-promo",
        "o2-standard",
        "o2-connection",
        "o2-term"
      ],
      "formula": "12*24.99+12*39.99+9.99",
      "value": 789.75,
      "unit": "EUR",
      "assumptions": "Not universally payable all-in household cost."
    },
    {
      "id": "o2-term-monthly",
      "name": "24 month service subtotal averaged per month",
      "inputObservationIds": [
        "o2-promo",
        "o2-standard",
        "o2-connection",
        "o2-term"
      ],
      "formula": "(12*24.99+12*39.99+9.99)/24",
      "value": 32.90625,
      "unit": "EUR/month",
      "assumptions": "Average of bounded subtotal, not monthly invoice."
    },
    {
      "id": "o2-monthly-step",
      "name": "Recurring price step after promotion",
      "inputObservationIds": [
        "o2-standard",
        "o2-promo"
      ],
      "formula": "(39.99/24.99-1)*100",
      "value": 60.0240096,
      "unit": "percent",
      "assumptions": ""
    },
    {
      "id": "internet-age-gap",
      "name": "Recent internet use gap 25–44 vs 65–74",
      "inputObservationIds": [
        "internet-recent-adult-2025",
        "internet-recent-older-2025"
      ],
      "formula": "98-87",
      "value": 11,
      "unit": "percentage points",
      "assumptions": ""
    }
  ],
  "title": "Germany telecommunications audit: original calculations"
}
