The full 240.4(D) lead-in and all seven caps — (D)(1) 18 AWG Cu 7 A, (D)(2) 16 AWG Cu 10 A, (D)(3) 14 AWG Cu 15 A, (D)(4) 12 AWG Al 15 A, (D)(5) 12 AWG Cu 20 A, (D)(6) 10 AWG Al 25 A, (D)(7) 10 AWG Cu 30 A — verbatim, plus the (E) tap and (G) specific-application exceptions, and seven worked examples where every number is computed by the shipped calculator core. Last updated 2026-08-31 (written for PanelWright v1.16).
Runs in your browser. No account, no install, data never leaves your machine. The panel card sizes every branch circuit against its load, the Conductor derating card applies the 310.15 corrections and the 240.4(D) small-conductor caps as the governing ampacity, and the voltage-drop card checks the 3%/5% notes — the exact pipeline this article explains.
For the small conductors the code calls out, the overcurrent-protection device shall not exceed a fixed cap — 14 AWG copper → 15 A, 12 AWG copper → 20 A, 10 AWG copper → 30 A, 12 AWG aluminum → 15 A, 10 AWG aluminum → 25 A (and, under specific conditions, 18 AWG copper → 7 A and 16 AWG copper → 10 A) — no matter what the ampacity column of Table 310.16 says, and that limit applies only "unless specifically permitted in 240.4(E) or (G)." That is why a 12 AWG THHN conductor, whose 90 °C ampacity is 30 A, still lives on a 20 A breaker: the wire can carry 30 A in that column, but the breaker on it is capped at 20 A by 240.4(D). The cap is on the device, not the wire.
The "240.4(A) through (G)" is the map: (A) power-loss hazard, (B) next-standard-size for devices ≤ 800 A, (C) devices over 800 A, (D) small-conductor caps, (E) tap conductors, (F) transformer secondaries, (G) specific applications. (D) is the one that surprises most people, because it overrides the ampacity you just looked up.
Two things to notice. First, the caps are on the overcurrent protection, not the ampacity — (D)(3) "14 AWG Copper. 15 amperes" is a breaker/fuse maximum, while Table 310.16 gives 14 AWG copper 20 A of ampacity in the 75 °C column. Second, (D)(1) and (D)(2) — 18 AWG and 16 AWG copper — carry conditions (continuous-load limits and specific device listing requirements) that the five common caps do not. Those two sizes are the appliance-circuit, thermostat, and low-current wire; the five without conditions are the ones you will hit on every residential and light-commercial circuit.
| 240.4(D) — Maximum overcurrent-protection rating (the five common caps) | ||
|---|---|---|
| Material | Size (AWG) | Max OCPD (A) |
| Copper | 14 | 15 |
| Copper | 12 | 20 |
| Copper | 10 | 30 |
| Aluminum / Cu-clad Al | 12 | 15 |
| Aluminum / Cu-clad Al | 10 | 25 |
(D)(1) 18 AWG Cu = 7 A and (D)(2) 16 AWG Cu = 10 A — conditional (see code text above). The core's smallConductorCap() models the five common caps and returns null for 18/16 AWG and 8 AWG-and-larger (no (D) cap). | ||
The shipped core encodes these five caps in smallConductorCap(size, mat) — the same function the Conductor derating card uses to set the governing ampacity. EX1 below records every cap against the core. Note the asymmetry that trips people up: aluminum caps sit one ampacity-size lower (12 AWG Al → 15 A vs 12 AWG Cu → 20 A), which is why aluminum branch conductors usually run one wire size larger than copper for the same circuit rating.
These two subsections are the only exceptions the (D) lead-in allows. The practical consequence, worked in EX7: a 14 AWG tap on a 20 A branch circuit is protected at the circuit's 20 A (240.4(E) → 210.19(A)(4)), not capped at 15 A; a motor on 10 AWG is protected per Article 430, not the 30 A (D) cap. For ordinary branch-circuit wiring — receptacles, lighting, small-appliance and laundry circuits — neither carve-out applies, and the (D) caps are absolute.
Every number below is produced by the shipped cores in app.js (smallConductorCap(), pickConductor31016(), derate31015(), nextStdBreaker()) running under node this session — see income-lab/compute_art17.js → calc_2404d_cited.json — and is asserted in the public test suite (test/run_tests.js in the public repo). Unless a row says otherwise, conductor picks are in the 75 °C column (110.14(C) terminations) at 30 °C ambient with ≤3 current-carrying conductors.
| Conductor | 240.4(D) cap (code text) | Core smallConductorCap() | Match |
|---|---|---|---|
| 14 AWG Cu | 15 A (D)(3) | 15 | ✓ |
| 12 AWG Cu | 20 A (D)(5) | 20 | ✓ |
| 10 AWG Cu | 30 A (D)(7) | 30 | ✓ |
| 12 AWG Al | 15 A (D)(4) | 15 | ✓ |
| 10 AWG Al | 25 A (D)(6) | 25 | ✓ |
| 8 AWG Cu | no cap (not a (D) size) | null | ✓ |
| 16 / 18 AWG Cu | 10 / 7 A (D)(1)–(2), conditional | null | not modeled (tool Table 310.16 starts at 14 AWG) |
The core models the five common caps exactly as the code states them, and correctly returns null for sizes outside (D) (8 AWG and larger) and for 16/18 AWG (which the calculator's Table 310.16 does not carry, since those sizes are not used for the branch-circuit and service sizing this tool does). That honest boundary is part of the design: the tool will not silently invent a cap it does not model.
| Step | Rule | Value |
|---|---|---|
| Required circuit | 20 A small-appliance / laundry branch circuit | 20 A |
| Ampacity pick (75 °C Cu) | pickConductor31016(20, cu, 75) | 14 AWG Cu — 20 A (passes ampacity) |
| 240.4(D) cap on 14 AWG Cu | (D)(3) | 15 A |
| Gate check | cap 15 A < required 20 A → OCPD illegal on 14 AWG | 14 AWG NOT usable |
| One size up: 12 AWG Cu | 75 °C ampacity 25 A; (D) cap 20 A | cap 20 A ≥ 20 A ✓ |
| Result | 12 AWG Cu, 20 A breaker | ampacity 25 A, OCPD 20 A |
This is the single most common branch-circuit mistake, and it exists because the conductor test and the breaker test look at different numbers. 14 AWG copper has 20 A ampacity in the 75 °C column — the ampacity test (210.19(A)(1)(a)) passes. But its overcurrent device is capped at 15 A by 240.4(D)(3), and a 15 A device is below the 20 A the circuit requires, so the circuit as built is non-compliant on the OCPD side. One size up — 12 AWG Cu (25 A ampacity, 20 A cap) — the cap covers the requirement. The core emits the warning automatically when it picks a 14 AWG conductor: "240.4(D): overcurrent device for this size is capped at 15 A."
| Column | 12 AWG Cu ampacity | 240.4(D) OCPD cap | Usable OCPD |
|---|---|---|---|
| 60 °C | 20 A | 20 A | 20 A |
| 75 °C | 25 A | 20 A | 20 A |
| 90 °C (THHN base) | 30 A | 20 A | still 20 A — the cap, not the column |
A 12 AWG THHN conductor has 30 A of ampacity in the 90 °C column — the number that tempts a 30 A breaker. Two independent rules stop it: (1) 110.14(C) termination ratings mean the ampacity you may use for sizing is the 75 °C value (25 A) on most equipment, not the 90 °C base (the 90 °C column exists for derating headroom, not for bigger breakers); and (2) 240.4(D)(5) caps the overcurrent device on 12 AWG copper at 20 A regardless of column. So 12 AWG copper always rides a 20 A breaker. The higher table columns give you derating headroom (310.15), not a bigger breaker — the cap is the ceiling the breaker cannot cross.
| Conductor | 75 °C ampacity | 240.4(D) OCPD cap | Usable OCPD |
|---|---|---|---|
| 12 AWG Al / CCA | 20 A | 15 A (D)(4) | 15 A — one size down from copper |
| 10 AWG Al / CCA | 30 A | 25 A (D)(6) | 25 A — one size down from copper |
| 14 AWG Al | — (not a (D) aluminum size) | none (null) | 14 AWG aluminum is not used for these circuits |
Aluminum branch conductors carry a lower OCPD cap than the same-size copper: 12 AWG aluminum (20 A ampacity) is capped at 15 A, and 10 AWG aluminum (30 A ampacity) at 25 A. The effect is that an aluminum circuit needing 20 A of OCPD must go to 10 AWG aluminum (25 A cap) — one size larger than the 12 AWG copper that does the same job. Combined with the 110.14(C) termination-rating differences, this is why aluminum branch wiring is sized up relative to copper.
| Quantity | Source | Value |
|---|---|---|
| Base ampacity (75 °C Cu) | Table 310.16 | 20 A |
| Derated (30 °C, 3 CCC) | derate31015() — both factors 1.00 | 20 A |
| 240.4(D) cap | (D)(3) | 15 A |
| Effective (governing) ampacity | min(derated 20, cap 15) | 15 A — the cap, not the ampacity |
In normal conditions (30 °C ambient, ≤3 current-carrying conductors) the 310.15 factors are both 1.00, so the derated ampacity equals the base (20 A). But 240.4(D) caps it at 15 A — so the effective ampacity of a 14 AWG copper branch conductor is 15 A, not 20 A. The core's derate31015() returns exactly this: baseAmp 20, deratedA 20, capA 15, effectiveA 15, with the note "240.4(D) cap (15 A) governs — the derated ampacity (20 A) is NOT usable for a copper 14 AWG." This is the number your load must not exceed.
| Quantity | Source | Value |
|---|---|---|
| Base ampacity (75 °C Cu) | Table 310.16 | 35 A |
| Derated (40 °C, 8 CCC) | derate31015() — 0.88 × 0.70 | 21.56 A |
| 240.4(D) cap | (D)(7) | 30 A |
| Effective (governing) ampacity | min(derated 21.56, cap 30) | 21.56 A — the derated ampacity, not the cap |
The mirror image of EX5: here the derated ampacity (35 × 0.88 × 0.70 = 21.56 A) falls below the 30 A cap, so the derated ampacity is the governing number, not the cap. The cap is a ceiling, not a floor — when derating already brings the usable ampacity under the cap, the cap stops being the constraint. The core's derate31015() returns baseAmp 35, deratedA 21.56, capA 30, effectiveA 21.56, with the note "derated ampacity 21.56 A governs here." The same 10 AWG copper that carries 30 A in a clean, cool run carries only 21.56 A in this raceway.
| Case | Carve-out | OCPD | Why the (D) cap doesn't bind |
|---|---|---|---|
| 14 AWG tap on a 20 A branch circuit | 240.4(E) → 210.19(A)(4) | 20 A (circuit rating) | Tap conductors are protected per (E), not the 15 A (D)(3) cap |
| Motor branch circuit on 10 AWG | 240.4(G) → Article 430 | per 430 (e.g. 30 A for a representative 28 A calc) | Motor OCPD set by 430.52 / 430.53, not the 30 A (D)(7) cap |
These are the two exceptions the (D) lead-in allows ("Unless specifically permitted in 240.4(E) or (G)"). A 14 AWG tap that feeds a household range or cooking appliance is protected at the branch-circuit rating — 20 A, not 15 A — because it is a tap conductor under (E). A motor circuit's overcurrent protection is governed by Article 430 (short-circuit/ground-fault per 430.52, overload per 430.32), so the (D) cap is not the sizing rule. For the ordinary branch circuits this article is about — receptacles, lighting, small-appliance, laundry — neither carve-out applies, and the (D) caps are the ceiling. The 210.19(A) continuous-load article works the tap-vs-branch distinction in the branch-circuit context.
The panel card sizes every branch circuit against its load and flags continuous loads; the Conductor derating card applies the 310.15(B)(1) + 310.15(C)(1) corrections and the 240.4(D) small-conductor caps as the governing ampacity (the exact EX5/EX6 pipeline); the 220.82 card sizes the optional dwelling service and its conductors (Table 310.16, 110.14(C) columns); and the voltage-drop card checks any run against the 3%/5% informational notes using Ch. 9 Table 8. Breaker picks use the NEC 240.6(A) standard-size list. All results print in the rollup CSV export and the branded PDF project report.
gov.law.nfpa.nec.2017, fetched this session); the (D) lead-in word-identical in 2020 (2020-based SunCam PDH on disk cites "240.4(D)(3)" = 14 AWG Cu 15 A) and the 2023 PDH change analysis records no 2023 change to the (D) caps, so the itemization + values are carried through 2023. (2) Section title "Protection of Conductors" (240.4) across 2014/2017/2020/2023 — up.codes section index (fetched this session, up_2404_snip.html recommendedSections: identical name in all four editions, isPaywalled: false). (3) 240.4(E) and 240.4(G) lead-ins + the Table 240.4(G) application list — verbatim 2017 NEC (archive.org, on disk). (4) 240.4(D) cap values — the shipped core's smallConductorCap() (14 Cu→15, 12 Cu→20, 10 Cu→30, 12 Al→15, 10 Al→25) cross-checked against the verbatim 2017 (D)(3)/(D)(5)/(D)(7)/(D)(4)/(D)(6) text and the conductor-sizing article's 2017/2020/2023 verification; the condensed five-value form confirmed in the 2023-NEC-based study print's Table 310.16 asterisk footnote (codeelec_2023.txt, on disk). (5) 310.15(B)(1) ambient factors (0.88 for 36–40 °C @75 °C) and 310.15(C)(1) CCC factors (70% for 7–9 CCC) used in EX6 — the shipped core's tables, coordinate-verified from the 2023-NEC print in a prior session. The worked examples EX1–EX7 are computed by the shipped cores under node this session (income-lab/compute_art17.js → calc_2404d_cited.json) and asserted in the public test suite. If you find an error in this article or the calculator, the code is plain HTML/JS in the public repo — read it, fix it, share it (MIT).