Engine codes
P0128: coolant below thermostat regulating temperature
Every engine is expected to reach its normal operating temperature within a few minutes of driving. P0128 is set when the coolant stays below the thermostat temperature for longer than the computer allows.
P0128: can I drive, and what will the labor cost?
Estimated labor, replace thermostat and refill coolant
$110 to $275
| Labor time (estimate) | 1 to 2.5 h |
| Rate used | $110/h |
| Technician wage, United States (average) | $27.13/h |
| Low: fix when convenient Safe to drive; the cabin heater will be weak and fuel economy lower until the thermostat or sensor is replaced. | |
Labor only: parts and the diagnostic fee are not included. Hours are our estimate for a typical car; book times vary by model. Wage: BLS, May 2025.
P0128 is the generic OBD-II code for "coolant thermostat, coolant temperature below thermostat regulating temperature". The engine computer models how fast the coolant should warm, from outside temperature, engine load and time since start, and expects it to reach a target close to the thermostat rating. When it does not, the most frequent reason is a thermostat stuck partly open, which sends coolant to the radiator before the engine is warm. A coolant temperature sensor that reads low, a low coolant level that leaves the sensor in a pocket of steam or air, and a radiator fan that runs all the time are the other causes. It is one of the safest codes to drive with: you lose cabin heat and some fuel economy. We rate it low: fix when convenient. It matters for emissions too, because a cool engine runs richer and the computer runs several of its self-tests only once the engine is fully warm.
After the repair: when does the light go off?
Light off by itself after about
2 days
| Fault-free trips needed | 3 |
| Warm-up cycles before the code can be erased | 40 |
| Stored code gone after about | 40 days |
Federal rule for model years up to 2016 (40 CFR 86.1806-05); a misfire or fuel fault must also stay away under similar conditions. Clearing codes with a scanner also resets the readiness monitors an inspection checks.
Codes, rules and labor data checked by Radif Partners · Editorial policy · Method and sources
P0128 at a glance
| Code | P0128 |
| Standard description | Coolant Thermostat (Coolant Temperature Below Thermostat Regulating Temperature) |
| System | Engine cooling |
| Severity | Low: fix when convenient |
| Common symptoms | heater blows lukewarm, temperature gauge stays low, lower fuel economy in cold weather |
Why it shows up in winter
A thermostat that opens a little early may still let the engine reach temperature in summer, then fail to do so in freezing weather or on long highway drives where the radiator sheds a lot of heat. That is why P0128 often appears with the first cold weeks of the year and why the heater blows lukewarm air on the highway.
Checking it yourself
- With the engine cold, check the coolant level in the reservoir; never open a hot system.
- Watch the temperature gauge, or the coolant reading on a scanner, during a 15-minute drive. It should rise steadily to its normal mark. A gauge that stays low, or drops on the highway, points to the thermostat.
- If the scanner reading and the dashboard gauge disagree, or the reading jumps, the sensor is the suspect.
The federal rules define a warm-up as a drive in which coolant rises at least 40 °F and reaches at least 160 °F (40 CFR 86.1803-01); a car with P0128 may not complete such a cycle in cold weather. After a thermostat replacement the code clears on its own after 3 good trips, which the counter on this page turns into days. Related: P0171 if the engine has also been running lean.
Likely causes of P0128, in order
| Cause | How often |
|---|---|
| Thermostat stuck partly open | most frequent |
| Engine coolant temperature sensor reading low | frequent |
| Low coolant level | frequent |
| Cooling fan running all the time | less frequent |
P0128 repairs and labor time
| Repair | Labor (estimate) | At $110/h |
|---|---|---|
| Replace thermostat and refill coolant | 1 to 2.5 h | $110 to $275 |
| Replace the coolant temperature sensor | 0.3 to 1 h | $33 to $110 |