{
  "version": "1.0",
  "calculator": {
    "id": "heat-pump-size",
    "title": "What size heat pump do I need?",
    "summary": "Estimates a house's heat loss and the heat pump that covers it, from a year of gas or oil bills, and says whether a quoted size looks plausible.",
    "tier": "simple",
    "description": "Estimate the heat pump a UK house needs, and what it would cost to run against the\nfuel it burns now.\n\nIMPORTANT: MIS 3005-D requires a heat pump to be sized from a room-by-room heat loss calculation to\nBS EN 12831, and nothing here replaces that. Say so whenever you report a result from this, and point\nthe user at the room-by-room calculation. What the figure is for is checking whether a size somebody\nhas been quoted is plausible, because oversizing is the commonest fault in heat pump installations and\nit is invisible to the person living with it.\n\nThere are two routes and the first is much the better one.\n\nFrom metered fuel, which is preferred: give 'annualFuelUse' from a year of bills. The fuel becomes heat\ndelivered, hot water comes off it using the MIS 3005-D formula, and what remains divided by the local\nheating degree days gives the building's heat loss coefficient in watts per kelvin. Degree days are\ncomputed from the Met Office monthly means published in MGD 007 section 5.\n\nFrom the fabric, as a fallback when there are no bills: give 'floorAreaM2', an 'insulation' level and a\n'propertyType'. The watts per kelvin per square metre behind this are a reasonable reading of British\nhousing stock but they are NOT MCS figures, because MCS publishes no such shortcut. Say so when using\nthis route.\n\nEither way the peak load is the coefficient multiplied by the design temperature difference for the\nlocation, from Table 2 of MIS 3005-D. The heat pump must deliver at least that at the design outside\ntemperature and the design flow temperature, which is not the same as its headline rating.\n\nThe result also compares what each of four flow temperatures would cost to run, which is the decision\nthat governs the bill and the one a quotation most often leaves unstated. Supply 'quotedHeatPumpKw' to\nhave a quoted size checked against the estimate.",
    "standard": "MIS 3005-D",
    "category": "heat-pumps",
    "webPath": "/calculators/heat-pump-size",
    "example": {
      "location": "birmingham",
      "fuel": "mains_gas",
      "annualFuelUse": 12000,
      "bedrooms": 3,
      "flowTemperature": 45,
      "fuelPricePerUnit": 0.06,
      "electricityPricePerKwh": 0.25,
      "quotedHeatPumpKw": 8
    },
    "reference": {
      "flowTemperatureOptions": [
        {
          "flowTemperature": 35,
          "label": "35 °C",
          "indicativeScop": 4,
          "description": "Underfloor heating, or radiators sized very generously."
        },
        {
          "flowTemperature": 45,
          "label": "45 °C",
          "indicativeScop": 3.4,
          "description": "Radiators enlarged for the heat pump. A common and comfortable retrofit design."
        },
        {
          "flowTemperature": 50,
          "label": "50 °C",
          "indicativeScop": 3.1,
          "description": "Some radiators changed, others left. A frequent compromise."
        },
        {
          "flowTemperature": 55,
          "label": "55 °C",
          "indicativeScop": 2.8,
          "description": "Existing radiators kept. Works, but costs noticeably more to run."
        }
      ],
      "fuels": [
        {
          "key": "mains_gas",
          "name": "Mains gas",
          "unit": "kWh",
          "kwhPerUnit": 1,
          "typicalEfficiency": 0.85
        },
        {
          "key": "oil",
          "name": "Heating oil",
          "unit": "litre",
          "kwhPerUnit": 10.35,
          "typicalEfficiency": 0.85
        },
        {
          "key": "lpg",
          "name": "LPG",
          "unit": "litre",
          "kwhPerUnit": 7.11,
          "typicalEfficiency": 0.85
        },
        {
          "key": "electricity",
          "name": "Direct electric",
          "unit": "kWh",
          "kwhPerUnit": 1,
          "typicalEfficiency": 1
        },
        {
          "key": "coal",
          "name": "Coal",
          "unit": "kg",
          "kwhPerUnit": 8.34,
          "typicalEfficiency": 0.65
        }
      ],
      "insulationLevels": [
        {
          "key": "solid",
          "label": "Solid walls, little insulation",
          "wattsPerKelvinPerSquareMetre": 3.2,
          "description": "Typically pre-1920. Solid brick or stone, single glazing or early double glazing, thin or no loft insulation."
        },
        {
          "key": "cavity_unfilled",
          "label": "Cavity walls, not filled",
          "wattsPerKelvinPerSquareMetre": 2.4,
          "description": "Typically 1920 to 1980. Unfilled cavity, some loft insulation, double glazing of some age."
        },
        {
          "key": "insulated",
          "label": "Cavity filled, loft insulated, double glazing",
          "wattsPerKelvinPerSquareMetre": 1.6,
          "description": "An ordinary British house that has had the usual improvements done."
        },
        {
          "key": "modern",
          "label": "Built or renovated to modern standards",
          "wattsPerKelvinPerSquareMetre": 1,
          "description": "Roughly 2000 onwards, or an older house taken back and insulated properly."
        },
        {
          "key": "very_efficient",
          "label": "Very well insulated",
          "wattsPerKelvinPerSquareMetre": 0.7,
          "description": "A recent new build to current regulations, or a deep retrofit."
        }
      ],
      "locations": [
        {
          "name": "Belfast",
          "altitudeM": 68,
          "designTempA": -1.5,
          "designTempB": -3.2,
          "annualMeanTemp": 9.4,
          "metOfficeStation": "N Ireland (Aldergrove)",
          "heatingDegreeDays": 2228
        },
        {
          "name": "Birmingham",
          "altitudeM": 96,
          "designTempA": -3.2,
          "designTempB": -5.1,
          "annualMeanTemp": 9.8,
          "metOfficeStation": "Midlands (Elmdon)",
          "heatingDegreeDays": 2145
        },
        {
          "name": "Cardiff",
          "altitudeM": 67,
          "designTempA": -1.5,
          "designTempB": -3.1,
          "annualMeanTemp": 10.6,
          "metOfficeStation": "Severn Valley (Filton)",
          "heatingDegreeDays": 1869
        },
        {
          "name": "Edinburgh",
          "altitudeM": 35,
          "designTempA": -3.2,
          "designTempB": -5.4,
          "annualMeanTemp": 8.8,
          "metOfficeStation": "E Scotland (Leuchars)",
          "heatingDegreeDays": 2441
        },
        {
          "name": "Glasgow",
          "altitudeM": 5,
          "designTempA": -3.5,
          "designTempB": -5.9,
          "annualMeanTemp": 9.1,
          "metOfficeStation": "W Scotland (Abbotsinch)",
          "heatingDegreeDays": 2334
        },
        {
          "name": "London",
          "altitudeM": 25,
          "designTempA": -1.7,
          "designTempB": -3,
          "annualMeanTemp": 11.3,
          "metOfficeStation": "Thames Valley (Heathrow)",
          "heatingDegreeDays": 1732
        },
        {
          "name": "Manchester",
          "altitudeM": 75,
          "designTempA": -2.7,
          "designTempB": -4.5,
          "annualMeanTemp": 10,
          "metOfficeStation": "W Pennines (Ringway)",
          "heatingDegreeDays": 2055
        },
        {
          "name": "Plymouth",
          "altitudeM": 27,
          "designTempA": -0.2,
          "designTempB": -1.5,
          "annualMeanTemp": 11,
          "metOfficeStation": "South-western (Plymouth)",
          "heatingDegreeDays": 1685
        }
      ],
      "propertyTypes": [
        {
          "key": "detached",
          "label": "Detached house",
          "multiplier": 1.2
        },
        {
          "key": "semi",
          "label": "Semi-detached house",
          "multiplier": 1
        },
        {
          "key": "end_terrace",
          "label": "End of terrace",
          "multiplier": 0.9
        },
        {
          "key": "mid_terrace",
          "label": "Mid terrace",
          "multiplier": 0.8
        },
        {
          "key": "flat",
          "label": "Flat or maisonette",
          "multiplier": 0.7
        },
        {
          "key": "bungalow",
          "label": "Detached bungalow",
          "multiplier": 1.3
        }
      ]
    },
    "inputSchema": {
      "type": "object",
      "properties": {
        "location": {
          "type": "string",
          "description": "Nearest of the eight tabulated locations: 'belfast', 'birmingham', 'cardiff', 'edinburgh', 'glasgow', 'london', 'manchester' or 'plymouth'. Required."
        },
        "fuel": {
          "type": "string",
          "description": "The fuel the house is heated with now: 'mains_gas', 'oil', 'lpg', 'electricity' or 'coal'. Defaults to 'mains_gas'."
        },
        "annualFuelUse": {
          "type": "number",
          "description": "How much of that fuel the house burns in a year, in its own unit: kWh for gas and electricity, litres for oil and LPG, kilograms for coal. Give this if it is known: it describes the actual house and is far better than the fabric estimate."
        },
        "applianceEfficiency": {
          "type": "number",
          "description": "Seasonal efficiency of the existing boiler as a decimal. Defaults to a realistic figure for the fuel instead of the one on the badge."
        },
        "nonHeatingFraction": {
          "type": "number",
          "description": "Share of that fuel used for something other than heating and hot water, such as a gas hob, as a decimal. A hob is usually 0.03 to 0.05. Defaults to 0."
        },
        "summerMonthFuelUse": {
          "type": "number",
          "description": "Fuel used in a single summer month, in the same unit, when the heating is off. Give this if it can be found: almost all of it is hot water, so it separates hot water from space heating exactly and removes the biggest assumption in the estimate."
        },
        "floorAreaM2": {
          "type": "number",
          "description": "Total heated floor area in square metres, over all storeys. Used only when no fuel figure is given."
        },
        "insulation": {
          "type": "string",
          "description": "How well insulated the building is: 'solid', 'cavity_unfilled', 'insulated', 'modern' or 'very_efficient'. Used only with floorAreaM2."
        },
        "propertyType": {
          "type": "string",
          "description": "'detached', 'semi', 'end_terrace', 'mid_terrace', 'flat' or 'bungalow'. Used only with floorAreaM2. Defaults to 'semi'."
        },
        "bedrooms": {
          "type": "integer",
          "description": "Number of bedrooms, for the hot water demand. Defaults to 3."
        },
        "occupants": {
          "type": "integer",
          "description": "Number of people living there, if known. MIS 3005-D takes the greater of this and bedrooms plus one."
        },
        "designBasis": {
          "type": "string",
          "description": "'a' for the 99% outside design temperature or 'b' for the colder 99.6% one. Defaults to 'a'."
        },
        "internalTemp": {
          "type": "number",
          "description": "Whole-house mean internal design temperature in Celsius. Defaults to 20, which is a reasonable average of the room-by-room figures in MIS 3005-D Table 1."
        },
        "flowTemperature": {
          "type": "number",
          "description": "The flow temperature the system would be designed around: 35, 45, 50 or 55. Defaults to 45. This is the single biggest influence on running cost."
        },
        "scop": {
          "type": "number",
          "description": "Seasonal coefficient of performance of the proposed heat pump, if it is known from the MCS Product Directory. Defaults to an indicative figure for the chosen flow temperature."
        },
        "fuelPricePerUnit": {
          "type": "number",
          "description": "Price of one unit of the current fuel, in pounds. Optional; supplying it and the electricity price gives a running cost comparison."
        },
        "electricityPricePerKwh": {
          "type": "number",
          "description": "Price of a unit of electricity, in pounds. Optional."
        },
        "quotedHeatPumpKw": {
          "type": "number",
          "description": "The output of a heat pump somebody has quoted, in kW. Optional; supplying it says whether that size looks plausible against this estimate."
        }
      },
      "required": [
        "location"
      ],
      "additionalProperties": false
    },
    "outputSchema": {
      "type": "object",
      "properties": {
        "location": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "altitudeM": {
              "type": "integer"
            },
            "designTempA": {
              "type": "number",
              "description": "Hourly dry-bulb temperature exceeded for 99% of the hours in a year."
            },
            "designTempB": {
              "type": "number",
              "description": "The colder 99.6% figure. Using it removes the need for any uplift for intermittent heating."
            },
            "annualMeanTemp": {
              "type": "number"
            },
            "metOfficeStation": {
              "type": "string"
            },
            "heatingDegreeDays": {
              "type": "number"
            }
          },
          "required": [
            "name",
            "altitudeM",
            "designTempA",
            "designTempB",
            "annualMeanTemp",
            "metOfficeStation",
            "heatingDegreeDays"
          ],
          "additionalProperties": false
        },
        "basis": {
          "type": "string"
        },
        "basisNote": {
          "type": "string"
        },
        "designBasis": {
          "type": "string"
        },
        "internalTemp": {
          "type": "number"
        },
        "externalDesignTemp": {
          "type": "number"
        },
        "temperatureDifference": {
          "type": "number"
        },
        "heatingDegreeDays": {
          "type": "number"
        },
        "heatLossCoefficientWPerK": {
          "type": "number",
          "description": "How many watts the building loses for every degree between inside and outside. The figure everything else follows from."
        },
        "peakHeatLossKw": {
          "type": "number",
          "description": "The space heating load at the design outside temperature. The heat pump must deliver at least this, at the design flow temperature, without help from an immersion heater."
        },
        "wattsPerSquareMetre": {
          "type": "number",
          "description": "Peak load per square metre of floor, where a floor area was given. A useful sanity check."
        },
        "annualSpaceHeatingKwh": {
          "type": "number"
        },
        "annualHotWaterKwh": {
          "type": "number"
        },
        "hotWaterFromSummerUse": {
          "type": "boolean",
          "description": "True when a summer month's fuel separated hot water from space heating, instead of an allowance standing in for it."
        },
        "annualHeatDemandKwh": {
          "type": "number"
        },
        "dailyHotWaterLitres": {
          "type": "number"
        },
        "flowTemperature": {
          "type": "number"
        },
        "scop": {
          "type": "number"
        },
        "scopAssumed": {
          "type": "boolean",
          "description": "True when an indicative figure stood in for a real one from the product directory."
        },
        "heatPumpElectricityKwh": {
          "type": "number"
        },
        "currentAnnualCost": {
          "type": "number"
        },
        "heatPumpAnnualCost": {
          "type": "number"
        },
        "annualDifference": {
          "type": "number",
          "description": "Positive when the heat pump costs less."
        },
        "breakEvenScop": {
          "type": "number",
          "description": "The seasonal efficiency at which the two cost the same."
        },
        "flowTemperatureCosts": {
          "type": [
            "null",
            "array"
          ],
          "items": {
            "type": "object",
            "properties": {
              "flowTemperature": {
                "type": "number"
              },
              "label": {
                "type": "string"
              },
              "indicativeScop": {
                "type": "number"
              },
              "electricityKwh": {
                "type": "number"
              },
              "annualCost": {
                "type": "number"
              },
              "description": {
                "type": "string"
              },
              "chosen": {
                "type": "boolean"
              }
            },
            "required": [
              "flowTemperature",
              "label",
              "indicativeScop",
              "electricityKwh",
              "description",
              "chosen"
            ],
            "additionalProperties": false
          }
        },
        "quotedSizeCheck": {
          "type": [
            "null",
            "object"
          ],
          "properties": {
            "quotedKw": {
              "type": "number"
            },
            "ratioToEstimate": {
              "type": "number",
              "description": "The quoted output divided by the estimated peak load."
            },
            "verdict": {
              "type": "string"
            },
            "plausible": {
              "type": "boolean",
              "description": "False when the quoted unit looks considerably larger than the house appears to need, which is worth questioning."
            }
          },
          "required": [
            "quotedKw",
            "ratioToEstimate",
            "verdict",
            "plausible"
          ],
          "additionalProperties": false
        },
        "method": {
          "type": "string"
        },
        "references": {
          "type": [
            "null",
            "array"
          ],
          "items": {
            "type": "object",
            "properties": {
              "document": {
                "type": "string"
              },
              "title": {
                "type": "string"
              },
              "url": {
                "type": "string"
              },
              "clause": {
                "type": "string"
              }
            },
            "required": [
              "document",
              "title",
              "url"
            ],
            "additionalProperties": false
          }
        },
        "notes": {
          "type": [
            "null",
            "array"
          ],
          "items": {
            "type": "string"
          }
        },
        "warning": {
          "type": "string"
        }
      },
      "required": [
        "location",
        "basis",
        "basisNote",
        "designBasis",
        "internalTemp",
        "externalDesignTemp",
        "temperatureDifference",
        "heatingDegreeDays",
        "heatLossCoefficientWPerK",
        "peakHeatLossKw",
        "annualSpaceHeatingKwh",
        "annualHotWaterKwh",
        "hotWaterFromSummerUse",
        "annualHeatDemandKwh",
        "dailyHotWaterLitres",
        "flowTemperature",
        "scop",
        "scopAssumed",
        "heatPumpElectricityKwh",
        "method",
        "references",
        "notes",
        "warning"
      ],
      "additionalProperties": false
    }
  },
  "url": "https://ampworth.com/api/v1/calculators/heat-pump-size",
  "webUrl": "https://ampworth.com/calculators/heat-pump-size",
  "exampleUrl": "https://ampworth.com/api/v1/calculators/heat-pump-size?location=birmingham\u0026fuel=mains_gas\u0026annualFuelUse=12000\u0026bedrooms=3\u0026flowTemperature=45\u0026fuelPricePerUnit=0.06\u0026electricityPricePerKwh=0.25\u0026quotedHeatPumpKw=8",
  "method": "POST",
  "contentType": "application/json",
  "notice": "These calculators follow the published MCS methods, for understanding a system and checking a quotation. Anything that gets installed still needs a design and a site survey from a certified installer."
}
