DEV Community

Serguey Shinder
Serguey Shinder

Posted on

The Customer Number Was Free Because Somebody Else Had Finished With It

A builders' merchant near Wakefield opened an account with us in March and was put on credit hold in his first fortnight. A complaint from 2019 about a company in Kent sat in his record. A driver refused to deliver to his yard because the notes warned of a dog that had bitten somebody, at an address four counties away.

Customer numbers here come from a six digit scheme designed in 1998, allocated in a fixed block per region. The block for the north filled up in 2021. What happened next was entirely reasonable and written down nowhere. Somebody in sales began reissuing the numbers of accounts closed for more than five years, and taught the practice to the next person who joined, who taught it to the one after that.

The number is the join key in eleven places I can name. The carrier's platform. Our credit insurer's file. The data warehouse's history tables. Archived documents going back to 2006. Every one of those systems was correct in the moment. What broke was the past, silently, and only for the customers unlucky enough to inherit one. Our ten year value report showed this man as having traded with us for a decade, which qualified him for a rebate tier, six weeks after he first rang us.

The warehouse had the same habit with product codes, reused after two years out of stock, which means any analysis crossing that boundary is nonsense and nobody can tell which lines are affected without checking by hand.

Extending the range took a fortnight of work. It had never been done because nobody had presented it as a business problem, only as a limitation people worked around. Reuse is now forbidden and enforced by the system rather than by a convention passed between colleagues. For the three hundred and forty numbers already reused, both the old and the new record carry a marker and the date the number changed hands, so a query can see the seam, and reports that cross one say so at the top instead of quietly averaging two companies together.

An identifier is a promise that two facts written down years apart are about the same thing. Ours was just a number somebody had finished with.

– Serguey Shinder

Top comments (0)