Download the data
Three CSVs, generated at build time from the same modules the pages render — so a downloaded file and the table it came from cannot disagree. 7,696 computed metal weight rows, 367 pipe dimension rows, and the density table behind both.
Everything here is a computed value or a published dimensional fact. Nothing is copied from a third-party weight chart, which is why the figures can differ in the last significant digit from a mill’s table — see methodology for that argument in full. Each file carries its dataset version and review date in every row, so a row quoted in isolation still says where it came from.
Metal weight — all materials, all sections
metal-weight-all.csv
7,696 rows · 1224 KB · UTF-8 with byte-order mark · RFC 4180 quoted
Long format: one row per material × shape × size. Pivot on section and dimensions_mm to rebuild any page table.
| Column | Contents |
|---|---|
| material | Full material name (16 values) |
| material_short | Short label, the one used in the calculators |
| density_kg_m3 | Nominal density the row was computed at |
| density_lb_in3 | The same density in lb/in³ |
| section | Section shape name |
| section_slug | URL slug of the shape |
| dimensions_mm | The dimension set, e.g. "dia=25" or "a=40 wt=3" |
| area_mm2 | Cross-sectional area, mm² |
| area_in2 | The same area in in² |
| kg_per_m | Mass per metre |
| lb_per_ft | Mass per foot |
| kg_per_m2 | Mass per square metre — plate rows only |
| lb_per_ft2 | The same in lb/ft² — plate rows only |
Pipe dimensions and weights
pipe-dimensions-all.csv
367 rows · 64 KB · UTF-8 with byte-order mark · RFC 4180 quoted
The "S" schedules are the B36.19M stainless ones and their weights are computed at 304 stainless density (8,000 kg/m³), matching the schedule pages. Every other row is carbon steel at 7,850 kg/m³.
| Column | Contents |
|---|---|
| nps | Nominal pipe size as written in the standard, e.g. "1-1/4" |
| dn | Metric designation, e.g. 32 |
| schedule | Schedule key: 5S, 10S, 10, 20, 30, 40S, 40, 60, 80S, 80, 100, 120, 140, 160, XXS, STD, XS |
| standard | ASME B36.10M (carbon) or B36.19M (stainless) |
| od_in / od_mm | Outside diameter — the governed dimension, and its metric conversion |
| wall_in / wall_mm | Wall thickness for this schedule at this size |
| id_mm | Bore, computed as OD − 2 × wall |
| metal_area_mm2 | Annular cross-section |
| kg_per_m / lb_per_ft | Mass per unit length |
| litres_per_m | Internal volume per metre — the hydrostatic test figure |
| water_kg_per_m | Mass of water filling one metre at 1,000 kg/m³ |
| outer_area_m2_per_m | External surface per metre — the coating quantity |
Material densities
metal-densities.csv
16 rows · 3 KB · UTF-8 with byte-order mark · RFC 4180 quoted
Sorted lightest first. Blank typical_spread_pct means the nominal value is tight for that grade; a value means the family genuinely varies by that much.
| Column | Contents |
|---|---|
| material / short | Material name and short label |
| group | carbon-steel, stainless-steel, aluminium, copper-alloy, other-metal, polymer |
| density_kg_m3 | Nominal density from the named specification |
| density_lb_in3 | Derived, not hand-typed |
| relative_to_carbon_steel | Ratio against 7,850 kg/m³, so 0.3439 means aluminium |
| typical_spread_pct | Documented density spread across the grade family, where one exists |
| specification | The standard the density represents |
| equivalents | UNS / EN / JIS / GB designations |
How these files are produced
scripts/gen_downloads.mjs runs before the site build and writes into public/downloads/. It imports the same calc.ts functions and the same dimension data the pages use, iterates the same size series, and quotes its own numbers into the build log. It refuses to complete if the output falls below the expected row count, so a silently-empty file cannot reach a visitor — the same guard philosophy as the site build itself.
If a figure here disagrees with your own calculation, the most useful thing you can send is the dimensions, the material and the density you used. Density assumptions account for most disagreements of about 0.1 %, and a genuine geometry error is the thing we most want to find. Report a data error — corrections are issued with a version bump.
Frequently asked questions
Can I use this data commercially?
Yes. The computed values — areas, masses, volumes, surface areas — are yours to use freely, including in commercial work, with attribution back to this site appreciated. What is not ours to license are the standardised dimensions themselves: pipe outside diameters and wall thicknesses belong to ASME, and if you are publishing them at scale you should be reproducing them from the standard. We state the dimensions so you can check our arithmetic, not to be a substitute for the source.
How often is the data updated?
The datasets carry a version, currently 2026.09.1, and a review date of 2026-09-21. The version only moves when a number changes — a rebuild that changes nothing does not bump it, because the sitemap's lastmod is driven by that version and a fake freshness signal is worse than none. When a value does change, every page and every CSV changes together, because they are generated from the same modules.
Why is the metal weight file so much bigger than the pipe file?
Because there is more of it: 7,696 rows against 367. Sixteen materials multiplied by ten shapes, each expanded over its own size series, against 31 nominal sizes across 17 schedules. Both are uncompressed here; the server sends them gzipped, which cuts the metal file to roughly a fifth.
Is there a JSON or an API?
There is a JSON index of every page on the site at /searchindex.json, used by the on-site search. For the numeric data, CSV is the format: it opens in anything, it is diffable, and a static file has no rate limit or uptime. If you want a different shape — filtered by material, or as JSON — the generator is a single script and the data modules are plain TypeScript, so it is a small change rather than an integration.
Will you add PDF or Excel versions?
Excel is already covered: the CSVs are RFC 4180 with a UTF-8 byte-order mark, so they open correctly in Excel with the mm² and · characters intact. PDF is on the roadmap for the printable tables — a printed pipe schedule wall chart is genuinely useful on a shop floor — but it will be generated from the same data rather than maintained separately.
Reference data and tools
The same data, browsable, with the working shown.
- Metal weight overview — how the calculation works
- All 16 materials — densities and specifications
- All 10 sections — formulas and size series
- Density chart — lightest to heaviest
- Metal weight calculator — any size, any material
- Pipe overview — schedules, sizes and how weight is computed
- All pipe schedules — Sch 5S to XXS
- All nominal sizes — NPS 1/8 to NPS 36
- DN to NPS conversion — metric to imperial designations
- Pipe weight formula — worked derivation
- Pipe weight calculator — any OD and wall
- All calculators — metal weight and pipe weight
- Download the data — CSV, generated from the same source
- Cross-reference tables — DN / NPS / material equivalents
- Methodology and sources — where every number comes from
Every row is computed at build time: areas from closed-form geometry, masses as area × length × density, unit conversions from definitional constants. The only copied values are pipe outside diameters and wall thicknesses, which are the dimensional facts the standards govern.
- Elementary plane geometry. The circle, polygon and hollow-section area formulas.
- ASME B36.10M — Welded and Seamless Wrought Steel Pipe (dimensional tables).
- ASME B36.19M — Stainless Steel Pipe (dimensional tables).
- ASTM material specifications for each grade named in the material entry (A36, A240/A276, B209/B211/B221, B152/B16/B505, B265/B348, A48, B29, D1784, D3350).
- BIPM / NIST definitional constants: international inch = 25.4 mm, foot = 0.3048 m, pound = 0.45359237 kg.
Dataset version 2026.09.1 · dimensions last verified against source 2026-09-21. Found an error? Report it — corrections are issued with a version bump.