OBD-II trouble code
P2066: Fuel Level Sensor "B" Circuit Range/Performance
This code names a part, and it is wrong about which one more often than any other member of its family. It is set by comparison — sensor B against sensor A, and both against the fuel the engine actually burned — so a healthy B gets blamed whenever A lies or the fuel will not move between lobes.
Quick facts
- System
- Powertrain
- Category
- Fuel System
- Severity
- Low severity
- Drivable
- Usually safe to drive short-term
- Repair cost range
- $90 – $1,100
- DIY difficulty
- Intermediate DIY
Browse every code in P2000–P20E8, or start from the full code library.
What does P2066 mean?
Range and performance codes are not circuit codes. The signal from the secondary fuel level sensor is inside its electrical limits — it is not stuck at zero, not pinned at supply voltage, not open. The module has instead decided the value is not believable, and the only way it can reach that conclusion is by comparing it with something else.
There are two references available and most systems use both. The first is the other sender. On a vehicle with two level inputs the module knows roughly how the two volumes should relate as fuel is consumed and transferred, so a B reading that cannot be reconciled with A stands out. The second reference is arithmetic: the module knows precisely how much fuel it has commanded through the injectors since the last fill. Total level should fall in step with that number. When it does not, something in the measurement chain is wrong.
That comparative basis is the single most important thing to understand about P2066, because it explains why the code so frequently names the wrong component. The module cannot tell which of two disagreeing inputs is lying. It reports the fault against the sensor whose plausibility check failed, and if sensor A has drifted or stuck while B reports honestly, the arithmetic still fails and the code still lands here. Replacing the secondary sender in that situation changes nothing and costs a tank drop.
The test that resolves this cannot be shortcut, and it is the core of the diagnosis. Fill the tank, note the mileage, then log both sender readings alongside the module's own fuel-used total over a substantial part of a tank. Three numbers, one of which is independent of both senders. Whichever sender disagrees with the injector arithmetic is the faulty one, and if both track it while the code still sets, the fault is in how the values are being combined rather than in either sender.
There is a second cause population on this code that has no electrical component at all, and it is specific to this member. If fuel physically will not move the way the module expects, the levels will not relate the way the module expects either. A jet pump or siphon that has failed, a blocked transfer line, or a crossover that has partly clogged leaves one lobe draining while the other stays full — which is exactly the disagreement the plausibility check is designed to catch. The module has no way to distinguish a lobe that is not emptying from a sender that is not reporting.
That mechanical possibility is good news for cost, because it is cheaper to investigate than the sender is to replace. If the levels behave as though one side is not draining, checking the transfer function comes first, and it can often be assessed without opening the tank at all. A sender inside a tank is the expensive answer on this code and it should be the last one reached, not the first.
Common causes
- Jet pump, siphon or transfer line failed, so one lobe does not drain as expected
- Blocked or kinked crossover line between tanks or lobes
- Secondary sending unit float saturated with fuel and no longer riding at the surface
- Worn resistance track in either sender producing a drifted rather than absent reading
- Primary sender at fault, with the plausibility failure reported against the secondary
- Float arm bent or fouling the tank wall or a baffle, limiting its travel
- Aftermarket or incorrect sending unit with a resistance curve the module does not expect
- High-resistance ground shared by the senders, shifting both readings by an offset
- Tank damaged or deformed by an impact, changing the relationship between float position and volume
- Recent fuel pump or tank work that left a sender arm mispositioned or an assembly incorrectly indexed
Symptoms
- Fuel gauge reading plausibly but persistently wrong compared with how much fuel goes in at a fill
- Gauge falling normally and then stopping while fuel is clearly being used
- Distance-to-empty estimate drifting further out over the course of a tank
- Check engine light on with no change in how the engine runs
- One tank or lobe apparently not emptying at all
- Fuel starvation on a hill or a hard corner with fuel showing on the gauge
- Gauge reading correctly after a fill and progressively less accurately as the tank empties
- Low fuel warning arriving much earlier or later than the actual remaining fuel
- EVAP monitor not completing on vehicles that require a stable level to run a leak test
- Fault reappearing after a sending unit replacement, which points away from the sender
Diagnostic steps
- 1.Treat the code as a comparison failure rather than a part identification. Read both sender values in live data before any part is considered, because the code can be set by the other sender or by the transfer system.
- 2.Fill the tank, record the odometer, then log both sender readings against the module's fuel-used total over at least half a tank. That third number comes from the injectors and is independent of both senders, so it settles which one is wrong.
- 3.If one lobe or tank appears not to drain while the other does, investigate the transfer function before touching any sender. A failed jet pump or blocked crossover produces exactly this disagreement mechanically.
- 4.Check how much fuel the tank actually accepts at a fill against what the gauge claimed was missing. A large mismatch tells you the reading is wrong without any scan tool at all.
- 5.Look for a constant offset in both readings, which points at a shared ground rather than at either sender. Perform a voltage-drop test on that ground under load rather than a continuity check.
- 6.If the vehicle has had recent fuel pump, tank or sender work, verify the assembly is correctly indexed and that no float arm is fouling a baffle or tank wall.
- 7.With an access panel available, remove the secondary sender and sweep its arm through full travel while watching resistance. A dead spot or a jump identifies a worn track directly.
- 8.Inspect the float itself for fuel inside it. A saturated float sits lower than it should and reports a level that is wrong in a consistent direction.
- 9.Compare the sender's resistance range against specification, particularly if a non-original unit has been fitted. A curve the module does not expect reads as implausible rather than as a circuit fault.
- 10.Relieve fuel pressure and follow proper fuel-handling safety before opening the tank, and carry out the work with the level as low as practical.
Repair cost
$90 – $1,100
Diagnosis is $90 to $200, and on this code it is the part most worth buying, because the code names a component that is frequently innocent. The cheapest genuine outcomes involve the transfer system: a blocked or damaged crossover line is $100 to $350, and a failed jet pump or siphon assembly is $150 to $500 depending on whether it is sold separately from the pump module. A replacement secondary sending unit is $60 to $350 in parts, with 0.7 to 1.5 hours of labour where an access panel exists and 2 to 3.5 hours where the tank must be dropped. Where the manufacturer sells only a complete pump and sender assembly, parts run $250 to $700. A shared ground repair is often under $150 and is worth checking before anything else when both readings look shifted by the same amount.
Estimate your repair
Run the numbers for your vehicle
Open the Repair Cost Estimator with fuel level sensor / sending unit replacement preselected. Adjust labor rate and vehicle category to fit your situation.
DIY vs shop
This is an intermediate DIY job. It usually involves diagnostic steps, specialty parts, and some careful work in tight spaces. If you have the tools and a service manual or trustworthy video for your specific vehicle, it is achievable in a weekend. Otherwise, a competent independent shop will be faster.