{
  "capacity": {
    "crude_distillation_bsd": 19157174,
    "as_of": "2026-01-01",
    "basis": "Charge capacity: what a unit is built to process, not what it processed. The yields are actual; these are potential, and the two must not be read as the same kind of number.",
    "downstream_total_bsd": 23905358,
    "downstream_total_pct": 124.8,
    "finding": "Downstream charge capacity comes to 124.8% of crude distillation capacity. It exceeds 100% because a barrel's components are processed more than once: gas oil is cracked, and the product is hydrotreated before it is blended."
  },
  "sources": [
    {
      "id": "eia",
      "title": "U.S. Refinery Yield",
      "url": "https://www.eia.gov/dnav/pet/pet_pnp_pct_dc_nus_pct_m.htm",
      "retrieved": "2026-10-24",
      "note": "Every percentage on this page. July 2026, as percent of crude oil input."
    },
    {
      "id": "ap42",
      "title": "EPA AP-42 ch. 5.1, Petroleum Refining",
      "url": "https://www.epa.gov/sites/default/files/2020-09/documents/5.1_petroleum_refining.pdf",
      "retrieved": "2026-10-24",
      "note": "Which unit feeds which. Derivation only; it publishes no volumes."
    },
    {
      "id": "eia-capacity",
      "title": "EIA Refinery Capacity Report, data as of 2026-01-01",
      "url": "https://www.eia.gov/petroleum/refinerycapacity/refcap26.pdf",
      "retrieved": "2026-10-24",
      "note": "Capacity by unit type, as of 1 January 2026. The basis for leaving the visbreaker out."
    },
    {
      "id": "eia-capacity-units",
      "title": "EIA, refinery downstream charge capacity by unit",
      "url": "https://www.eia.gov/petroleum/refinerycapacity/",
      "retrieved": "2026-10-25",
      "note": "Downstream charge capacity, per unit. What each lane can process."
    },
    {
      "id": "iea-petchem",
      "title": "IEA, Oil 2025",
      "url": "https://www.iea.org/reports/oil-2025",
      "retrieved": "2026-10-25",
      "note": "Petrochemical feedstock as a share of global oil demand. The basis for saying this diagram cannot answer where the plastic is."
    }
  ],
  "omissions": [
    {
      "unit": "Visbreaker",
      "reason": "US visbreaking capacity is 16,000 barrels per stream day against 2,793,645 for coking and 19,157,174 of crude distillation: 0.08% of the barrel. These yields are US, so the unit is left out rather than drawn at a scale it does not have. In Europe and Asia it would belong.",
      "source": "eia-capacity",
      "capacity_bsd": 16000,
      "capacity_pct": 0.1,
      "table_label": "Visbreaking"
    },
    {
      "unit": "petrochemical destination",
      "why": "EIA names a product for what it is, not where it goes, and most US plastics feedstock is ethane from shale gas that never enters a refinery. See content/petrochemicals/NOTES.md."
    }
  ],
  "basis": {
    "measured": "EIA, U.S. Refinery Yield, July 2026. Percent of crude oil input.",
    "documented": "EPA AP-42 ch. 5.1, Petroleum Refining. Derivation only; no volumes.",
    "schematic": "Drawn for structure. Carries no quantity and should not be read as one."
  },
  "nodes": [
    {
      "id": "crude",
      "kind": "root",
      "yield": null,
      "basis": "schematic",
      "label": "Crude oil",
      "note": "42 gallons in."
    },
    {
      "id": "desalter",
      "kind": "unit",
      "yield": null,
      "basis": "documented",
      "label": "Desalter",
      "family": "clean",
      "note": "Washes out salt and water before heat."
    },
    {
      "id": "adu",
      "kind": "unit",
      "yield": null,
      "basis": "documented",
      "capacity_bsd": 19157174,
      "capacity_pct": 100.0,
      "label": "Atmospheric distillation",
      "family": "separate",
      "capacity_label": "Atmospheric crude distillation",
      "note": "Splits by boiling point. The first and last purely physical split."
    },
    {
      "id": "vdu",
      "kind": "unit",
      "yield": null,
      "basis": "documented",
      "label": "Vacuum distillation",
      "family": "separate",
      "note": "Re-boils the atmospheric residue under vacuum, below its cracking temperature."
    },
    {
      "id": "gas",
      "kind": "fraction",
      "yield": null,
      "basis": "documented",
      "label": "Refinery gas",
      "note": "Lightest cut. Mostly burned on site or recovered as LPG."
    },
    {
      "id": "lnaph",
      "kind": "fraction",
      "yield": null,
      "basis": "documented",
      "label": "Light naphtha",
      "note": "~30 to 90 °C."
    },
    {
      "id": "hnaph",
      "kind": "fraction",
      "yield": null,
      "basis": "documented",
      "label": "Heavy naphtha",
      "note": "~90 to 200 °C."
    },
    {
      "id": "kero",
      "kind": "fraction",
      "yield": null,
      "basis": "documented",
      "label": "Kerosene cut",
      "note": "~200 to 250 °C."
    },
    {
      "id": "lgo",
      "kind": "fraction",
      "yield": null,
      "basis": "documented",
      "label": "Light gas oil",
      "note": "~250 to 350 °C."
    },
    {
      "id": "atmres",
      "kind": "fraction",
      "yield": null,
      "basis": "documented",
      "label": "Atmospheric residue",
      "note": "Everything that would not boil. Goes to vacuum."
    },
    {
      "id": "vgo",
      "kind": "fraction",
      "yield": null,
      "basis": "documented",
      "label": "Vacuum gas oil",
      "note": "The cat cracker's feed. 340 to 540 °C."
    },
    {
      "id": "vacres",
      "kind": "fraction",
      "yield": null,
      "basis": "documented",
      "label": "Vacuum residue",
      "note": "The bottom of the barrel."
    },
    {
      "id": "isom",
      "kind": "unit",
      "yield": null,
      "basis": "documented",
      "capacity_bsd": 794777,
      "capacity_pct": 4.1,
      "label": "Isomerization",
      "family": "rearrange",
      "capacity_label": "Isomer production capacity",
      "note": "Rearranges light naphtha into higher-octane shapes. Same size, better structure."
    },
    {
      "id": "reformer",
      "kind": "unit",
      "yield": null,
      "basis": "documented",
      "capacity_bsd": 3549453,
      "capacity_pct": 18.5,
      "label": "Catalytic reformer",
      "family": "rearrange",
      "capacity_label": "Catalytic reforming",
      "note": "Rearranges heavy naphtha into aromatics. Makes the hydrogen the hydrotreaters need."
    },
    {
      "id": "fcc",
      "kind": "unit",
      "yield": null,
      "basis": "documented",
      "capacity_bsd": 5334708,
      "capacity_pct": 27.8,
      "label": "Fluid catalytic cracker",
      "family": "break",
      "capacity_label": "Catalytic cracking, fresh feed",
      "note": "Breaks gas oil into lighter molecules. Where most of the extra volume comes from."
    },
    {
      "id": "hydrocracker",
      "kind": "unit",
      "yield": null,
      "basis": "documented",
      "capacity_bsd": 1468600,
      "capacity_pct": 7.7,
      "label": "Hydrocracker",
      "family": "break",
      "capacity_label": "Catalytic hydrocracking, gas oil",
      "note": "Cracks under hydrogen. Favours jet and diesel over gasoline."
    },
    {
      "id": "coker",
      "kind": "unit",
      "yield": null,
      "basis": "documented",
      "capacity_bsd": 2793645,
      "capacity_pct": 14.6,
      "label": "Coker",
      "family": "break",
      "capacity_label": "Coking, delayed and fluid",
      "note": "Cracks the vacuum residue until what is left is solid carbon."
    },
    {
      "id": "alky",
      "kind": "unit",
      "yield": null,
      "basis": "documented",
      "capacity_bsd": 1348497,
      "capacity_pct": 7.0,
      "label": "Alkylation",
      "family": "join",
      "capacity_label": "Alkylate production capacity",
      "note": "Runs the other way: joins small molecules into larger, high-octane ones."
    },
    {
      "id": "gaspool",
      "kind": "blend",
      "yield": null,
      "basis": "documented",
      "label": "Gasoline blending",
      "note": "Four lineages meet here."
    },
    {
      "id": "jetpool",
      "kind": "blend",
      "yield": null,
      "basis": "documented",
      "label": "Jet blending"
    },
    {
      "id": "dieselpool",
      "kind": "blend",
      "yield": null,
      "basis": "documented",
      "label": "Distillate blending"
    },
    {
      "id": "p_gasoline",
      "kind": "product",
      "yield": 43.8,
      "basis": "measured",
      "label": "Finished motor gasoline"
    },
    {
      "id": "p_distillate",
      "kind": "product",
      "yield": 30.0,
      "basis": "measured",
      "label": "Distillate fuel oil",
      "note": "Diesel and heating oil."
    },
    {
      "id": "p_jet",
      "kind": "product",
      "yield": 12.0,
      "basis": "measured",
      "label": "Kerosene-type jet fuel"
    },
    {
      "id": "p_coke",
      "kind": "product",
      "yield": 4.6,
      "basis": "measured",
      "label": "Petroleum coke"
    },
    {
      "id": "p_hgl",
      "kind": "product",
      "yield": 4.3,
      "basis": "measured",
      "label": "Hydrocarbon gas liquids",
      "note": "Propane, butane and the like."
    },
    {
      "id": "p_stillgas",
      "kind": "product",
      "yield": 3.9,
      "basis": "measured",
      "label": "Still gas",
      "note": "Burned to run the refinery itself."
    },
    {
      "id": "p_asphalt",
      "kind": "product",
      "yield": 2.1,
      "basis": "measured",
      "label": "Asphalt and road oil"
    },
    {
      "id": "p_resid",
      "kind": "product",
      "yield": 1.7,
      "basis": "measured",
      "label": "Residual fuel oil"
    },
    {
      "id": "p_lubes",
      "kind": "product",
      "yield": 1.0,
      "basis": "measured",
      "label": "Lubricants"
    },
    {
      "id": "p_petnaph",
      "kind": "product",
      "yield": 0.8,
      "basis": "measured",
      "label": "Naphtha, petrochemical feed"
    },
    {
      "id": "p_petother",
      "kind": "product",
      "yield": 0.5,
      "basis": "measured",
      "label": "Other oils, petrochemical feed"
    },
    {
      "id": "p_misc",
      "kind": "aside",
      "yield": 0.5,
      "basis": "measured",
      "label": "Miscellaneous products",
      "note": "EIA's residual category. No single lineage produces it, so it is shown apart rather than given a parent it does not have."
    },
    {
      "id": "p_specnaph",
      "kind": "product",
      "yield": 0.2,
      "basis": "measured",
      "label": "Special naphthas"
    },
    {
      "id": "p_avgas",
      "kind": "product",
      "yield": 0.1,
      "basis": "measured",
      "label": "Finished aviation gasoline"
    },
    {
      "id": "p_kero",
      "kind": "product",
      "yield": 0.1,
      "basis": "measured",
      "label": "Kerosene"
    },
    {
      "id": "p_wax",
      "kind": "product",
      "yield": 0.0,
      "basis": "measured",
      "label": "Waxes",
      "note": "Rounds to zero. Still made."
    },
    {
      "id": "ht_naph",
      "kind": "unit",
      "yield": null,
      "basis": "documented",
      "capacity_bsd": 4490487,
      "capacity_pct": 23.4,
      "label": "Naphtha hydrotreater",
      "family": "clean",
      "capacity_label": "Catalytic hydrotreating, naphtha / reformer feed",
      "note": "Runs before the reformer, not after: sulfur poisons the reforming catalyst."
    },
    {
      "id": "ht_kero",
      "kind": "unit",
      "yield": null,
      "basis": "documented",
      "capacity_note": "EIA reports kerosene/jet hydrotreating inside other hydrotreating categories, so no separate figure is drawn.",
      "label": "Kerosene hydrotreater",
      "family": "clean",
      "note": "Sulfur out, on spec for jet."
    },
    {
      "id": "ht_diesel",
      "kind": "unit",
      "yield": null,
      "basis": "documented",
      "capacity_bsd": 6268465,
      "capacity_pct": 32.7,
      "label": "Distillate hydrotreater",
      "family": "clean",
      "capacity_label": "Catalytic hydrotreating, distillate",
      "note": "The unit that made ultra-low-sulfur diesel possible."
    }
  ],
  "edges": [
    {
      "from": "crude",
      "to": "desalter",
      "label": null,
      "kind": "descent"
    },
    {
      "from": "desalter",
      "to": "adu",
      "label": null,
      "kind": "descent"
    },
    {
      "from": "adu",
      "to": "gas",
      "label": null,
      "kind": "descent"
    },
    {
      "from": "adu",
      "to": "lnaph",
      "label": null,
      "kind": "descent"
    },
    {
      "from": "adu",
      "to": "hnaph",
      "label": null,
      "kind": "descent"
    },
    {
      "from": "adu",
      "to": "kero",
      "label": null,
      "kind": "descent"
    },
    {
      "from": "adu",
      "to": "lgo",
      "label": null,
      "kind": "descent"
    },
    {
      "from": "adu",
      "to": "atmres",
      "label": null,
      "kind": "descent"
    },
    {
      "from": "atmres",
      "to": "vdu",
      "label": null,
      "kind": "descent"
    },
    {
      "from": "vdu",
      "to": "vgo",
      "label": null,
      "kind": "descent"
    },
    {
      "from": "vdu",
      "to": "vacres",
      "label": null,
      "kind": "descent"
    },
    {
      "from": "lnaph",
      "to": "isom",
      "label": null,
      "kind": "descent"
    },
    {
      "from": "vgo",
      "to": "fcc",
      "label": null,
      "kind": "descent"
    },
    {
      "from": "vgo",
      "to": "hydrocracker",
      "label": null,
      "kind": "descent"
    },
    {
      "from": "vgo",
      "to": "p_lubes",
      "label": "solvent refining and dewaxing",
      "kind": "descent"
    },
    {
      "from": "vacres",
      "to": "coker",
      "label": null,
      "kind": "descent"
    },
    {
      "from": "vacres",
      "to": "p_asphalt",
      "label": "blown or blended direct",
      "kind": "descent"
    },
    {
      "from": "vacres",
      "to": "p_resid",
      "label": null,
      "kind": "descent"
    },
    {
      "from": "gas",
      "to": "alky",
      "label": "olefins",
      "kind": "descent"
    },
    {
      "from": "fcc",
      "to": "alky",
      "label": "propylene and butylene",
      "kind": "descent"
    },
    {
      "from": "isom",
      "to": "gaspool",
      "label": "isomerate",
      "kind": "descent"
    },
    {
      "from": "reformer",
      "to": "gaspool",
      "label": "reformate",
      "kind": "descent"
    },
    {
      "from": "alky",
      "to": "gaspool",
      "label": "alkylate",
      "kind": "descent"
    },
    {
      "from": "fcc",
      "to": "gaspool",
      "label": "FCC gasoline",
      "kind": "descent"
    },
    {
      "from": "coker",
      "to": "gaspool",
      "label": "coker naphtha",
      "kind": "descent"
    },
    {
      "from": "hydrocracker",
      "to": "jetpool",
      "label": null,
      "kind": "descent"
    },
    {
      "from": "fcc",
      "to": "dieselpool",
      "label": "light cycle oil",
      "kind": "descent"
    },
    {
      "from": "hydrocracker",
      "to": "dieselpool",
      "label": null,
      "kind": "descent"
    },
    {
      "from": "gaspool",
      "to": "p_gasoline",
      "label": null,
      "kind": "descent"
    },
    {
      "from": "gaspool",
      "to": "p_avgas",
      "label": null,
      "kind": "descent"
    },
    {
      "from": "jetpool",
      "to": "p_jet",
      "label": null,
      "kind": "descent"
    },
    {
      "from": "jetpool",
      "to": "p_kero",
      "label": null,
      "kind": "descent"
    },
    {
      "from": "dieselpool",
      "to": "p_distillate",
      "label": null,
      "kind": "descent"
    },
    {
      "from": "coker",
      "to": "p_coke",
      "label": null,
      "kind": "descent"
    },
    {
      "from": "gas",
      "to": "p_hgl",
      "label": null,
      "kind": "descent"
    },
    {
      "from": "gas",
      "to": "p_stillgas",
      "label": null,
      "kind": "descent"
    },
    {
      "from": "lnaph",
      "to": "p_petnaph",
      "label": null,
      "kind": "descent"
    },
    {
      "from": "lnaph",
      "to": "p_specnaph",
      "label": null,
      "kind": "descent"
    },
    {
      "from": "vgo",
      "to": "p_petother",
      "label": null,
      "kind": "descent"
    },
    {
      "from": "vgo",
      "to": "p_wax",
      "label": "dewaxing",
      "kind": "descent"
    },
    {
      "from": "hnaph",
      "to": "ht_naph",
      "label": null,
      "kind": "descent"
    },
    {
      "from": "ht_naph",
      "to": "reformer",
      "label": null,
      "kind": "descent"
    },
    {
      "from": "kero",
      "to": "ht_kero",
      "label": null,
      "kind": "descent"
    },
    {
      "from": "ht_kero",
      "to": "jetpool",
      "label": null,
      "kind": "descent"
    },
    {
      "from": "lgo",
      "to": "ht_diesel",
      "label": null,
      "kind": "descent"
    },
    {
      "from": "ht_diesel",
      "to": "dieselpool",
      "label": null,
      "kind": "descent"
    },
    {
      "from": "reformer",
      "to": "ht_naph",
      "label": "hydrogen",
      "kind": "hydrogen"
    },
    {
      "from": "reformer",
      "to": "ht_kero",
      "label": "hydrogen",
      "kind": "hydrogen"
    },
    {
      "from": "reformer",
      "to": "ht_diesel",
      "label": "hydrogen",
      "kind": "hydrogen"
    }
  ],
  "title": "What a barrel of crude becomes",
  "families": [
    {
      "id": "separate",
      "name": "Separating",
      "what": "No chemistry at all. Heat the crude and the lighter molecules boil off first, so the barrel sorts itself by boiling point. Everything after this step changes the molecules."
    },
    {
      "id": "break",
      "name": "Breaking",
      "what": "Big molecules into small ones. The heavy end of a barrel is worth little and there is a lot of it, so refineries break it apart. This is where the extra volume comes from: two small molecules take up more room than the one big molecule they came from."
    },
    {
      "id": "rearrange",
      "name": "Rearranging",
      "what": "Same molecule, different shape. Octane is not about size but about how a molecule is built, so these units take a low-octane stream and fold it into a high-octane one without making it any bigger."
    },
    {
      "id": "join",
      "name": "Joining",
      "what": "Small molecules into bigger ones. The gases left over from cracking are too light to put in a tank, so they are stitched together into something that belongs in gasoline."
    },
    {
      "id": "clean",
      "name": "Cleaning",
      "what": "Taking the sulfur out. Crude carries sulfur, sulfur becomes acid rain and poisons catalysts, and the limits are legal ones. Hydrogen pulls it out as hydrogen sulfide."
    }
  ],
  "page": {
    "title": "What a barrel of crude becomes",
    "description": "Every major step from crude oil to finished product, with the yields measured and the omissions stated.",
    "poster_line": "Every major step between, and how much each lane can process.",
    "body": ":standfirst\n42 gallons in. **About 44.4 gallons out.**\n\nThis is not an error. Cracking breaks large molecules into smaller\nones, and smaller molecules take up more room, so a refinery returns more\nvolume than it receives. The EIA reports it as a line item called processing\ngain, and at the foot of the diagram you can see it: the red bar runs past\nthe black one.\n\nBelow is every major step between the two, drawn as descent. Crude at the top,\none ancestor. The first split is the only purely physical one in the whole\nprocess; everything after it is chemistry. At the bottom, lines rejoin,\nbecause the gasoline in your tank has at least four separate lineages.\n\n:label How to read it\n\n:key **Red means measured.** Every red figure is an EIA refinery yield.\nNothing inferred or drawn for structure is ever red.\n\n:key **Width means volume, and only at the two ends.** No line in the middle\ncarries a quantity, because no intermediate quantity is published. Drawing one\nwould be a guess wearing the costume of a measurement.\n\n:key **Dashed red is hydrogen.** It runs backwards up the diagram: the\nreformer makes the hydrogen that cleans its own feed. Refining is not a tree,\nand that loop is why.\n\n:key **Line weight is charge capacity**, and the figure under a unit is that\ncapacity as a share of crude distillation. These are a different kind of\nnumber from the yields: capacity is what a unit is built to process, not what\nit processed. Potential, not actual.\n\n{{diagram}}\n\n:label How much each lane can process\n\n{{capacity-table}}\n\nThose come to **124.8% of crude distillation capacity.** It is the second\nthing in this diagram that looks like an error and is not. It exceeds 100%\nbecause a barrel's components are processed more than once: gas oil is\ncracked, and the product is hydrotreated again before it is blended. The\nbarrel gets bigger, and it gets handled more times than there is barrel.\n\n{{glossary}}\n\n:label What is absent\n\nThe visbreaker\n:   US visbreaking capacity is 16,000 barrels a day against 2,793,645 for\n    coking. These yields are American, so a unit at 0.08% of the barrel is left\n    out rather than drawn at a scale it does not have. In Europe and Asia it\n    would belong.\n\nMiscellaneous products, 0.5%\n:   EIA's residual category. No single lineage produces it, so it is named\n    rather than given a parent it does not have.\n\nActual throughput\n:   Capacity is published; what ran through it in a given month is not, at\n    this level of detail. So the lanes carry what they could process rather\n    than what they did. An earlier version of this page said no per-unit figure\n    existed at all, which was wrong.\n\nWhere the plastic is\n:   Only 1.3% of the barrel is labelled petrochemical feedstock here, and that\n    is not how much oil becomes plastic. EIA names a product for what it is,\n    not where it goes, so the hydrocarbon gas liquids and still gas that feed\n    crackers are counted as themselves. Most US plastics feedstock is ethane\n    from shale gas, which never passes through a refinery and so cannot appear\n    in a refinery yield at all. Petrochemicals take about 16% of global oil\n    demand. None of that is answerable from this diagram, because the\n    destination is not in the source. It needs its own.\n\n:label Sources\n\n{{sources}}\n\n:footer Retrieved 24 October 2026 · The diagram is generated from [data.json](data.json), which carries a basis for every node"
  },
  "generated_from": "content/crude-oil/"
}
