Sort codes are allocated in blocks, which is why you will often find that the code next to the one you are looking at behaves like a sibling. That is a real pattern and it is worth understanding, because it explains a lot of the confusion people have when two codes that differ by one digit appear to belong to the same place, and it also explains why guessing from a neighbour is a bad idea.
Codes are allocated in blocks
An institution does not receive scattered individual codes, it receives ranges. That is why consecutive codes so often belong to the same institution, and why a code differing by one in the final digit frequently turns out to be a sibling of the one you started with. It is also why the leading pair is the most informative part of a sort code: it places the code inside a range, and the range is the thing that was allocated.
Why you should not infer from a neighbour
Blocks are allocated but not always used contiguously, and ranges get reassigned as institutions merge, are acquired or wind down. So two adjacent codes can belong to the same group and can just as easily belong to different ones, and there is no way to tell from the digits. Inferring an institution from a neighbouring code is the kind of reasoning that produces a payment to the wrong place, and it is exactly the reasoning a licensed directory exists to make unnecessary.
What the account number has to do with it
The sort code selects which modulus rule applies to the account number beside it. That is the one piece of real work the six digits do beyond routing, and it matters when you are checking details: an account number that fails its check under one sort code may pass under another. If a validator rejects a pair you read carefully off a bank's own app, the likeliest explanation is an exception rule the validator does not implement rather than a wrong number.
Checking this code before a payment
Get the institution's name from the payee rather than from a lookup, and confirm the sort code and account number against the payee's own bank details as their bank publishes them. Then let your bank's name check answer when you add the payee. If the code and account number arrived in a message replacing details you already held, treat that as the event that needs a telephone call, because valid details belonging to a fraudster's real account pass every arithmetic check there is.
Questions people ask about sort code 090128
Do consecutive sort codes belong to the same bank?
Often, because codes are allocated in blocks, but not reliably. Ranges get reassigned through mergers and acquisitions, so a neighbour proves nothing.
Does the sort code affect the account number check?
Yes. The UK modulus rule to apply is selected by the sort code range, so the same account number can pass under one code and fail under another.
Why does a validator reject details from my bank's app?
Usually because the sort code range uses an exception rule the validator does not implement. Your bank's own app is the authority.
How do I find out which bank holds this code?
Ask the payee, then confirm against that bank's own published pages. The complete code to institution register is a licensed product this index does not republish.