🚨 60-Second Triage — Light flashing, not steady: active misfire burning through your catalytic converter right now. Reduce speed and load, get to a shop today, or stop. Light plus overheating, oil-pressure warning, or loss of power steering: pull over — the light is the least of it. Light plus a hard metallic knock: stop driving. Light plus a rattle at cold start on a high-mileage engine: check your oil level before you drive anywhere; that combination is item 2 below. Steady light, car drives normally: you have days. Do not clear the code, do not disconnect the battery — read the protocol below first, because the data you are about to erase is worth more than the light is annoying.
A check-engine code is not a diagnosis. It is a symptom with a part number attached, and that attachment is where the money goes.
CarMD's analysis of millions of real repairs puts the average check-engine-light repair at $554, which surprises almost everybody who has ever received a quote. The average is low because most codes really are sensors, plugs, vacuum leaks and gas caps. The horror stories come from a small tail of codes that end in assemblies — converters, timing chains, transmissions — and that same data set puts catalytic-converter work as the most common check-engine repair of all, averaging about $1,511.
That is the whole problem in two numbers. The most expensive common repair sits behind a code that frequently has a $200 cause, and the code itself cannot tell you which one you have.
By the end of this guide you will know which ten codes carry four-figure risk, what each one actually costs in 2026, the specific cheap cause behind every single one, and the confirmation test that separates them — plus three pieces of OBD-II knowledge that almost no consumer has and every professional does: freeze-frame data, permanent codes, and Mode 6.
I built Pulscar — an AI tool that identifies car problems from a 30-second recording — after $6,000 of misdiagnosed repairs, beginning with a $380 bill for an "engine knock" that turned out to be a loose heat shield and a $5 zip tie. Nobody lied to me. A code and ninety seconds of listening bought a pattern-match to the expensive answer, because that is what a code and ninety seconds are worth. Everything below is the thing I did not have that day.
How to use this guide
Find your code, read that entry, and read its cheap cause paragraph twice — that is the paragraph that decides your bill. Every entry has the same five parts: what the code literally means, the expensive cause, the cheap cause, the confirmation test that separates them, and the exact sentence to say at the counter. Two entries include a full do-it-yourself path. If you have several codes at once, read the section on code order before anything else, because fixing them in the wrong sequence is its own expense.
One rule overrides everything here: the code names a measurement that failed, never the part that caused it. P0420 does not say "catalytic converter." It says "the two oxygen sensors are reading too much alike." P0700 does not say "rebuild." It says "the transmission module has something to tell you." Every four-figure quote in this guide comes from translating a measurement into a part without doing the work in between, and every protective question below exists to put that work back.
Claims marked 🟢 rest on a recall, bulletin, program or settlement listed in the Sources section at the end, with the index so you can pull the document yourself. Price ranges are shop-price estimates compiled from published repair-cost sources — marked ⚪, estimates rather than measurements from a dataset we own.
First: is this actually an expensive code? The 5-minute filter
The steady-versus-flashing split. A flashing light is a different vehicle state, not a more urgent version of the same one. It means an active misfire is dumping unburned fuel into the exhaust, where it superheats the catalytic converter. This is the mechanism that converts a $200 coil into a $1,300 converter, and it works fast — a long highway drive is enough. Flashing means today.
The one-code-versus-many split. Multiple codes are usually one fault with several downstream effects, not several faults. A vacuum leak sets lean codes, misfire codes and fuel-trim codes at once. Fix the root and the rest vanish. The ordering rule that professionals use: circuit and sensor faults before performance faults, and misfires before catalyst codes, always. A shop quoting a converter while an unresolved misfire is in the same code list is doing it backwards.
The pending-versus-stored-versus-permanent split. A pending code has failed one test cycle and has not lit the light — useful early warning. A stored code has failed enough cycles to light it. A permanent code is the one nobody tells you about: since roughly 2010, most vehicles store permanent DTCs that no scan tool and no battery disconnect can erase. They clear only when the car itself re-runs the test and passes, over several drive cycles. If you were planning to clear codes before an inspection, this is why it does not work.
The free-data split. Most parts stores read codes free. Very few drivers know to ask for more than the number. Ask for three things: the code, the freeze-frame data, and any pending codes. Freeze frame is a snapshot of engine speed, coolant temperature, load and fuel trims at the exact moment the fault set — it is frequently the difference between a diagnosis and a guess, and it is free.
The do-not-clear rule. Clearing the code before diagnosis erases freeze frame, resets readiness monitors, and buys you nothing except a light that comes back. If the car is drivable, drive it to the diagnosis with the light on.
The 10-minute protocol, before you spend anything
Do these in order. Nothing here costs money and every step removes possibilities.
- Look at the light itself. Flashing → stop reading and act; that is an active misfire cooking your converter. Steady → continue.
- Note the conditions right now, in writing. Cold or warm, idling or under load, just after fuelling, just after a wash, just after any recent repair. "Came on twenty minutes into a highway drive, warm" is diagnostic information; "came on last week" is not.
- Pop the hood and check two levels. Engine oil on the dipstick, coolant in the reservoir. Low oil → items 2 and 7 have a free first step. Low coolant → item 10, and look for a leak before topping up.
- Get the code read free at a parts store — and ask for three things, not one. The code number, the freeze-frame data, and any pending codes. Photograph the screen. Freeze frame is the snapshot of engine speed, load, temperature and fuel trims at the moment the fault set, and it is often worth an hour of a technician's time.
- Read the code's last digit if it is a misfire. P0303 names cylinder three. P0300 does not name anything and means look for something shared — fuel, vacuum, timing.
- Count the codes and sort them. Circuit and sensor faults get addressed before performance faults; misfires before catalyst codes, always. Multiple codes are usually one fault with downstream effects.
- Do not clear anything. Clearing erases freeze frame, resets readiness monitors, and leaves any permanent code exactly where it was. The light is not the problem.
- Record thirty seconds of the engine if there is any noise at all. Hood up, windows open, phone twelve to eighteen inches from the source, every noise-reduction feature off. The code says which test failed; the sound says what is failing, and the two together are close to what a good technician gets in the first hour.
Find your situation: eight ways people arrive here
"P0420 and a $2,200 converter quote." → Item 3, then the Mode 6 paragraph inside it. Do not authorise anything first.
"P0700 and the shop said transmission rebuild." → Item 1. P0700 is a pointer code; a rebuild quoted from it alone means the actual sub-code was never read.
"P0016 and a rattle at cold start." → Item 2, and check your oil level tonight — that combination has a free first step.
"The light is flashing." → Item 4 and the triage box. This is the one genuine emergency in this guide.
"Multiple codes at once and I don't know where to start." → The code-order rule above, then the item matching the lowest-numbered circuit fault.
"It failed emissions but the light isn't on." → Readiness monitors, not a code — somebody cleared codes recently. The After section covers the drive cycle.
"P0171 or P0174, runs fine, decent fuel economy." → Item 9. This is the cheapest item here and one of the most over-repaired.
"Turbo car, P0299, loses power on hills." → Item 5, and get a boost-leak test quoted before anybody says the word turbocharger.
What actually determines the size of your bill
Whether the cheap cause was tested or assumed. The largest single variable in this entire guide. Every code below has one, each takes under thirty minutes to check, and each has produced four-figure savings for real owners.
How long the code has been on. This is the compounding factor. A misfire ignored for weeks poisons a converter. A lean condition ignored damages pistons. A P0016 ignored on a stretching chain ends in valve-to-piston contact on an interference engine. Every deferred code has a specific expensive thing it becomes.
Engine layout. A knock sensor on a four-cylinder is an hour. The same sensor on many V8s sits under the intake manifold and becomes a five-hour job for the same $60 part. Access, not the part, sets the price on items 6, 8 and much of item 4.
Your state's emissions rules. In California and the states following its standards, catalytic converters must be CARB-compliant, which roughly doubles the part cost — and a non-compliant unit re-sets the code within weeks, so the saving is imaginary.
OEM versus aftermarket. Marginal on sensors, enormous on converters ($450-$900 aftermarket versus $1,100-$2,600 OEM), and genuinely risky on ignition coils, where budget parts have a real reputation for early failure.
Dealer versus independent. Typically 30-50% on labor-heavy items. The exception worth naming: transmission sub-codes and manufacturer-specific systems sometimes genuinely need factory-level tooling, and the dealer comparison guide maps which jobs those are.
Whether anyone cleared the code first. A cleared code with no freeze frame turns a fifteen-minute diagnosis into an hour of reproduction driving, billed to you.
The ten codes, ranked by what they actually cost
1 · P0700 / P0730 — transmission control system
What the code literally means. The transmission control module detected something and set its own code, then raised P0700 in the engine computer as a flag saying "come look over here." A basic code reader sees only the flag. A scan tool that talks to the transmission module sees the actual fault — a solenoid circuit, a speed sensor, a pressure fault, a specific gear ratio error.
The expensive cause. Internal wear: worn clutch packs, a failing valve body, or a converter. This is real and it is what P0730 sometimes indicates, at $1,500-$5,000 depending on the vehicle and whether it is rebuilt or replaced.
The cheap causes, and there are three. Low or badly degraded fluid, a single shift solenoid ($200-$600 installed), or a wiring or connector fault at the transmission harness — a genuinely common failure that mimics an internal problem exactly. On many vehicles the entire complaint resolves with a solenoid pack.
The confirmation test. Insist that the transmission module's own codes are read and written on the estimate. If the paperwork says only "P0700," nobody has diagnosed anything. Ask for the fluid level and condition to be checked and reported, and for the transmission harness connector to be inspected for corrosion or oil intrusion.
At the shop — say this: "P0700 is a pointer code. What are the actual codes stored in the transmission module? I'd like them listed on the estimate, plus the fluid condition, before we discuss any internal work."
2 · P0016 / P0017 — camshaft and crankshaft correlation
What the code literally means. Two sensors disagree about where the engine is in its cycle. The computer cannot tell you why — only that the relationship is out of tolerance.
The expensive cause. A stretched timing chain, a failed tensioner, or a jumped tooth. On an interference engine, this is also the genuinely dangerous item on this list: if a stretched chain jumps far enough or snaps, pistons and valves occupy the same space and the engine is finished in seconds. That is why a P0016 with a rattle should not be driven casually.
The cheap causes. Variable valve timing is hydraulic — it runs on engine oil through fine passages and a screened solenoid. Low oil level, degraded oil, or the wrong viscosity produces this code on a mechanically healthy engine, and so does a clogged VVT solenoid screen ($150-$400 to replace). Poor oil-change history is the single best predictor of which cause you have.
The confirmation test, and it is nearly free. Fresh oil and filter of the correct viscosity, then drive it and see whether the code returns. Separately: a rattle at cold start that has been getting longer over months — one second, then three, then five — points at chain stretch rather than a solenoid. Duration and trend, not pitch, is the distinguishing feature, which is exactly what a recorded comparison answers better than memory. The ticking-noise guide separates the sounds in detail.
At the shop — say this: "Before anyone quotes timing components, I want fresh oil at the correct viscosity and the VVT solenoid screen inspected, then a re-check to see whether the code returns. If it does, I want the chain stretch measured or shown to me, not inferred."
Got a code and a noise? Record 30 seconds and get an independent read — free →
A code tells you which test failed. The sound tells you what is failing. Record thirty seconds of your engine and Pulscar's AI compares the acoustic signature against catalogued failure patterns, then returns the most likely cause, whether it is safe to drive, and the fair 2026 price — free, no card, about ten minutes. Read together with a code number, the two are close to what a good technician does in the first hour. The report arrives by email as a PDF, so use the address you actually read.
3 · P0420 / P0430 — catalyst efficiency below threshold
What the code literally means. Two sensors, one before the converter and one after, should read very differently if the converter is doing its chemistry. When their signals converge, this code sets. Note what it does not say: that the converter is broken.
The expensive cause. A genuinely spent converter — common past 120,000-150,000 miles, and effectively guaranteed on any car that ran with a misfire for a long time, because raw fuel destroys the substrate.
The cheap causes, all three. A lazy downstream oxygen sensor ($180-$350 installed) sets this code with a perfectly good converter. A small exhaust leak ahead of the converter ($150-$400) lets fresh air skew the reading. An unresolved misfire or a rich condition sets it as a side effect — and fixing that sometimes lets a marginal converter recover.
The confirmation test almost nobody asks for. Mode $06. It reports the catalyst monitor's actual test result as a number against its threshold, so instead of being told the converter failed you can see by how much. Marginal, with a misfire recently fixed, is a wait-and-retest situation. Far below threshold with clean history is a converter. Ask for the Mode 6 catalyst values in writing before authorising anything. A shop that will not produce them is quoting the most expensive part from a code number.
On legality and theft. In California-standard states only CARB-compliant converters are legal, and a non-compliant part sets the code again within weeks. Separately: converter theft is now common enough to be a diagnosis in itself — a stolen converter announces itself as a shockingly loud exhaust, not a subtle code.
At the shop — say this: "Before we replace the converter I want three things: the Mode 6 catalyst monitor values against threshold, the downstream O2 sensor actually tested rather than assumed, and a check for exhaust leaks upstream. If it's genuinely the converter, quote me both CARB-compliant aftermarket and OEM."
Why do check engine light repair quotes vary so wildly for the same code? Because a diagnostic trouble code reports a failed measurement, not a failed part, and the gap between those two things is filled by diagnostic labor that not every shop performs. P0420 is the clearest example: the same code costs about $180 when the cause is a tired downstream oxygen sensor and about $2,400 when an OEM catalytic converter is fitted without testing that sensor first. CarMD's repair data shows catalytic-converter work as the most common check-engine-light repair at roughly $1,511 average, while the overall average check-engine repair is $554 — a gap that exists largely because expensive assemblies get replaced on the strength of code numbers. The defence is always the same three words: show me the measurement. Millimetres, pressure readings, Mode 6 values, a swapped coil. Pulscar was built to give you an independent second opinion before that conversation starts.
4 · P0300 and P0301–P0308 — engine misfire
What the code literally means. The computer watches crankshaft acceleration between firing events. When one cylinder contributes less than it should, this sets. P0301 through P0308 name the cylinder outright, which makes this the most self-diagnosing code in the whole list. P0300 means random or multiple, which usually points at something shared: fuel, vacuum, or timing.
The expensive causes. Low compression, a burnt valve, or a head gasket — $1,200 to $3,500 depending on engine. On a turbo or direct-injection engine, carbon buildup on intake valves is a real mid-priced cause.
The cheap causes. A single ignition coil ($150-$350 installed, $60-$120 in parts). Worn spark plugs ($40-$90 for a set on an accessible engine). A vacuum leak. A dirty or failing fuel injector. On a numbered cylinder code, the cheap causes account for the large majority of cases.
The confirmation test that costs nothing. Swap the suspect coil with a neighbouring cylinder's coil, clear the code, drive. If the misfire follows the coil to the new cylinder it is the coil, definitively. If it stays on the original cylinder it is the plug, the injector, or compression — and you have just avoided buying the wrong part. The same swap works with injectors on engines where they are accessible.
Fix it yourself — genuinely realistic here. Spark plugs on a four-cylinder or the front bank of a V6: $40-$90 in parts, an hour, a torque wrench and a plug socket. A single coil: two bolts and a connector. The honest limit: stop if the plug threads feel wrong going in — a cross-threaded aluminium head is a $600-$1,500 repair — if the engine has a flashing light, or if the misfire is on a rear bank under an intake manifold. And never chase a P0300 with parts; random misfires need diagnosis, not shopping.
The escalation that costs the most. A flashing light means raw fuel is reaching the converter. Continuing to drive turns item 4 into item 3, and the difference is roughly a thousand dollars.
At the shop — say this: "The code names cylinder three. Can you swap that coil to another cylinder and confirm the misfire moves before we order parts? And what's the plug condition — when were they last replaced?"
5 · P0299 — turbocharger underboost
What the code literally means. Requested boost minus actual boost exceeded a threshold. Anywhere in the pressurised path can cause that — it is a plumbing complaint before it is a turbocharger complaint.
The expensive cause. A worn turbocharger with shaft play or damaged vanes, or a failed variable-geometry actuator on a diesel. Real, and priced accordingly.
The cheap causes. A split or popped-off charge pipe or intercooler boot ($20-$150). A loose clamp ($5). A stuck diverter or wastegate actuator ($150-$400). A leaking intercooler. On many turbo cars a $20 rubber elbow is the single most common cause of this code.
The confirmation test. A boost-leak test — the shop pressurises the intake tract with regulated air and listens for the escape. It takes under an hour, it finds split boots and loose clamps instantly, and it is the only honest first step. Ask separately whether shaft play was checked by hand at the turbo inlet.
At the shop — say this: "Before we discuss a turbocharger, I want a boost-leak test on the charge pipes and intercooler, and the shaft play checked by hand. If those are clean, then let's talk about the turbo or the actuator."
6 · P0325 — knock sensor circuit
What the code literally means. The knock sensor's signal is out of range or absent. With it gone, the computer retards ignition timing defensively, which costs power and fuel economy but rarely feels dramatic.
The expensive cause. The sensor itself, made expensive by where it lives. On several common V8 and V6 layouts it sits in the engine valley beneath the intake manifold, so a $60 part becomes a four-to-five-hour job with gaskets.
The cheap cause that gets skipped. The wiring harness and connector at the sensor, which sits in a hot, damp place and corrodes. On some engine families a degraded harness is more common than a failed sensor, and repairing it is a fraction of the price. Water intrusion under the intake is a documented pattern.
The confirmation test. Ask for a resistance and signal check at the sensor connector, and for the harness to be inspected for corrosion or chafing, before the manifold comes off. If the manifold has to come off anyway, ask what else is worth doing while it is open — plugs on the rear bank, gaskets, the harness itself. This is the clearest related-work discount on the list.
At the shop — say this: "Since the intake has to come off, has the harness and connector been tested first — and if we do go in, what else should we do while it's open so we're not paying this labor twice?"
7 · P0011 / P0014 — variable valve timing over-advanced
What the code literally means. The cam is advanced further than commanded, or will not move back. The system is hydraulic, driven by engine oil through a solenoid with a fine mesh screen.
The expensive cause. A failed cam phaser or actuator, or a timing component problem overlapping with item 2.
The cheap causes. Old, thin, low or wrong-viscosity oil. A clogged VVT solenoid screen. A failed solenoid ($150-$400 installed). Sludge from long oil intervals is the underlying story in a large share of these.
The confirmation test. Change the oil and filter with the correct viscosity, clear the code, drive a week. If it stays away, that was the repair. If it returns, have the solenoid removed and its screen inspected — the screen tells the story visually, and you can be shown it.
At the shop — say this: "Fresh oil at the correct spec first, then re-check. If the code comes back, pull the VVT solenoid and show me the screen before we quote a phaser."
Can an oil change really clear a check engine light? For a specific and surprisingly common family of codes, yes — and it is the cheapest legitimate diagnostic step available to a driver. Variable valve timing systems are hydraulic: they move camshafts using engine oil pressure routed through fine passages and a solenoid with a mesh screen. When oil is low, degraded, sludged or the wrong viscosity, the cam cannot reach its commanded position and the computer sets P0011, P0014, P0016 or P0017 on a mechanically healthy engine. Fresh oil at the correct specification, followed by a week of driving, resolves a meaningful share of these outright. It will not touch a stretched timing chain, a failed phaser or anything unrelated to oil pressure — but it costs under $110, it is a service the car needed anyway, and it is the honest first move before anyone quotes four figures in timing components. Pulscar flags the cold-start rattle that distinguishes the two.
8 · P0335 — crankshaft position sensor circuit
What the code literally means. The crank sensor's signal is missing, erratic, or out of correlation. Without it the engine cannot time ignition or fuel, so a failing one produces stalls rather than roughness.
The expensive cause. Access again. On most engines the sensor is $60-$150 and reachable, giving a $250-$450 job. On some layouts it sits behind the transmission, and the labor takes the bill to $900-$1,500.
The cheap cause. The connector and its wiring — heat-soaked, oil-contaminated, or chafed. Also a reluctor ring with debris on it. Both are inspection findings, not parts purchases.
The confirmation test, which is a symptom pattern rather than a tool. A crank sensor that is failing thermally stalls the engine once hot and refuses to restart until it has cooled for twenty to forty minutes, then starts perfectly. That pattern is close to diagnostic on its own, and it is routinely misread as a fuel pump — an expensive place to guess wrong. Note the ambient conditions and the time-to-restart, and hand that to the shop.
At the shop — say this: "It stalls when hot and restarts after about half an hour of cooling. Can you check the crank sensor connector and wiring first, and tell me whether the sensor is accessible on this engine or behind the bellhousing, so I know what we're pricing?"
9 · P0171 / P0174 — system too lean
What the code literally means. Long-term fuel trim hit its limit adding fuel. Either unmetered air is getting in, or measured fuel is not arriving.
The expensive causes. A failing mass airflow sensor ($200-$450 installed), a weak fuel pump ($500-$900), or clogged injectors.
The cheap causes. A cracked intake boot or split vacuum hose ($15-$40). A stuck-open PCV valve ($20-$60). A dirty MAF sensor — cleanable with a $10 aerosol. A leaking intake manifold gasket. On high-mileage cars these dominate.
The rule that narrows it for free. Lean on both banks (P0171 and P0174 together) means the cause is upstream of where the intake splits — a vacuum leak, the PCV system, the MAF, or fuel supply. Lean on one bank only means look at that side — an injector, an exhaust leak ahead of that bank's sensor, or the sensor itself. That single distinction eliminates half the possible causes before anyone opens the hood, and almost no consumer knows it.
Fix it yourself — a real one. Cleaning the MAF sensor: $10 of MAF-specific cleaner (never brake cleaner, never touching the wire), ten minutes, and it resolves a meaningful share of these. Replacing a cracked intake boot: $15-$40 and two clamps. Inspecting for vacuum leaks: run the engine and listen for a hiss, or watch idle speed change when you gently squeeze suspect hoses. The honest limit: do not spray flammable starting fluid around a running engine to hunt leaks, which is common internet advice and a genuine fire risk — a professional smoke test is $60-$120 and finds every leak in fifteen minutes.
At the shop — say this: "Is it lean on one bank or both? If both, I'd like a smoke test for vacuum leaks and the PCV checked before we talk about a MAF or a fuel pump."
10 · P0128 — coolant temperature below thermostat regulating temperature
What the code literally means. The coolant temperature sensor never reported the expected warm-up within the expected time. Usually a thermostat stuck open, letting coolant circulate before the engine is ready.
The expensive cause. On some engines the thermostat is part of a housing assembly with the sensor and outlets integrated, which pushes the job to $450-$600.
The cheap causes. The thermostat alone ($180-$350 installed). A failed coolant temperature sensor ($120-$220). Low coolant level — free to check and a genuine cause.
Why it matters even though it is cheap. An engine that never reaches temperature runs a richer mixture, returns worse fuel economy, produces weak cabin heat, and — the part that catches people — can prevent certain readiness monitors from ever completing, which fails an emissions inspection regardless of whether the light is on. This is the code most likely to surprise someone at an inspection station.
Fix it yourself — sometimes. On engines where the thermostat housing is at the top and easily reached, this is a two-hour job with $30-$70 in parts plus coolant. The honest limit: if the thermostat is behind the timing cover, integrated into a plastic housing that must be replaced whole, or on a hybrid with an electric pump in the circuit, hand it over. And never open a cooling system on a warm engine — the burn risk is genuine and immediate.
At the shop — say this: "Please check the coolant level and the temperature sensor reading against actual temperature before replacing the thermostat, and tell me whether this engine takes a thermostat alone or a full housing."
The price ladder: read it from the bottom up
Read it from the bottom up, because that is the direction the money runs. Every red line has a green line above it that prevents or disproves it, and the entire distance between them is diagnostic work — thirty minutes of somebody's attention, sold for hundreds or thousands depending on whether it happened.
Your number, by what you drive
Two rows there invert the guide rather than adjusting it. Direct-injection owners should read item 4 knowing there is a cause between "coil" and "head gasket" that most cost articles never mention — carbon on the intake valves, a $400-$800 cleaning rather than a failure. And hybrid owners should note that the most expensive group on this list, the transmission codes, largely does not apply to them: an eCVT has none of the components that fail, and the money moves to cooling and inverter faults that a generic code list will not even name.
What actually happens at the shop, checkpoint by checkpoint
Checkpoint 1 — the code, in writing. "Please list every code, including pending ones and any stored in other modules." A single code number on an estimate is the most common sign that diagnosis stopped at the reader.
Checkpoint 2 — the freeze frame. "What were the conditions when it set?" Engine speed, load, coolant temperature and fuel trims at the moment of the fault. A cold-engine fault and a highway-load fault with the same code number are different problems.
Checkpoint 3 — the diagnostic fee. "What's the diagnostic charge, and does it apply toward the repair?" Expect $80-$150 independent, $120-$200 dealer, usually credited. Establish it before work begins, not after.
Checkpoint 4 — the cheap cause. "Was it ruled out, and how?" Coil swap before coils. Mode 6 before a converter. Oil before timing parts. Boost-leak test before a turbo. Sub-code before a transmission. Every entry above names its own.
Checkpoint 5 — the evidence. "Can you show me?" A number, a reading, a wet housing, a corroded connector. Everything on this list has a physical or numeric confirmation that takes under two minutes to display.
Checkpoint 6 — the authorisation ceiling. "Call me before anything over this amount." Name a figure out loud. Most states protect your right to a written estimate and to approve overages, and the dispute guide covers what to do if that gets ignored.
Three diagnostic traps that cost the most
Trap 1: the pointer code that buys a rebuild. The situation: P0700 on a 140,000-mile car with slightly firm shifts. What the shop says: "Transmission's failing. $4,800 for a rebuild." What is really happening: P0700 is a flag, not a fault. The actual code sits inside the transmission module and is frequently a shift solenoid or a speed sensor. Price versus bill: $200-$600 for a solenoid, against $4,800. Your protective question: "What code is stored in the transmission module itself? I'd like it written on the estimate before we discuss internal work."
Trap 2: the converter bought from a code number. The situation: P0420 on a 128,000-mile car that drives perfectly. What the shop says: "Cat's failed. $2,200 OEM." What is really happening: the code compares two sensors. A tired downstream sensor or an upstream exhaust leak produces it with a healthy converter, and CarMD's data — converters as the most common check-engine repair, averaging about $1,511 — describes exactly how often this part gets replaced. Price versus bill: $180-$350 for a sensor, against $2,200. Your protective question: "What do the Mode 6 catalyst values read against threshold, and was the downstream sensor tested or assumed?"
Trap 3: the EVAP code that becomes a canister. The situation: P0455 or P0442, a large or small evaporative-emissions leak, no symptoms whatsoever. What the shop says: "EVAP system leak. Charcoal canister and purge valve, $600." What is really happening: the most common cause of an EVAP leak code, by a wide margin, is a loose or worn fuel cap — $0 to tighten, $15-$40 to replace. Next most common is a purge valve at $80-$200. The canister is genuinely rare. Price versus bill: $0-$40, against $600. Your protective question: "Was a smoke test performed to locate the actual leak, and what did it show? I'd like to start with the cap and the purge valve."
Three quotes, decoded
These are composite scenarios, not individual customers — the mileages, quotes and outcomes are typical of the pattern each code produces, assembled so the arithmetic is visible. We do not publish invented testimonials, so nothing below is presented as a specific person's story.
Scenario 1 — the $4,800 transmission that can be $420. P0700 on a crossover with 141,000 miles and shifts described as "a bit firm." Quoted as a full rebuild at $4,800. Reading the transmission module's own codes — the step P0700 exists to prompt — routinely surfaces a single shift-solenoid circuit fault instead, and a solenoid is $200-$600 installed. Lesson: a pointer code quoted as an assembly is the highest-leverage question in this entire guide, and it is one sentence long.
Scenario 2 — the $2,400 converter that can be $260. P0420 on a sedan at 122,000 miles with no drivability complaint, dealer quote $2,400 for an OEM converter. Mode 6 catalyst values that read marginally below threshold, plus a downstream sensor that tests slow to respond, point at a $180-$350 sensor rather than a converter — and that is exactly the split CarMD's data implies when converters average about $1,511 as the most frequent check-engine repair. Lesson: "below threshold" and "far below threshold" are different findings, and only the Mode 6 number distinguishes them.
Scenario 3 — the $1,800 timing chain that can be an oil change. P0016 plus a two-second cold-start rattle on a four-cylinder at 96,000 miles with a roughly annual oil-change history. Quoted as chain, tensioner and guides at $1,800. Fresh oil at the correct viscosity plus a VVT solenoid whose screen is visibly clogged is a $250-$400 job, and the screen can be laid on the counter in front of you. Lesson: on any oil-pressure-driven system, oil is a diagnostic step and not a delay tactic — and the screen turns an argument into evidence.
Which check engine codes should you never ignore, even if the car drives fine? Three, and only one of them is expensive on its own. A flashing check-engine light means an active misfire pushing raw fuel into the catalytic converter, which converts a $200 ignition coil into a $1,300 converter within a surprisingly short drive. P0016 or P0017 with a rattle at cold start means possible timing-chain stretch, and on an interference engine a chain that jumps far enough destroys the engine in seconds rather than months. Any code accompanied by overheating, an oil-pressure warning or a loss of power steering is not a code problem at all — it is a stop-driving problem wearing a code's clothes. Everything else on this list gives you days or weeks to make a decision with information rather than under pressure. Pulscar's free sound check reads the noise alongside the code, which is what separates "urgent" from "annoying."
Clearing the light before an inspection: why it fails
The second thing almost everyone searches after a code is how to turn the light off before a test. It deserves a straight answer rather than a lecture, because the mechanism is genuinely not obvious.
What an emissions inspection actually checks. Three things, not one: whether the malfunction indicator lamp is illuminated with the engine running, whether any diagnostic trouble codes are stored, and whether the readiness monitors have completed. Monitors are the car's own self-tests of each emissions subsystem — catalyst, EVAP, oxygen sensors, EGR and so on. The station reads all three over the diagnostic connector.
Why clearing codes backfires. Clearing a code, or disconnecting the battery, resets every monitor to "Not Ready" and restarts the self-tests from zero. Inspectors see that state plainly — the trade calls them drive-by clears — and a car with too many incomplete monitors fails even with the light off and no codes at all. Then there is the layer most drivers have never heard of: since roughly 2010 most vehicles store permanent diagnostic trouble codes that no scan tool and no battery disconnect can erase. They clear only after the vehicle re-runs the test itself and passes.
How strict is it? That depends on where you live, and one rule changed recently. California's Bureau of Automotive Repair adopted regulations effective 1 October 2025 requiring all readiness monitors to be set for a Smog Check pass, with exceptions only granted for specific vehicle design issues. Other programmes are looser — some allow one or two incomplete monitors on newer OBD-II vehicles, and New Jersey's guidance notes that a newer vehicle failing only for an unset fuel-system monitor may need just a shortened drive cycle. Call your test station before you assume either way.
What actually works, in order:
- Fix the fault. Nothing else on this list matters until the underlying cause is repaired; the light will simply return.
- Drive the car properly, then test. Monitors need a mix of conditions — a genuine cold start, steady cruise, and stop-and-go — typically over one to two weeks of ordinary driving including some highway. Georgia's programme puts that figure at one to two weeks after repairs; New York's DMV publishes a generic drive cycle for owners whose manual has none.
- Verify before you go. A scan tool that shows readiness status — including consumer-grade OBD dongles — tells you whether the car will pass before you pay for the test.
- Use the free retest. Many programmes offer a free retest at the original station within a set window; Georgia's is 30 days.
One thing that is never worth doing: paying someone to turn the light off. Inspection systems are built specifically to detect that, and the money buys a failed test with an extra step in it.
Your situation right now: four playbooks
"I have a quote in my hand." Find your code above, read its cheap-cause paragraph, and say its script word for word. Ask for the diagnostic fee to be credited. Do not authorise anything over $500 in the same conversation in which you first heard the number — every code here except a flashing misfire gives you at least a day.
"The light just came on and the car feels fine." Do not clear it. Get a free read at a parts store and ask for freeze frame and pending codes. Write down what you were doing when it appeared — cold start, highway, after fuelling. Then match the code to an item above and decide with the ladder rather than with anxiety.
"The light is flashing." Stop reading. Reduce speed and load, keep the revs low, and get to a shop today — or stop driving and arrange a tow if it is stumbling badly. This is the one item here where waiting a week has a price tag attached, and it is roughly a thousand dollars.
"It failed emissions but there's no light." Somebody cleared codes recently — probably in good faith. Your readiness monitors are incomplete, and monitors need a specific drive cycle to reset: typically a mix of cold start, steady cruise and city driving over 50-100 miles. Also check for a permanent code, which no scan tool clears and which will fail you regardless of the light.
After the fix: verify before you celebrate
Give it two full drive cycles. A repair is confirmed when the monitor for that system runs and passes, not when the light goes out after a code clear. Ask the shop to confirm the relevant readiness monitor has completed before you consider the job closed.
Check for permanent codes before any inspection. A permanent DTC survives every clearing method and only resets when the vehicle verifies the repair itself. Discovering one at the inspection station is the worst possible timing.
Re-record the sound. If the complaint included a noise, a thirty-second recording from the same position before and after is the cheapest proof of repair that exists — and the strongest position you can hold if it comes back inside a parts warranty. The recording guide has the protocol.
Keep the invoice with part numbers. Most parts carry 12 or 24 months of coverage, and the most common reason owners fail to claim it is a lost receipt. Photograph it the day you get it.
Prevent the repeats. Oil at the manufacturer's interval with the correct viscosity prevents items 2 and 7 outright. Spark plugs on schedule prevent most of item 4, which prevents item 3. Transmission fluid on a real interval rather than "lifetime" prevents item 1. Four of the ten most expensive codes in this guide are downstream of three routine services.
Your action plan: 10 minutes, today, this week
Next 10 minutes — free:
- Note whether the light is steady or flashing. That single observation outranks everything else here.
- Get the code read free, and ask specifically for freeze-frame data and pending codes, not just the number.
- Check your oil level and coolant level. Two codes on this list have that as their first and sometimes only fix.
Today:
- Match the code to its entry above and read the cheap-cause paragraph twice.
- If there is a noise as well as a code, record thirty seconds properly and run it through a free sound check — the code says which test failed, the sound says what is failing.
- If you have a quote, price the same job at one independent shop as well. The spread on labor-heavy items is routinely 30-50%.
This week:
- Book the diagnosis rather than the repair, and put the confirmation test from your entry in writing on the work order.
- If you authorise work, name an authorisation ceiling out loud and ask for the old parts back — a request that changes conversations.
- After the fix, drive two full cycles and confirm the readiness monitor completed before you file it as done.
Sources and documents
Primary documents only. Where a claim in this guide is marked 🟢, it rests on one of the items below, and the index is given so you can pull the document yourself. Claims marked ⚪ are shop-price estimates compiled from published repair-cost sources — estimates, not measurements from a dataset we own.
- California Code of Regulations, Title 13, §1968.2 — "Malfunction and Diagnostic System Requirements — 2004 and Subsequent Model-Year Passenger Cars, Light-Duty Trucks, and Medium-Duty Vehicles and Engines" — the CARB OBD II regulation that defines monitors, readiness, pending / confirmed / permanent codes and freeze frame; incorporates SAE J1979 by reference. 2021 Final Regulation Order (PDF) · CARB OBD II rulemaking index
- 40 CFR §86.1806-17 — "Onboard diagnostics" (EPA, light-duty, 2017 and later). "Model year 2017 and later vehicles must have onboard diagnostic (OBD) systems as described in this section" and "must comply with the 2013 OBD requirements adopted for California … Title 13, §1968.2." Regulation text (Cornell LII)
- SAE J1979 — "E/E Diagnostic Test Modes" (current revision J1979_202505) and SAE J2012 — "Diagnostic Trouble Code Definitions" (J2012_202509), which "define the standardized Diagnostic Trouble Codes (DTCs) that On-Board Diagnostic (OBD) systems in vehicles are required to report." J1979 · J2012
- 40 CFR §85.2103 — "Emission warranty" — the federal emissions warranty: two years or 24,000 miles for emission-related parts, and "eight years or 80,000 miles" for specified major components, including catalytic converters, the emission control module and the OBD device. Consumer summary in EPA-420-F-15-035. Regulation text (Cornell LII) · EPA-420-F-15-035 (PDF)
- CARB — "California Vehicle and Emissions Warranty Periods" — 3 years / 50,000 miles for all emissions-related parts and 7 years / 70,000 miles for "specific, high cost emissions-related parts as listed in owners manual," on cars certified for sale in California. CARB fact sheet
- CarMD Vehicle Health Index 2026 (released April 22, 2026; 39,116,755 recommended repairs on 1996-2024 model-year vehicles in calendar 2025) — average check-engine repair $554, up 33% year over year; the five most common repairs are catalytic converter ($1,510.88 average, 7.43% of repairs), oxygen sensor ($286.87), ignition coils with spark plugs ($480.21), mass airflow sensor ($346.21) and ignition coils ($256.45). Index (PDF) · Press release
Emissions-warranty coverage on a converter or ECU is claimed at a dealer against the vehicle's in-service date and odometer; ask before paying. The CarMD figures are national averages across every make and year, not the price for your car — they are here to show how often each repair is sold, not what yours should cost.
For the codes and symptoms behind these items: check engine light basics, the complete noise index, engine knocking, ticking and shaking at idle. For the tool decision: sound AI versus OBD scanners and the best diagnostic apps of 2026. For the money side: what a diagnostic costs, dealer versus independent, signs you're being overcharged and how to dispute a bill. And our story explains why I built Pulscar.
How these numbers were built: 2026 independent-shop pricing cross-checked against CarMD's 2026 Vehicle Health Index (average check-engine repair $554; catalytic-converter work the most frequent, averaging about $1,511), published OBD-II standards for freeze-frame data, Mode $06 monitor reporting and permanent diagnostic trouble codes, and repair-cost aggregates from RepairPal-average and YourMechanic-style estimate sources. Ranges are US independent-shop figures and vary by engine layout, parts choice and state emissions rules; dealer pricing typically runs 30-50% higher.
Prices verified: August 2026 · Technical documents verified: September 2026 · Reviewed quarterly
Got a code and a quote that do not add up? Email [email protected] with the code, the vehicle and the number you were given — real quotes are how these ranges stay honest.

