P0016 means the crankshaft and camshaft sensors disagree about where the engine's timing actually is. On a lot of engines that points to a stretched timing chain rather than a sensor. Get it checked before driving far, because a chain that jumps a tooth costs far more than one replaced in time. Indicative UK repair cost is £120 to £1,200.
Most fault codes tell you something has already broken. This one is often a warning shot, and that is what makes it worth acting on. A chain stretches gradually, the correlation between the two sensors drifts gradually with it, and the code appears while the engine is still running fine. The window between the code arriving and the chain skipping is the cheapest time you will ever have to deal with it.
Can I drive with P0016?
Get it checked before driving far. If there is a rattle from the engine for the first second or two after a cold start, stop using the car. A chain slack enough to set this code is slack enough to jump, and on an engine where the valves and pistons share the same space that means bent valves and a cylinder head rather than a chain kit. If the engine is quiet and the code only came back after somebody had already fitted a sensor, it is less pressing, but it is still not a code to leave alone.
What P0016 means for your MOT
A worn timing chain is not an item on the MOT test. There is no defect for mechanical timing wear and no tester is going to measure your chain. The warning light it switches on is a different matter: section 8.2.1.2 of the DVSA MOT inspection manual fails a petrol car first used on or after 1 July 2003 for a lamp that is on and indicating a malfunction, and 8.2.2.2 does the same for a diesel first used on or after 1 July 2008. Both are major defects.
So the honest position is narrow and worth stating plainly: P0016 fails the MOT for as long as the light is on, and nothing about the test tells you how urgent the underlying fault is. The engine decides that, not the tester.
What usually causes it
- A stretched timing chain or a worn tensioner. The most likely cause and the reason this code is rated urgent. The chain has gone slack enough that the camshaft is running a few degrees behind where the crankshaft says it should be.
- A faulty variable valve timing actuator. The actuator, or cam phaser, is meant to hold the camshaft at the angle the engine computer asks for. When it cannot, correlation goes out of tolerance even though the chain itself is sound.
- A cam or crank sensor fault. The sensor, its wiring, its connector, or a damaged reluctor ring behind it. This is the cheap end of the range and it genuinely happens, which is why P0016 should not be read as an automatic chain job.
What it costs to fix in the UK
£120 to £1,200. A sensor plus an hour or two of labour is the bottom. A chain, tensioner, guides and gaskets is the top. Be aware that on engines where the chain sits at the back, the BMW N47 diesel being the one every independent garage knows, the gearbox has to come out to reach it and the bill goes past the top of that range.
If you are ringing round for a diagnosis before committing to any of that, our page on what a car diagnostic costs in the UK sets out what garages actually charge to plug in.
These are indicative UK ranges for guidance only. Actual causes and prices vary by vehicle, and a stored code points to a system, not always the exact part.
What to check first
- Listen to it from stone cold. A rattle for the first second or two before oil pressure comes up is the classic slack-chain noise, and it tells you more than any code reader will.
- Check the oil, level and condition. Chains, tensioners and phasers are all oil-fed. An engine run low, or run well past its service interval, wears a chain early, and an actuator starved of clean oil cannot hold the angle it is told to.
- Look at the live correlation and the commanded cam angle. A deviation that sits at a steady few degrees points at mechanical timing. One that jumps around points at the sensor, its wiring or the reluctor ring.
- Fit a sensor last, not first. A cam or crank sensor is cheap enough to try, but if the chain is the cause the code comes back within a few miles and you have learned nothing you could not have learned from live data.
Related codes
- P0300, random or multiple cylinder misfire. Timing that has drifted out of correlation often stores misfire codes beside it, and the misfire is the symptom rather than the fault.
P0011 covers camshaft timing that is over-advanced, and P0340 and P0341 cover the cam position sensor itself. All three sit in the same family as this code.
Get it narrowed down before you spend
A stored code tells you which system is unhappy, not which part has failed. If you want it narrowed down before you spend anything, send the code and your symptoms and a mechanic will read them personally. Quick Diagnosis is £20, and if we can't help, you don't pay.
Written by the First Diagnostic mechanic. Over a decade in the trade: a VW-only workshop running diagnostics and electrical repair, then BMW-only through to full engine rebuilds. Now an independent all-makes workshop, plus building and wiring drift cars for competition, including trackside work as head mechanic. More about who reads your codes.