Two cameras, eleven hundred metres apart on the same carriageway, one clock between them. Something goes past the far one first, by between four and nineteen seconds, and only between two and four in the morning.
I do data analysis for a roads authority. Not enforcement. Journey times, flow, incident detection, the dull and genuinely useful end of it.
Most of my work comes out of ANPR. Automatic number plate recognition: a camera over the carriageway, an infrared illuminator, and software that turns the picture of a plate into seven characters and a confidence score.
What it is used for in my job is pairing. Put a camera at A and another at B and you know how long it took every vehicle to get between them, which is how a sign can tell you there are nine minutes to the next junction. The plate itself is hashed within seconds and thrown away because we are not allowed to keep it and do not want it. What I work with is a hash, a camera ID and a timestamp.
The clock matters more than anything else in this job, so here is how it works. The cameras do not keep their own time. They take it from the network, which takes it from a stratum one source, which takes it from GPS. Every camera on this stretch is on the same clock to within a few milliseconds, and if one drifts it alarms, because a journey time calculated from two disagreeing clocks is worse than no journey time at all.
Site 14 is a pair on a dual carriageway. A is the southern camera and B is the northern one and they are eleven hundred and forty metres apart, measured.
Traffic on that carriageway goes south to north. A then B. Every vehicle, all day, for eleven years.
Between ten and fourteen times a year, something is read at B first.
The first one I saw was in 2017 and I did what anybody would do, which was assume a clock fault, and I went and looked at the monitoring, and both cameras were in sync and had been for weeks either side.
So I assumed a plate misread: two different vehicles whose plates happen to hash the same because one was read wrong. That is a real thing and it is the reason confidence scores exist.
Both reads were 98 and 99 per cent confident. The images are kept for a few days for maintenance and I pulled them before they rotated. Same vehicle. A dark estate car, same roof bars, same missing wheel trim.
B at 03:41:12. A at 03:41:23.
Eleven seconds later, eleven hundred metres back down the road, in the direction it had come from.
Over eight years I have collected ninety one of these.
The gap is between four and nineteen seconds, with a median of nine. Nine seconds to cover eleven hundred and forty metres is four hundred and fifty kilometres an hour, if you want it that way round, and nothing on that road goes at four hundred and fifty kilometres an hour, and in any case the direction is wrong.
Every single one is between 02:00 and 04:00. Ninety one out of ninety one. The carriageway is busiest at eight in the morning and five in the evening and not one of these has ever happened then.
They are ninety one different vehicles. I checked that carefully, because one vehicle doing it repeatedly would point at something about that vehicle, a transponder, a fitted camera, something. The hashes are all different. Where I have images they are all different cars, and one was a light goods van.
What I have ruled out, which is the only part of this worth anybody's time.
Clock drift. Monitored, alarmed, and I have pulled the sync logs for all ninety one timestamps. Both cameras were healthy within seconds of every event.
A queued write. If B's reads were being buffered and sent late, the timestamp is still stamped at the camera at the moment of capture, not at the moment of sending, and anyway a buffer would make B look LATE, not early.
A vehicle going the wrong way. This was my best answer for a year and it is wrong. A vehicle driving north to south on a northbound carriageway reads at B then A, exactly as observed. But the cameras are directional, facing oncoming traffic, and a car going the wrong way presents its rear plate, which these cameras cannot read because the illuminator and the angle are set for the front. We know what a wrong way vehicle looks like in this data, because it happens a few times a year and it looks like a single read and a phone call from the police.
And where I have images, the car is facing the camera. Both times. At A and at B.
A duplicate entry from a second lane. The cameras cover all lanes and report lane number. Eighty of the ninety one are in lane one.
The thing that makes me write it down rather than file it.
In 2022 I did something that is not in my job description, which was ask the maintenance contractor for the full capture images on a night I expected it, which I had no business expecting, except that of the ninety one, nineteen fall in the last week of October.
I got one. 03:14 and 03:14.
Two images eleven seconds and eleven hundred metres apart, and in both of them the car has its headlights on, and in both of them you can see the road surface lit in front of it, and in the B image, which is the one that happened first, the road in front of the car is wet.
The A image is dry. Same night, eleven seconds later, eleven hundred metres south, dry road, dry verge, and the forecast and the rain radar for that night say it did not rain anywhere in the county.
I have reported it. Nobody laughed and nobody buried it, and I will not have them written up as though they did.
It went in as a data quality issue in 2019, which is the correct category, and an engineer came out and swapped both cameras and both power supplies and re-timed the pair. It carried on.
It went in again in 2021 with the whole set of events attached, and the answer was that ninety one events out of something like four hundred million reads is a rate of about two in ten million, and that no journey time average is affected at that rate, and therefore there is no operational impact.
That answer is correct. I have checked it myself. At that rate it changes nothing anybody uses, and I cannot argue for spending money on it.
So what happens now is that there is a filter.
I wrote it. It drops any pair where B precedes A, because a negative journey time breaks the sign, and it logs what it dropped to a file on a server that will be decommissioned one day with the file still on it.
Every month or so I open that file and there is a line in it, and the line says that at some point between two and four in the morning something came up that carriageway fast enough to be read in the wrong order, with its headlights on, in the rain, and in eleven hundred and forty metres it had dried out and slowed down and become an ordinary car on an ordinary night going north.