{
  "dataset": "dictionary",
  "generated": "2026-08-27T16:32:54.236Z",
  "licence": {
    "compilation": "CC BY 4.0",
    "compilation_url": "https://creativecommons.org/licenses/by/4.0/",
    "attribution": "Tariff Tracker, tarifftracker.io, published by PEF Consulting Partners Limited",
    "underlying": "The figures themselves belong to the bodies named in each dataset's sources. Most are Crown copyright under the Open Government Licence v3. Supplier tariff rates belong to the suppliers who publish them. Check the source terms before you rely on any of it commercially.",
    "corrections": "If a figure here is wrong, say so and we will correct it and record that we did."
  },
  "docs": "https://tarifftracker.io/api/",
  "fields": "https://tarifftracker.io/api/v1/dictionary",
  "as_of": null,
  "envelope": [
    {
      "name": "dataset",
      "type": "string",
      "what": "Which dataset this is, in dotted form, matching the catalogue at /api/v1."
    },
    {
      "name": "generated",
      "type": "string, ISO 8601",
      "what": "The moment you asked. Not the age of the figures."
    },
    {
      "name": "as_of",
      "type": "string, ISO 8601 or date",
      "what": "When the figures in this response were last checked against their source. This is the one that matters.",
      "null_means": "The dataset carries no single checking date, which happens only where every row carries its own."
    },
    {
      "name": "sources",
      "type": "array",
      "what": "The bodies these figures came from, named and linked. If you republish a figure, republish this with it."
    },
    {
      "name": "caveats",
      "type": "array of strings",
      "what": "Where these figures could be wrong or be misread. Part of the data, not decoration."
    },
    {
      "name": "licence",
      "type": "object",
      "what": "What you may do with the compilation, and who owns the underlying figures."
    },
    {
      "name": "count",
      "type": "number",
      "what": "How many rows follow. Present only on datasets that are tables."
    },
    {
      "name": "rows",
      "type": "array",
      "what": "The figures, one object per row. Datasets that are not tables use data instead."
    }
  ],
  "sources": [],
  "caveats": [
    "One description of every field the API serves, read by both the site and the Worker so the documentation cannot drift from the data. Where a value can be blank, null_means says which blank it is: not published, does not apply, or not collected. Those are three different facts and a bare null makes them look like one.",
    "null_means is the point of this. A blank can mean the figure has not been published, that it does not apply to that row, or that we did not collect it. Those are three different facts and a bare null makes them look like one.",
    "Every response carries the blanks for its own dataset, so you do not have to call this to read one answer. This is here for building against."
  ],
  "count": 145,
  "rows": [
    {
      "dataset": "benchmarks",
      "field": "vertical",
      "type": "string",
      "unit": null,
      "what": "The slug for this bill, which is also its address on the site and in the API.",
      "null_means": null
    },
    {
      "dataset": "benchmarks",
      "field": "name",
      "type": "string",
      "unit": null,
      "what": "The bill in words.",
      "null_means": null
    },
    {
      "dataset": "benchmarks",
      "field": "value",
      "type": "number",
      "unit": "GBP",
      "what": "The typical figure as a number, ready to compute with.",
      "null_means": "No primary source publishes a single typical household figure for this bill. Rail fares and NHS charges are both like this. The label says what the display figure actually measures, and inventing a household number for them would be making it up."
    },
    {
      "dataset": "benchmarks",
      "field": "currency",
      "type": "string",
      "unit": null,
      "what": "Always GBP. Present so nobody has to assume.",
      "null_means": null
    },
    {
      "dataset": "benchmarks",
      "field": "period",
      "type": "string",
      "unit": null,
      "what": "What the value covers, such as a year or a month.",
      "null_means": "There is no value to attach a period to."
    },
    {
      "dataset": "benchmarks",
      "field": "display",
      "type": "string",
      "unit": null,
      "what": "The figure exactly as the site prints it, symbols and all. Use value for arithmetic and this for showing people.",
      "null_means": null
    },
    {
      "dataset": "benchmarks",
      "field": "unit",
      "type": "string",
      "unit": null,
      "what": "The suffix the site prints after the figure, such as /yr.",
      "null_means": "The site prints no suffix after this figure, because it is not an amount of money over a period. Rail fares are a percentage and childcare is a count of hours."
    },
    {
      "dataset": "benchmarks",
      "field": "label",
      "type": "string",
      "unit": null,
      "what": "What the figure actually is, including the period it applies to. Read this before quoting the number.",
      "null_means": null
    },
    {
      "dataset": "benchmarks",
      "field": "detail",
      "type": "string",
      "unit": null,
      "what": "The assumptions behind it, such as payment method or consumption.",
      "null_means": null
    },
    {
      "dataset": "benchmarks",
      "field": "direction",
      "type": "string",
      "unit": null,
      "what": "up, down or flat against the period before.",
      "null_means": null
    },
    {
      "dataset": "benchmarks",
      "field": "change",
      "type": "string",
      "unit": null,
      "what": "How much it moved and over what, as published.",
      "null_means": null
    },
    {
      "dataset": "benchmarks",
      "field": "source",
      "type": "string",
      "unit": null,
      "what": "The body that set the figure.",
      "null_means": null
    },
    {
      "dataset": "benchmarks",
      "field": "as_of",
      "type": "string, date",
      "unit": null,
      "what": "The date this figure took effect or was published.",
      "null_means": null
    },
    {
      "dataset": "benchmarks",
      "field": "page",
      "type": "string",
      "unit": null,
      "what": "The page a person should read.",
      "null_means": null
    },
    {
      "dataset": "benchmarks",
      "field": "detail_api",
      "type": "string",
      "unit": null,
      "what": "Everything behind this one figure, including its own sources and caveats.",
      "null_means": null
    },
    {
      "dataset": "energy.tariffs",
      "field": "supplier",
      "type": "string",
      "unit": null,
      "what": "The supplier's trading name.",
      "null_means": null
    },
    {
      "dataset": "energy.tariffs",
      "field": "tariff",
      "type": "string",
      "unit": null,
      "what": "The supplier's own name for the tariff, copied rather than tidied, so it matches what is printed on a bill.",
      "null_means": null
    },
    {
      "dataset": "energy.tariffs",
      "field": "product_code",
      "type": "string",
      "unit": null,
      "what": "The supplier's product code. Use this to join rows across fuels and regions rather than matching on the tariff name.",
      "null_means": null
    },
    {
      "dataset": "energy.tariffs",
      "field": "region",
      "type": "string",
      "unit": null,
      "what": "One of the fourteen Great Britain electricity distribution regions. Price varies by region and this is why.",
      "null_means": null
    },
    {
      "dataset": "energy.tariffs",
      "field": "fuel",
      "type": "string",
      "unit": null,
      "what": "electricity, gas, or dual where the same product code sells both in the same region.",
      "null_means": null
    },
    {
      "dataset": "energy.tariffs",
      "field": "kind",
      "type": "string",
      "unit": null,
      "what": "fixed or variable.",
      "null_means": null
    },
    {
      "dataset": "energy.tariffs",
      "field": "payment",
      "type": "string",
      "unit": null,
      "what": "Always direct debit. Standard credit costs about five and a half per cent more, and mixing the two makes one supplier look cheaper than it is, so only one basis is published.",
      "null_means": null
    },
    {
      "dataset": "energy.tariffs",
      "field": "unit_p_kwh",
      "type": "number",
      "unit": "pence per kWh",
      "what": "The unit rate, including VAT. On a dual fuel row this is the electricity leg only, and the gas leg is in gas_unit_p_kwh.",
      "null_means": null
    },
    {
      "dataset": "energy.tariffs",
      "field": "standing_p_day",
      "type": "number",
      "unit": "pence per day",
      "what": "The standing charge, including VAT. On a dual fuel row this is both fuels added together, because that is what the household actually pays each day.",
      "null_means": null
    },
    {
      "dataset": "energy.tariffs",
      "field": "gas_unit_p_kwh",
      "type": "number",
      "unit": "pence per kWh",
      "what": "The gas unit rate on a dual fuel row.",
      "null_means": "Not a dual fuel row. A gas row carries its unit rate in unit_p_kwh like any other."
    },
    {
      "dataset": "energy.tariffs",
      "field": "gas_standing_p_day",
      "type": "number",
      "unit": "pence per day",
      "what": "The gas standing charge on a dual fuel row, already included in standing_p_day.",
      "null_means": "Not a dual fuel row."
    },
    {
      "dataset": "energy.tariffs",
      "field": "credit_unit_p_kwh",
      "type": "number",
      "unit": "pence per kWh",
      "what": "The same tariff's unit rate for someone paying on receipt of the bill rather than by direct debit.",
      "null_means": "Either the supplier publishes no standard credit rate for this product in this region, or the row is a dual fuel row, where we do not compute a combined credit figure."
    },
    {
      "dataset": "energy.tariffs",
      "field": "term_months",
      "type": "number",
      "unit": "months",
      "what": "How long the contract runs.",
      "null_means": "No contract length was published for this product. On a variable tariff that is expected, because there is no fixed term to publish. On a fixed tariff it means the supplier did not publish one, and your own contract is the thing to check."
    },
    {
      "dataset": "energy.tariffs",
      "field": "exit_fee_gbp",
      "type": "number",
      "unit": "GBP",
      "what": "What the supplier charges to leave early, per fuel. Zero means they publish it as free to leave. Leaving a dual fuel contract early usually means paying this twice, once for each fuel.",
      "null_means": "Not collected for this product. Contract terms are read once per product from the supplier's electricity product detail, which is the only endpoint that carries them, so a product we hold gas prices for but no electricity detail has none."
    },
    {
      "dataset": "energy.tariffs",
      "field": "exit_fee_type",
      "type": "string",
      "unit": null,
      "what": "How the supplier structures the fee. FLAT is a single amount. NONE is no fee, and pairs with an exit_fee_gbp of zero.",
      "null_means": "Not collected, for the same reason as exit_fee_gbp."
    },
    {
      "dataset": "energy.tariffs",
      "field": "annual_est_gbp",
      "type": "number",
      "unit": "GBP",
      "what": "What a full year costs at Ofgem's typical consumption: standing charge times 365 plus the unit rate times the typical kWh. This is what the rankings sort on, because a low unit rate with a high standing charge is not a cheap tariff and sorting on the unit rate alone hides that.",
      "null_means": null
    },
    {
      "dataset": "energy.tariffs",
      "field": "closes",
      "type": "string, date",
      "unit": null,
      "what": "The last day the supplier will sign anyone new onto this tariff.",
      "null_means": "The supplier has set no closing date, so it is open."
    },
    {
      "dataset": "energy.tariffs",
      "field": "source",
      "type": "string",
      "unit": null,
      "what": "Which supplier endpoint the row was read from.",
      "null_means": null
    },
    {
      "dataset": "energy.cap",
      "field": "region",
      "type": "string",
      "unit": null,
      "what": "One of the fourteen Great Britain electricity distribution regions.",
      "null_means": null
    },
    {
      "dataset": "energy.cap",
      "field": "electricity_standing_p_day",
      "type": "number",
      "unit": "pence per day",
      "what": "The capped standing charge in that region, including VAT.",
      "null_means": null
    },
    {
      "dataset": "energy.cap",
      "field": "electricity_unit_p_kwh",
      "type": "number",
      "unit": "pence per kWh",
      "what": "The capped unit rate in that region, including VAT.",
      "null_means": null
    },
    {
      "dataset": "changes",
      "field": "id",
      "type": "string",
      "unit": null,
      "what": "A stable identifier. It is also the permalink other people cite, so it does not change once published.",
      "null_means": null
    },
    {
      "dataset": "changes",
      "field": "announced",
      "type": "string, date",
      "unit": null,
      "what": "The day it was published.",
      "null_means": null
    },
    {
      "dataset": "changes",
      "field": "effective",
      "type": "string, date",
      "unit": null,
      "what": "The day it starts to cost anyone anything. Often months after it was announced, and this is the date that matters.",
      "null_means": null
    },
    {
      "dataset": "changes",
      "field": "vertical",
      "type": "string",
      "unit": null,
      "what": "Which bill it affects.",
      "null_means": null
    },
    {
      "dataset": "changes",
      "field": "severity",
      "type": "string",
      "unit": null,
      "what": "increase, decrease or neutral, from the household's point of view rather than the industry's.",
      "null_means": null
    },
    {
      "dataset": "changes",
      "field": "actor",
      "type": "string",
      "unit": null,
      "what": "Who made the change: a regulator, a government department, or a company.",
      "null_means": null
    },
    {
      "dataset": "changes",
      "field": "title",
      "type": "string",
      "unit": null,
      "what": "What happened, in one line.",
      "null_means": null
    },
    {
      "dataset": "changes",
      "field": "summary",
      "type": "string",
      "unit": null,
      "what": "What happened, with the figures.",
      "null_means": null
    },
    {
      "dataset": "changes",
      "field": "note",
      "type": "string",
      "unit": null,
      "what": "Why it matters beyond the figure.",
      "null_means": "There is nothing to add beyond the summary."
    },
    {
      "dataset": "changes",
      "field": "source",
      "type": "string",
      "unit": null,
      "what": "A link to the primary source.",
      "null_means": "No single URL covers it. These should be rare and are worth reporting."
    },
    {
      "dataset": "changes",
      "field": "source_name",
      "type": "string",
      "unit": null,
      "what": "The body that published it.",
      "null_means": null
    },
    {
      "dataset": "upcoming",
      "field": "date",
      "type": "string, date",
      "unit": null,
      "what": "When it takes effect.",
      "null_means": null
    },
    {
      "dataset": "upcoming",
      "field": "vertical",
      "type": "string",
      "unit": null,
      "what": "Which bill it affects.",
      "null_means": null
    },
    {
      "dataset": "upcoming",
      "field": "what",
      "type": "string",
      "unit": null,
      "what": "What is changing.",
      "null_means": null
    },
    {
      "dataset": "upcoming",
      "field": "kind",
      "type": "string",
      "unit": null,
      "what": "price_change where a bill is going up or down, or deadline where it is a date you have to act by, such as a qualifying week. Missing a deadline costs the same as a rise, but it is something you can do something about.",
      "null_means": null
    },
    {
      "dataset": "upcoming",
      "field": "status",
      "type": "string",
      "unit": null,
      "what": "confirmed means the date and the amount are both published. date_only means the date is set but the amount has not been announced, so anybody quoting a figure for it is guessing. expected means it is a date we know is coming, such as a statutory review window, where neither the date nor the amount has been formally confirmed.",
      "null_means": null
    },
    {
      "dataset": "upcoming",
      "field": "amount_published",
      "type": "boolean",
      "unit": null,
      "what": "Whether the figure is published as well as the date. Kept alongside status so anything already built on it keeps working.",
      "null_means": null
    },
    {
      "dataset": "upcoming",
      "field": "source",
      "type": "string",
      "unit": null,
      "what": "Who announced it.",
      "null_means": null
    },
    {
      "dataset": "lookup",
      "field": "postcode_area",
      "type": "string",
      "unit": null,
      "what": "The letters at the start, which is all the mapping needs.",
      "null_means": null
    },
    {
      "dataset": "lookup",
      "field": "outcode",
      "type": "string",
      "unit": null,
      "what": "The first half of the postcode, with the inward code stripped.",
      "null_means": null
    },
    {
      "dataset": "lookup",
      "field": "electricity_region",
      "type": "string",
      "unit": null,
      "what": "The distribution region, which sets the cap rates and the tariffs available.",
      "null_means": "We hold no region for this area. If it is a real postcode area, that is a gap worth reporting."
    },
    {
      "dataset": "lookup",
      "field": "region_straddles",
      "type": "array",
      "unit": null,
      "what": "Both regions, where a postcode area sits across a boundary. Grid supply point boundaries do not follow postcodes, and where they disagree we name both rather than pick one.",
      "null_means": "This area sits in one region."
    },
    {
      "dataset": "lookup",
      "field": "cap_electricity_standing_p_day",
      "type": "number",
      "unit": "pence per day",
      "what": "The capped standing charge for that region.",
      "null_means": "No region, so no rates."
    },
    {
      "dataset": "lookup",
      "field": "cap_electricity_unit_p_kwh",
      "type": "number",
      "unit": "pence per kWh",
      "what": "The capped unit rate for that region.",
      "null_means": "No region, so no rates."
    },
    {
      "dataset": "lookup",
      "field": "water_company",
      "type": "string",
      "unit": null,
      "what": "The water and sewerage company for the area. You cannot switch it.",
      "null_means": "Scotland, where supply is Scottish Water and is not in the England and Wales table, or an area we hold no company for."
    },
    {
      "dataset": "lookup",
      "field": "water_company_split",
      "type": "array",
      "unit": null,
      "what": "Both companies, where an area is served by two. Water boundaries follow river catchments rather than postcodes, so this is approximate by nature.",
      "null_means": "One company serves this area."
    },
    {
      "dataset": "lookup",
      "field": "water_average_bill_gbp",
      "type": "number",
      "unit": "GBP",
      "what": "That company's average household bill for the year.",
      "null_means": "No company, so no bill. Scottish charges are set differently and are not in this table."
    },
    {
      "dataset": "lookup",
      "field": "scotland",
      "type": "boolean",
      "unit": null,
      "what": "Whether the area is in Scotland, where water and some other charges work differently.",
      "null_means": null
    },
    {
      "dataset": "lookup",
      "field": "council_tax_band_ratios",
      "type": "object",
      "unit": null,
      "what": "The statutory ratio of each band to band D. Multiply your council's band D charge by your band's ratio. The ratios are fixed in law; the band D charge is set by the council.",
      "null_means": null
    },
    {
      "dataset": "trade.corridors",
      "field": "slug",
      "type": "string",
      "unit": null,
      "what": "The country's address on the site.",
      "null_means": null
    },
    {
      "dataset": "trade.corridors",
      "field": "name",
      "type": "string",
      "unit": null,
      "what": "The country.",
      "null_means": null
    },
    {
      "dataset": "trade.corridors",
      "field": "code",
      "type": "string",
      "unit": null,
      "what": "The two letter country code.",
      "null_means": null
    },
    {
      "dataset": "trade.corridors",
      "field": "region",
      "type": "string",
      "unit": null,
      "what": "Which part of the world.",
      "null_means": null
    },
    {
      "dataset": "trade.corridors",
      "field": "inbound_headline_pct",
      "type": "number",
      "unit": "per cent",
      "what": "The highest duty layer charged on goods entering the United States from this country. It is a ceiling, not an average, and most trade moves at a lower rate.",
      "null_means": null
    },
    {
      "dataset": "trade.corridors",
      "field": "inbound_label",
      "type": "string",
      "unit": null,
      "what": "How that headline should be read in words, such as up to fifty per cent.",
      "null_means": null
    },
    {
      "dataset": "trade.corridors",
      "field": "inbound_layers",
      "type": "array",
      "unit": null,
      "what": "Each measure separately: its legal authority, its rate, what it covers and when it started.",
      "null_means": null
    },
    {
      "dataset": "trade.corridors",
      "field": "outbound_headline_pct",
      "type": "number",
      "unit": "per cent",
      "what": "The highest duty that country charges on goods from the United States.",
      "null_means": null
    },
    {
      "dataset": "trade.corridors",
      "field": "outbound_label",
      "type": "string",
      "unit": null,
      "what": "The same in words.",
      "null_means": null
    },
    {
      "dataset": "trade.corridors",
      "field": "outbound_layers",
      "type": "array",
      "unit": null,
      "what": "Each retaliatory or ordinary measure separately.",
      "null_means": null
    },
    {
      "dataset": "trade.corridors",
      "field": "summary",
      "type": "string",
      "unit": null,
      "what": "What is actually going on in this corridor.",
      "null_means": null
    },
    {
      "dataset": "trade.corridors",
      "field": "notes",
      "type": "array of strings",
      "unit": null,
      "what": "Detail that does not fit a rate: support packages, carve outs, disputes.",
      "null_means": null
    },
    {
      "dataset": "trade.corridors",
      "field": "page",
      "type": "string",
      "unit": null,
      "what": "The page for this corridor.",
      "null_means": null
    },
    {
      "dataset": "trade.programmes",
      "field": "authority",
      "type": "string",
      "unit": null,
      "what": "The statutory section the programme runs under.",
      "null_means": null
    },
    {
      "dataset": "trade.programmes",
      "field": "authority_name",
      "type": "string",
      "unit": null,
      "what": "That section in words.",
      "null_means": "The authority code is not one of the ones we hold a definition for."
    },
    {
      "dataset": "trade.programmes",
      "field": "legal_basis",
      "type": "string",
      "unit": null,
      "what": "The Act it comes from.",
      "null_means": "Same as above."
    },
    {
      "dataset": "trade.programmes",
      "field": "grounds",
      "type": "string",
      "unit": null,
      "what": "The legal ground claimed, such as national security.",
      "null_means": "Same as above."
    },
    {
      "dataset": "trade.programmes",
      "field": "title",
      "type": "string",
      "unit": null,
      "what": "What the programme covers.",
      "null_means": null
    },
    {
      "dataset": "trade.programmes",
      "field": "rate",
      "type": "string",
      "unit": null,
      "what": "The general rate. Variations name who pays something else.",
      "null_means": null
    },
    {
      "dataset": "trade.programmes",
      "field": "status",
      "type": "string",
      "unit": null,
      "what": "The legal state of the programme: in force, active, phasing, expired or struck down. This vocabulary is the United States government's, not ours.",
      "null_means": "No status is recorded."
    },
    {
      "dataset": "trade.programmes",
      "field": "in_force_from",
      "type": "string, date",
      "unit": null,
      "what": "When it started.",
      "null_means": "No start date is recorded."
    },
    {
      "dataset": "trade.programmes",
      "field": "note",
      "type": "string",
      "unit": null,
      "what": "What the rate does not tell you.",
      "null_means": "There is nothing to add."
    },
    {
      "dataset": "trade.programmes",
      "field": "variations",
      "type": "array",
      "unit": null,
      "what": "Who is charged something other than the general rate, and why.",
      "null_means": null
    },
    {
      "dataset": "trade.changes",
      "field": "id",
      "type": "string",
      "unit": null,
      "what": "A stable identifier.",
      "null_means": "The row is a scheduled measure rather than a logged change, and has no permalink yet."
    },
    {
      "dataset": "trade.changes",
      "field": "announced",
      "type": "string, date",
      "unit": null,
      "what": "When it was announced.",
      "null_means": "The row is scheduled: we hold the date it takes effect but not the day it was announced."
    },
    {
      "dataset": "trade.changes",
      "field": "effective",
      "type": "string, date",
      "unit": null,
      "what": "When it takes effect. Announced is not the same as in force, and neither is the same as collected.",
      "null_means": null
    },
    {
      "dataset": "trade.changes",
      "field": "actor",
      "type": "string",
      "unit": null,
      "what": "Who imposed it.",
      "null_means": null
    },
    {
      "dataset": "trade.changes",
      "field": "target",
      "type": "string",
      "unit": null,
      "what": "Who it is aimed at.",
      "null_means": "It applies by product worldwide rather than at one country."
    },
    {
      "dataset": "trade.changes",
      "field": "direction",
      "type": "string",
      "unit": null,
      "what": "Which way it runs, or scheduled where it has been announced but is not yet in force.",
      "null_means": null
    },
    {
      "dataset": "trade.changes",
      "field": "authority",
      "type": "string",
      "unit": null,
      "what": "The legal authority used.",
      "null_means": "None recorded."
    },
    {
      "dataset": "trade.changes",
      "field": "severity",
      "type": "string",
      "unit": null,
      "what": "increase, decrease or neutral.",
      "null_means": "The row is scheduled and has not been assessed."
    },
    {
      "dataset": "trade.changes",
      "field": "title",
      "type": "string",
      "unit": null,
      "what": "What happened, in one line.",
      "null_means": null
    },
    {
      "dataset": "trade.changes",
      "field": "summary",
      "type": "string",
      "unit": null,
      "what": "What happened, with the figures.",
      "null_means": null
    },
    {
      "dataset": "sources",
      "field": "dataset",
      "type": "string",
      "unit": null,
      "what": "Which dataset relies on it.",
      "null_means": null
    },
    {
      "dataset": "sources",
      "field": "name",
      "type": "string",
      "unit": null,
      "what": "The publication, named as its publisher names it.",
      "null_means": null
    },
    {
      "dataset": "sources",
      "field": "url",
      "type": "string",
      "unit": null,
      "what": "Where to check it yourself.",
      "null_means": "The source has no stable public URL. Rare, and worth telling us about."
    },
    {
      "dataset": "support",
      "field": "id",
      "type": "string",
      "unit": null,
      "what": "A stable identifier, also the anchor for this scheme on the help page.",
      "null_means": null
    },
    {
      "dataset": "support",
      "field": "name",
      "type": "string",
      "unit": null,
      "what": "What the scheme is called by the body that runs it.",
      "null_means": null
    },
    {
      "dataset": "support",
      "field": "group",
      "type": "string",
      "unit": null,
      "what": "Which bill or theme it sits under: gateway, energy, water, counciltax, broadband, nhs, childcare, tvlicence, travel or debt.",
      "null_means": null
    },
    {
      "dataset": "support",
      "field": "amount",
      "type": "string",
      "unit": null,
      "what": "What you get, in the form the scheme itself states it. Some are a fixed sum, some are a cap or a percentage, and some are protection rather than money.",
      "null_means": null
    },
    {
      "dataset": "support",
      "field": "amount_note",
      "type": "string",
      "unit": null,
      "what": "What that amount actually means, including whether it is paid to you or credited to an account.",
      "null_means": null
    },
    {
      "dataset": "support",
      "field": "administered_by",
      "type": "string",
      "unit": null,
      "what": "Who decides and who pays. This matters because it tells you who to argue with.",
      "null_means": null
    },
    {
      "dataset": "support",
      "field": "status",
      "type": "string",
      "unit": null,
      "what": "open, closed, seasonal or proposed. A closed scheme is one nobody can apply to right now.",
      "null_means": null
    },
    {
      "dataset": "support",
      "field": "status_note",
      "type": "string",
      "unit": null,
      "what": "The status in words, including when a closed scheme reopens.",
      "null_means": null
    },
    {
      "dataset": "support",
      "field": "england",
      "type": "string",
      "unit": null,
      "what": "yes, different, no or unknown. different means the scheme exists there but under other rules.",
      "null_means": "Never blank. Where we do not know, the value is the string unknown rather than a null."
    },
    {
      "dataset": "support",
      "field": "wales",
      "type": "string",
      "unit": null,
      "what": "Whether it applies in Wales, on the same four values.",
      "null_means": null
    },
    {
      "dataset": "support",
      "field": "scotland",
      "type": "string",
      "unit": null,
      "what": "Whether it applies in Scotland, on the same four values.",
      "null_means": null
    },
    {
      "dataset": "support",
      "field": "northern_ireland",
      "type": "string",
      "unit": null,
      "what": "Whether it applies in Northern Ireland, on the same four values.",
      "null_means": null
    },
    {
      "dataset": "support",
      "field": "nations_note",
      "type": "string",
      "unit": null,
      "what": "What the differences between the nations actually are.",
      "null_means": "The scheme works the same way everywhere it applies."
    },
    {
      "dataset": "support",
      "field": "eligibility",
      "type": "array of strings",
      "unit": null,
      "what": "The conditions, written so somebody can read them and know whether they qualify. This is the substance of the record, not a summary of it.",
      "null_means": null
    },
    {
      "dataset": "support",
      "field": "how_to_claim",
      "type": "string",
      "unit": null,
      "what": "What you actually do, including where a scheme is automatic and there is nothing to do.",
      "null_means": null
    },
    {
      "dataset": "support",
      "field": "apply_at",
      "type": "string",
      "unit": null,
      "what": "The official page to apply or find out more.",
      "null_means": "No single official page covers it."
    },
    {
      "dataset": "support",
      "field": "deadline",
      "type": "string, date",
      "unit": null,
      "what": "A qualifying date or window that decides whether you get anything.",
      "null_means": "The scheme is open all year with no dated cut off."
    },
    {
      "dataset": "support",
      "field": "deadline_what",
      "type": "string",
      "unit": null,
      "what": "What that date actually decides.",
      "null_means": "There is no deadline."
    },
    {
      "dataset": "support",
      "field": "worth_knowing",
      "type": "array of strings",
      "unit": null,
      "what": "The things that catch people out: what a scheme does not cover, why people are refused, and how much goes unclaimed.",
      "null_means": null
    },
    {
      "dataset": "support",
      "field": "changing",
      "type": "string",
      "unit": null,
      "what": "A rule that is confirmed but not yet in force, with what changes and when.",
      "null_means": "Nothing announced is due to change."
    },
    {
      "dataset": "support",
      "field": "unverified",
      "type": "array of strings",
      "unit": null,
      "what": "What could not be checked against a primary source, and is therefore deliberately absent from this record. An empty array means everything here was verified.",
      "null_means": null
    },
    {
      "dataset": "support",
      "field": "situations",
      "type": "array of strings",
      "unit": null,
      "what": "Who it is for, from a fixed list: benefits, pension, disability, children, carer, lowincome, arrears, prepay, renting, student.",
      "null_means": null
    },
    {
      "dataset": "support",
      "field": "sources",
      "type": "array",
      "unit": null,
      "what": "The government, regulator or scheme operator pages each fact was checked against.",
      "null_means": null
    },
    {
      "dataset": "support",
      "field": "page",
      "type": "string",
      "unit": null,
      "what": "The section of the help page covering this scheme.",
      "null_means": null
    },
    {
      "dataset": "watch",
      "field": "id",
      "type": "string",
      "unit": null,
      "what": "A stable identifier for the watched source.",
      "null_means": null
    },
    {
      "dataset": "watch",
      "field": "name",
      "type": "string",
      "unit": null,
      "what": "The page in words.",
      "null_means": null
    },
    {
      "dataset": "watch",
      "field": "url",
      "type": "string",
      "unit": null,
      "what": "The exact address being watched.",
      "null_means": "The source has not been read yet, so nothing is stored about it."
    },
    {
      "dataset": "watch",
      "field": "feeds",
      "type": "string",
      "unit": null,
      "what": "Which parts of the site depend on this source.",
      "null_means": null
    },
    {
      "dataset": "watch",
      "field": "note",
      "type": "string",
      "unit": null,
      "what": "Why this source is watched the way it is, where that needs explaining. Some pages render their figures with JavaScript, some keep them in a PDF, and one refuses automated requests entirely. Saying which is better than a number that looks fine and means nothing.",
      "null_means": "The page states its figures in plain HTML and there is nothing to explain."
    },
    {
      "dataset": "watch",
      "field": "last_checked",
      "type": "string, ISO 8601",
      "unit": null,
      "what": "When we last read the page.",
      "null_means": "Never read. A source added since the last morning run looks like this until it comes round."
    },
    {
      "dataset": "watch",
      "field": "last_changed",
      "type": "string, ISO 8601",
      "unit": null,
      "what": "When a figure on the page last moved.",
      "null_means": "Nothing has moved since we started watching, which for a recently added source means we have only one reading to compare against."
    },
    {
      "dataset": "watch",
      "field": "figures_tracked",
      "type": "number",
      "unit": null,
      "what": "How many distinct money amounts, percentages, pence rates and dates were found on the page. A sudden drop to zero usually means the page stopped loading rather than that the figures went.",
      "null_means": null
    },
    {
      "dataset": "watch",
      "field": "status",
      "type": "string",
      "unit": null,
      "what": "ok, or the reason the page could not be read. Some government sites refuse automated requests and that is recorded rather than treated as no change.",
      "null_means": null
    },
    {
      "dataset": "watch",
      "field": "health",
      "type": "string",
      "unit": null,
      "what": "Whether this source is actually being watched. A page we can read but which carries no figures is worse than one we cannot read, because it looks fine and can never fire. That usually means the page renders its numbers with JavaScript, which a plain fetch does not run.",
      "null_means": null
    },
    {
      "dataset": "energy.cap_history",
      "field": "region",
      "type": "string",
      "unit": null,
      "what": "One of the fourteen Great Britain distribution regions, or Great Britain average. Ofgem's own internal names are mapped to the ones used everywhere else on this site.",
      "null_means": null
    },
    {
      "dataset": "energy.cap_history",
      "field": "payment",
      "type": "string",
      "unit": null,
      "what": "direct debit, standard credit or prepayment. The three are meaningfully different and mixing them makes one look cheaper than it is.",
      "null_means": null
    },
    {
      "dataset": "energy.cap_history",
      "field": "period_start",
      "type": "string, date",
      "unit": null,
      "what": "The first day the capped rates applied.",
      "null_means": null
    },
    {
      "dataset": "energy.cap_history",
      "field": "period_end",
      "type": "string, date",
      "unit": null,
      "what": "The last day they applied. Early cap periods were six months long; they became quarterly in 2022.",
      "null_means": null
    },
    {
      "dataset": "energy.cap_history",
      "field": "electricity_standing_p_day",
      "type": "number",
      "unit": "pence per day",
      "what": "The capped electricity standing charge, single rate meter, including VAT.",
      "null_means": "Ofgem's file has no figure in that cell for that region, period and payment method."
    },
    {
      "dataset": "energy.cap_history",
      "field": "electricity_unit_p_kwh",
      "type": "number",
      "unit": "pence per kWh",
      "what": "The capped electricity unit rate, single rate meter, including VAT.",
      "null_means": "No figure published for that combination."
    },
    {
      "dataset": "energy.cap_history",
      "field": "gas_standing_p_day",
      "type": "number",
      "unit": "pence per day",
      "what": "The capped gas standing charge, including VAT.",
      "null_means": "No figure published for that combination."
    },
    {
      "dataset": "energy.cap_history",
      "field": "gas_unit_p_kwh",
      "type": "number",
      "unit": "pence per kWh",
      "what": "The capped gas unit rate, including VAT.",
      "null_means": "No figure published for that combination."
    },
    {
      "dataset": "energy.cap_history",
      "field": "economy7_standing_p_day",
      "type": "number",
      "unit": "pence per day",
      "what": "The capped standing charge for a multi rate or Economy 7 meter.",
      "null_means": "No figure published for that combination."
    },
    {
      "dataset": "energy.cap_history",
      "field": "economy7_unit_p_kwh",
      "type": "number",
      "unit": "pence per kWh",
      "what": "The capped unit rate for a multi rate or Economy 7 meter. This is a single blended figure, not the separate day and night rates.",
      "null_means": "No figure published for that combination."
    }
  ]
}