About
About Spec Reference
784 rows across 10 tables, generated by scripts from published standards rather than copied from other charts.
Built and maintained by Ethan Chen. The reason to trust a number here is not that I say so — it is that every table is produced by a script you can read the method for, checked against published reference values, and held in place by automated tests that fail when a number drifts.
Why this exists
Look up a tap drill size and you get a dozen pages carrying the same table, none of them saying where it came from. When two of them disagree — and they do — there is no way to tell which one is wrong. Most are also wrapped in enough advertising that finding the row you need takes longer than the job.
So this site states its method on every page. Not as a disclaimer at the bottom, but as a block you can check the work against: the formula used, the standard the inputs came from, the specific published values it was verified against, and the largest deviation found.
How a table gets made
Each chart is the output of a Python script. The script computes the values from the geometry or the defining formula, then asserts them against known reference pairs before it is allowed to write anything. A drill chart that produced an "interchangeable" pair outside its own stated tolerance would not produce a file at all — the script exits and nothing lands on disk.
The site then renders straight from those generated files. Nothing is retyped between the calculation and the page, because retyping is where numbers drift. Where a page quotes a constant or a verification figure in its prose, that text is interpolated from the same data — an earlier version hand-wrote three such numbers and all three were wrong.
Both unit systems are written into the HTML, not converted by JavaScript, so the metric values exist for anything that reads the page without running scripts. 9 of the 10 tables ship as CSV and JSON with the same columns you see on screen.
What holds it together
Every claim above is enforced by a test rather than by good intentions. The suite covers page structure and metadata, the table component's behaviour on each page, accessibility and keyboard reachability, and — the layer that matters most — the data itself, checked without a browser for self-consistency.
That last layer exists because of the errors that got through everything else. Torque values once used yield strength where proof stress was correct, which made the metric figures 12–24% too high; a wire chart rounded copper resistivity and came out 0.24% low across the board. Neither was a rendering bug and neither would have been caught by looking at the page. Each fix arrived with an assertion that would have caught it, and those assertions still run.
What is deliberately missing
Three exclusions are decisions, not gaps. Adding them would make the site look more complete and be less trustworthy:
- No ampacity on the wire chart. Current-carrying capacity comes from NEC (NFPA 70) Table 310.16 plus local amendments, and depends on insulation, bundling, ambient temperature and which code edition your jurisdiction adopted. It is a safety judgment reproduced from a copyrighted table, not something you can derive — so it is not here.
- No vehicle-specific torque. Head bolts, suspension and tightening sequences are OEM service-manual data that change by model year and often require angle-torque or single-use fasteners. No table can express that correctly.
- No ACI 318 design provisions on the rebar chart. Cover depth, development length, lap splices and bend diameters depend on concrete strength, exposure, coating and the member you are in. A single number lifted out of that context is wrong more often than right.
The line is consistent: what can be derived is given; what can only be transcribed from a safety code is not. Where a value genuinely is a transcribed standard figure rather than a computed one — the steel, galvanized and stainless columns of the sheet metal chart, for instance — the page says so.
Corrections
If a number here disagrees with your standard, the standard wins and I want to know. Write to hello@thespecref.com. The most useful report names the page, the row, what you have, and which edition of which standard you are reading from — that is usually enough to tell a real error from a difference in nominal versus actual dimensions.
Corrections get fixed at the source: the generating script changes, an assertion goes in so the same class of error cannot come back, and the page rebuilds from the new data. That is why the "Data source and method" block on each page is worth reading — it tells you what has already been checked.
Who
Ethan Chen — github.com/CodeForgeX, hello@thespecref.com. The site runs as static files on Cloudflare Pages with no analytics, no cookies, no fonts or scripts from anyone else, and no advertising. Each page is a single request.
The tables
- Tap Drill Sizes — UNC, UNF and metric — plus the engagement each real drill actually gives. (79 rows)
- Drill Bit Sizes — Fractional, number, letter and metric in one sorted list, with equivalence groups. (352 rows)
- Thread Sizes — Pitch diameter, minor diameter and tensile stress area from the 60° form. (79 rows)
- Sheet Metal Gauge — Steel, galvanized, stainless and aluminum — four different gauge systems. (24 rows)
- AWG Wire Sizes — Diameter, area, resistance and voltage drop. Computed, not copied. (44 rows)
- Pipe Sizes (NPS) — OD, wall, ID and flow area across Schedule 10 through 160. (83 rows)
- Socket Sizes — Which socket fits which bolt, and which SAE/metric pairs actually substitute. (31 rows)
- Bolt Torque — Computed from proof load, split by dry, plated and lubricated. (63 rows)
- Bulb Socket Sizes — E12 through E40 and the pin bases — the other kind of socket. (10 rows)
- Rebar Sizes — US #3–#18 and Canadian CSA — including the two that share a name and are not the same bar. (19 rows)