Resistor codes: colour bands, SMD digits and EIA-96
How to read every resistor marking, why the E-series values look arbitrary, and which codes are genuinely ambiguous — with the tolerance derived, not looked up.
Four schemes cover almost every resistor you will meet, and three of them share the same handful of characters:
colour bands 4, 5 or 6 digits, multiplier, tolerance, tempco
3-digit SMD 103 two figures and a power of ten = 10 kΩ
4-digit SMD 1002 three figures and a power of ten = 10 kΩ
EIA-96 01C an index into E96, and a decade = 10 kΩ
The resistor decoder reads all of them, and the capacitor code decoder does the same job for the three-digit codes on ceramics. What follows is the part a decoder cannot do for you: which reading is right when a marking is ambiguous, why the stocked values are the odd numbers they are, and when the tolerance printed on the part stops being the largest error in it.
Reading direction is the failure that gives a wrong answer
Colour bands have no built-in orientation, and reading a resistor backwards does not produce nonsense — it produces a different, entirely plausible value. Green-blue-red-gold is 5.6 kΩ ±5 %; the same part turned round reads gold-red-blue-green, which decodes as 2.6 MΩ if you ignore that gold cannot be a first digit.
Three cues resolve it:
- The gap. On most parts the space before the tolerance band is wider than the spaces between the others.
- Gold and silver. Neither is a digit. They appear only as a multiplier (×0.1, ×0.01) or a tolerance (±5 %, ±10 %), so a gold or silver band is almost always the last one.
- The body colour. Beige bodies tend to be 4-band carbon film; blue or grey bodies tend to be 5-band metal film. This is a convention, not a standard.
None of them survives a part that has been hot, and the first two both fail on a 5-band ±1 % resistor whose tolerance band is brown — the same brown that is a perfectly good first digit. Which is why the procedure ends with a meter.
The values are not arbitrary, and they are not quite geometric either
E12, E24 and E96 come from IEC 60063, and the idea behind them is a geometric progression: values per decade, each a factor above the last. For E24 that ratio is 1.1007, so the ideal series would run 10, 11.01, 12.12, 13.34, 14.68, …
The published series is not simply those numbers rounded to two significant figures, and the difference is not small. Comparing each E24 value with its ideal:
value ideal error
11 11.01 −0.06 %
13 13.34 −2.51 %
30 28.73 +4.42 %
33 31.62 +4.36 %
47 46.42 +1.26 %
91 90.85 +0.17 %
Rounding to two figures would give 26, 29, 32, 35, 38, 42, 46 and 83 where E24 has 27, 30, 33, 36, 39, 43, 47 and 82 — eight of the twenty-four values. E24 is a conventional table, not a computed one. The run from 27 to 47 sits systematically high because E24 contains E12 as every other value, and E12 is not the rounded progression either: 27, 33, 39, 47 and 82 are E12 values, and the exact points would be 26.1, 31.6, 38.3, 46.4 and 82.5. The three E24-only values between them — 30, 36 and 43 — sit close to the geometric mean of their E12 neighbours (29.9, 35.9 and 42.8) rather than on the ideal curve.
The worst, 30, is 4.4 % above where a true geometric series would put it — which is nearly the whole ±5 % tolerance the series is sold with. E96 is different in kind: every one of its 96 values is exactly rounded to three significant figures, so nothing in it is more than 0.43 % from ideal — which is part of why the precision series is the one worth relying on if a ratio matters.
Why E24 comes with 5 % and E96 with 1 %
The pairing looks like a marketing convention and is not. It falls out of one requirement: adjacent values’ tolerance bands should just meet, so that every resistance in the decade is covered by some stocked part and none is covered twice.
If neighbouring values differ by a factor , and each carries a tolerance , then the upper edge of one meets the lower edge of the next when , which rearranges to
Evaluating it against what each series is actually sold at:
series derived sold at
E6 18.96 % ±20 %
E12 9.56 % ±10 %
E24 4.79 % ±5 %
E48 2.40 % ±2 %
E96 1.20 % ±1 %
E192 0.60 % ±0.5 %
Every pairing lands within a fraction of a point — and the small discrepancies matter, because the coarse series are tables of two-figure values rather than the exact progression. Drawing the tolerance bands on the number line shows where they do not quite meet. E12 at ±10 % has two gaps, between 12 and 15 and between 22 and 27; E24 at ±5 % has seven, and the widest, between 13 and 15, runs from 13.65 to 14.25 — resistances no stocked part at that tolerance is guaranteed to reach. E96 at ±1 % is the opposite case: its bands would meet at 1.20 %, so at ±1 % they are narrower than the step almost everywhere, and a hairline gap separates all but four adjacent pairs. The ±1 % bands cover 83 % of the decade, and the gaps are the point — the sold tolerance is tighter than the one that would make the bands touch. The consequence is still worth stating plainly: the series and the tolerance are one decision, not two. The E-series finder searches a chosen grid for the closest single value, series pair or parallel pair to any target, and shows what each one misses by. Buying 1 % parts from an E24 reel throws away most of the precision, because the value grid is too coarse to place the tighter band anywhere useful. And asking for a value between two E24 values is really asking for a tighter tolerance.
The SMD codes, and the one that is not a code
Three-digit and four-digit markings are direct encodings: the last character is
the exponent and the rest are significant figures. 103 is 10 × 10³ = 10 kΩ.
1002 is 100 × 10² = 10 kΩ. An R marks a decimal point for values under
10 Ω, so 4R7 is 4.7 Ω and R22 is 0.22 Ω.
EIA-96 is different in kind. 01C does not encode 10 kΩ — the 01 is a
position in the 96-value E96 table, which happens to hold 100, and the C is
a decade multiplier of ×100. To read it you need the table.
The reason for that indirection is a character count. A 1 % part needs three
significant figures, and a three-digit code carries two. There is no way to
write 1.02 kΩ in three digits, because 102 already means 1 kΩ. Four digits
solve it and do not fit on an 0402. So the industry gave up on encoding and
started indexing.
The markings that are genuinely ambiguous
Nothing on a chip resistor says which scheme it uses. These are the cases where the characters alone do not settle it, and how the decoder resolves each:
10R— 10 Ω, R as a decimal point. Read as EIA-96 it would be index 10 (124) times ×0.01, or 1.24 Ω. The R-notation reading wins because it is overwhelmingly more common; the decoder tries it first and says so.102— 1 kΩ. It cannot mean 1.02 kΩ; that value has no three-digit representation, which is what EIA-96 exists to fix.1002— 10 kΩ, four-digit. A four-character marking needs an 0603 or larger, so package size is itself a clue.000or0— a zero-ohm link, deliberately fitted. Not a missing part, and worth checking before assuming an assembly error.10K— not a marking at all. K and M are units, not EIA-96 decade letters, so this is somebody’s handwriting or a schematic reference. A 10 kΩ 1 % chip is marked01C; a 10 kΩ 5 % chip is marked103.
The letter spellings inside EIA-96 add their own small trap: R and Y both mean ×0.01, and S and X both mean ×0.1. Different vendors use different halves of those pairs.
When the tolerance stops being the error
The number printed on the part is its tolerance at the temperature it was measured at. Drift adds to it, and the arithmetic is one division:
0.1 %, 25 ppm/°C 40 °C
0.1 %, 50 ppm/°C 20 °C
1 %, 50 ppm/°C 200 °C
1 %, 100 ppm/°C 100 °C
5 %, 200 ppm/°C 250 °C
A 0.1 % part with an ordinary 25 ppm/°C coefficient has spent its entire tolerance by 40 °C above where it was calibrated — which is less than the −40 to +85 °C span the rest of the board is specified over. Buying a tighter tolerance without buying a tighter temperature coefficient buys almost nothing.
This is also why a precision divider is specified by its tracking rather than by either resistor’s tolerance: two resistors in the same package, at the same temperature, drift together, and their ratio holds far better than either value does. The voltage divider calculator works the loading and the power out; the ratio stability is a part-selection question, and it is answered by a matched network rather than by two good resistors.
Reading an unknown part
- Establish the direction before reading anything. The wider gap, or the gold or silver band, marks the tolerance end.
- Count. Four, five or six bands; three or four characters. A letter in a
chip marking means EIA-96 unless it is an
R. - Decode in order: significant digits, then the power of ten, then the tolerance.
- Measure it. Out of circuit, because in circuit you are measuring the parallel combination of the resistor and everything else on the node.
That last step is not a formality. Every ambiguity on this page produces a plausible wrong answer rather than an obvious failure, so a decode is a hypothesis and the meter is the test. And the meter has its own trap: in circuit, a reading below the decoded value is far more often the parallel path — a second resistor, a protection diode, a winding, a supply rail — than a part out of tolerance, which is why step 4 says out of circuit.
Work any marking out with the resistor decoder, which applies the precedences above and reports which rule it used, and refuses codes that have no valid reading rather than guessing at one.