What the check engine light actually knows
The check engine light is the worst user interface in your car, and it's that way on purpose. One amber lamp, one message — something — covering everything from a loose fuel cap to a dying catalytic converter. It cannot tell you which, because it was never designed to tell you anything. It was designed to tell a mechanic that a stored code is waiting, and to satisfy a 1990s emissions regulation. Your anxiety is a side effect of a compliance requirement.
The car itself, meanwhile, knows a great deal — and it's all sitting in a port under your dashboard.
the monitors, watching everything
An OBD2 engine computer runs a set of continuous self-tests called monitors. The misfire monitor watches crankshaft speed for the tiny stumble a non-firing cylinder causes. The fuel system monitor compares how much fuel the engine should need with how much it's actually adding to keep the exhaust chemistry right. The oxygen sensor monitor watches the sensors themselves for sluggishness. The catalyst monitor compares the readings from sensors before and after the converter — if they start to look alike, the cat isn't doing its job. There are more: EGR, evaporative emissions (the fuel-cap one), thermostat behaviour. Each has thresholds, and each was written to catch emissions problems, which is why so many codes concern things that don't feel like problems from the driver's seat.
from noticing to nagging
A monitor seeing something out of range doesn't light the lamp immediately — cars would be unusable if they did. The typical sequence: fault seen once, stored as a pending code, no lamp. Fault seen again on a subsequent trip, promoted to a confirmed/stored code, lamp on. This two-strike rule filters out one-off oddities — a bad tank of fuel, an unusual cold start — and it's why the bay reads pending codes too: they're the early warning nobody's told about, sitting there before the light appears.
A flashing light means something different and worse: an active misfire severe enough to be dumping raw fuel into your catalytic converter, which is an expensive part with a low opinion of raw fuel. Solid light: book a diagnosis. Flashing light: stop driving.
the code is the beginning, not the diagnosis
Worth stating plainly: a code names a symptom, not a part. P0420 (catalyst efficiency low, the most-searched code on earth) doesn't say "buy a catalytic converter." It says the two oxygen sensors around the converter are reading too similarly — which could be a tired cat, a lazy sensor, an exhaust leak upstream, or an engine running rich enough to poison the whole system. The parts cannon starts here, and so does the money. What the code buys you is the ability to walk into a garage saying "P0420, and it's been running rich" rather than "the light is on" — which is a different conversation about a different bill. That's the honest value of reading your own codes: not that you become a mechanic, but that you stop being a hostage.