P0120: Throttle Position Sensor Circuit Malfunction
P0120 Code: TPS Circuit Malfunction Causes & Fixes. See symptoms, common causes, urgency and practical checks before parts are replaced.

Save all codes and freeze-frame data. The code tells you what the control module detected, not which component must be replaced.
Quick answer
OBD2 code P0120 indicates a malfunction in the Throttle Position Sensor (TPS) circuit, meaning the ECM is receiving an invalid or out-of-range signal from the TPS. This sensor monitors throttle valve angle to adjust fuel delivery and ignition timing, so a circuit issue disrupts engine performance. The code triggers when the signal is erratic, missing, or outside expected parameters for more than a set duration.
What the P0120 Code Means: Throttle Position Sensor Circuit Malfunction
How the TPS Works and Why the ECM Flags P0120
The Throttle Position Sensor is a potentiometer mounted on the throttle body that measures the angle of the throttle valve in real time. As the throttle opens, voltage output from the TPS increases proportionally; typically from ~0.5V at closed throttle to ~4.5V at wide-open throttle. The ECM uses this data to calculate engine load, adjust fuel injection, and control ignition timing. When the TPS signal falls outside this expected range, or if the signal is intermittent or missing entirely, the ECM logs P0120.
Common failure modes include a short or open in the TPS wiring, a damaged sensor, or poor electrical connections at the TPS or ECM. The ECM may also detect an implausible signal; such as a voltage reading that doesn't correlate with other sensors like the Mass Airflow (MAF) or Manifold Absolute Pressure (MAP) sensor. For example, if the TPS reports wide-open throttle while the MAF shows low airflow, the ECM recognizes the inconsistency and sets P0120.
How the ECM Detects the Malfunction
Most modern ECMs perform a rationality check on the TPS signal. If the voltage remains static (e.g., stuck at 0.5V or 4.5V) for more than a few seconds while the engine is running, the ECM assumes a circuit fault. Similarly, if the signal jumps erratically without corresponding throttle movement, or if the voltage is outside the 0-5V reference range, P0120 is set. Some vehicles also monitor for slow response times; if the TPS voltage doesn't change smoothly with throttle movement, the ECM may flag the code.
In addition to the TPS itself, the ECM checks the circuit's integrity. A short to ground or power in the TPS wiring, or a broken wire, can cause the signal to fall outside the expected range. Corrosion or loose connections at the TPS connector or ECM pinout are also common culprits. The ECM may temporarily ignore the TPS signal and use default values if it detects a fault, leading to poor drivability until the issue is resolved.
It's worth noting that P0120 is specifically a circuit malfunction, not necessarily a sensor failure. While a faulty TPS is a likely cause, the code could also stem from wiring issues, connector problems, or even ECM-related faults, though the latter is rare. Diagnosing P0120 requires verifying the TPS signal, wiring continuity, and connector integrity before replacing parts.
Symptoms of a P0120 Code
Drivers often notice rough idle, hesitation during acceleration, or poor throttle response when P0120 is present. In some cases, the engine may enter a limp mode to prevent damage, limiting RPMs and reducing power. These symptoms occur because the ECM cannot accurately determine throttle position, leading to incorrect fuel and timing adjustments. See the full P0120 repair cost guide for a detailed breakdown of potential fixes.
Common Causes of P0120
P0120 is commonly caused by a faulty TPS, damaged wiring, or a loose/corroded connector in the TPS circuit. Less frequently, a bad ECM or voltage reference issue (e.g., a failing 5V reference circuit) may trigger the code. Repairs typically range from $150 to $600 depending on the cause.
Can You Still Drive With Code P0120?
You can often continue driving with P0120, but it's not advisable for long. The vehicle may run poorly, with reduced power or erratic acceleration, which can be unsafe in traffic. If the engine enters limp mode, performance will be severely limited, making highway driving risky.
Details that improve the diagnosis
Compare the reported value with engine temperature, barometric pressure, throttle position and related sensors. A signal that is electrically valid can still be implausible. Fuel trims at idle and at a steady higher speed help separate an intake leak from a fuel-delivery or measurement problem.
Before clearing anything, record whether the code is current, pending, history or permanent. Save companion codes and freeze-frame conditions, then note recent repairs, a weak battery, weather changes and the exact moment the symptom appears. After a confirmed repair, clear only the erasable codes and complete the appropriate drive cycle. A permanent code normally clears only after the onboard monitor verifies that the fault is gone.
Information to record before any repair
Write down the exact code, its status and every companion code reported by a complete vehicle scan. Save the freeze-frame values, including engine speed, load, coolant temperature, vehicle speed, battery voltage and fuel trims when available. Note whether the warning appeared during a cold start, at idle, under acceleration, after refueling, in wet weather or immediately after other work. These details help separate an intermittent electrical problem from a repeatable mechanical or operating-condition fault.
Identify the exact year, make, model, engine, transmission and market version before using a wiring diagram or specification. Connector pinouts, monitor thresholds, component locations and test procedures can change within the same model line. Check current manufacturer service information and relevant technical service bulletins. A bulletin can improve the test sequence, but it should not be treated as proof that the same fault exists on every vehicle.
How to verify the repair
A warning light that stays off immediately after codes are cleared does not by itself confirm a repair. Recheck live data, repeat the operating condition that originally set the code when it is safe to do so, and confirm that no pending code returns. Some monitors need a specific drive cycle before they run. Permanent codes are normally removed by the control module only after it sees enough successful monitor results. If symptoms remain or the code returns, continue testing instead of replacing another part by guesswork.