UK Number Plate Formats: A Developer Reference

Jul 13, 2026 · 14 min read

Why Format Knowledge Matters for ANPR Integration

Building number plate recognition into a UK product is not simply a matter of reading characters off an image and matching them against a database. The UK operates several distinct registration plate systems simultaneously, each with its own character structure, exclusion rules, and edge cases. A car park barrier controller, a fleet telematics platform, a dealership stock system, or a logistics access gate will encounter every one of these formats in the wild. A naive regex that handles only the current seven-character standard will reject valid plates from a significant proportion of vehicles on UK roads today. This reference covers every format your parser must handle, the physical standard that determines whether ANPR cameras can read a plate reliably, and the cases where OCR alone is not enough and a vehicle data lookup via an API becomes the only reliable path to a correct answer.

The Current Format: Post-September 2001

The format introduced in September 2001 and still in use today consists of seven characters arranged as two letters, two digits, and three letters, for example AB24 CDE. The first two letters form the local memory tag, indicating the DVLA local office area of registration. The letters I, Q, and Z are not used in the area code, though Z can appear as one of the three random letters at the end. The two digits form the age identifier, which changes twice a year. Vehicles registered between March and August carry the last two digits of the year, so a March 2026 vehicle carries 26. Vehicles registered between September and February carry the year plus 50, so a September 2026 vehicle carries 76. The three trailing letters are random, though certain combinations are withheld to avoid offensive or misleading strings.

For a developer, the current format is the most straightforward to validate. A regex such as ^[A-Z]{2}[0-9]{2}[A-Z]{3}$ covers the character structure when spaces are stripped, but a structurally valid string is not necessarily a real registration. The age identifier must fall within a defined range, currently 01 to 26 for March releases and 51 to 76 for September releases, with the upper boundary advancing every six months. The format was designed to remain valid until at least 2050, giving any system built today considerable runway before the numbering space is exhausted. The March 2026 series, identifiable by the 26 identifier, is the most recently issued series at the time of writing and is a useful test case for confirming that your validation logic handles the current upper boundary correctly.

Legacy Formats: Prefix and Suffix Plates

Prefix plates ran from August 1983 to August 2001. The structure is a single year-identifying letter at the start, followed by one to three digits, a space, and three letters, for example P123 ABC. The year letter runs from A for 1983 through to Y for 2001, excluding I, O, Q, U, and Z. Suffix plates are the mirror image, running from 1963 to 1983 with the year letter at the end: three letters, one to three digits, and a trailing year letter, for example ABC 123A. The same exclusion list applies. Neither I nor Z appear as year letters in either system, as those characters were reserved for Northern Ireland.

These formats are far from museum pieces. Prefix plates in particular remain extremely popular as private registrations and appear on vehicles of all ages, including brand-new cars. A car park system or ANPR gate will encounter them daily. Your validator must handle variable-length numeric blocks of one to three digits in both formats, and must not assume that a leading alphabetic character always signals a current-style plate. A regex covering the prefix format looks like ^[A-HJ-NPR-Y][0-9]{1,3}[A-HJ-NPR-Z]{3}$ and for suffix plates ^[A-HJ-NPR-Z]{3}[0-9]{1,3}[A-HJ-NPR-Y]$, with spaces stripped and exact exclusions applied to the year-letter position.

Northern Ireland Formats

Northern Ireland has retained its own registration system, which dates back to 1903. The current format, introduced in January 1966, follows the structure of a serial letter followed by a two-letter county code and up to four digits, for example AXX 1234. The critical distinguishing characteristic is that every Northern Ireland plate contains at least one instance of the letter I or Z, characters that are explicitly excluded from all Great Britain plate formats. Those letters were reserved exclusively for Irish use from the very start of vehicle registration in the UK.

Northern Ireland plates are dateless, meaning they carry no year identifier whatsoever. They can legally be displayed on a vehicle of any age, which makes them popular as private registrations across the whole of the UK. A vehicle registered in London can legally carry a Northern Ireland plate, and it will appear on roads throughout England, Scotland, and Wales. For a developer, the immediate challenge is that a naive GB regex will either reject these plates outright because I and Z fail the character exclusion check, or worse, misclassify them. Your validation logic must run a separate branch for any plate where I or Z appears in the letter group, treating the presence of either character as a strong indicator of a Northern Ireland format. The numeric portion ranges from 1 to 9999, so the digit group can be one, two, three, or four characters long, adding further variability compared to Great Britain legacy formats.

A practical regex for the current Northern Ireland format is ^[A-Z]{2,3}[0-9]{1,4}$ applied after stripping spaces, combined with a check that at least one of I or Z is present in the letter group. Because these plates are dateless and can appear on any vehicle, a vehicle data lookup is particularly valuable here: OCR alone tells you nothing about the vehicle's make, model, colour, or tax status.

Personalised and Private Plates

A private or personalised plate is not a separate format in its own right. Every private plate must conform to one of the established formats described above, whether the current seven-character system, the prefix style, the suffix style, a dateless structure, or a Northern Ireland format. What changes is the semantic meaning. In a standard issued plate, the area code and age identifier carry genuine information about where and when the vehicle was registered. In a private plate, those characters are chosen for their visual or phonetic effect, and the encoded information is meaningless or intentionally misleading.

This creates a specific challenge for developers. Format validation alone cannot distinguish a genuine current-style plate from a private plate that happens to fit the same regex. More importantly, a private plate provides no reliable age signal. A vehicle showing a plate that encodes a 2006 age identifier might be a 2024 vehicle with a cherished registration. If your application uses the age identifier to infer vehicle age, for example to flag potentially out-of-MOT vehicles or to filter by registration period, you will produce incorrect results for any private plate. The only reliable solution is a vehicle data lookup, which returns the actual vehicle record regardless of what the plate encodes. A recognition API that bundles this lookup into the same call, returning make, model, colour, and registration data alongside the read plate string, eliminates the need to maintain a separate integration.

Trade Plates

Trade licences are issued to motor dealers and vehicle testers, permitting untaxed vehicles to be driven on public roads under specific conditions. Trade plates are visually distinct: they use red characters on a white background, the inverse of the standard black-on-white front plate. The current format, which replaced an earlier five-digit-only sequence, consists of one letter followed by four digits, for example A1234. The leading letter forms part of the unique identifier assigned to each trade licence holder and carries no regional or age significance. There is no area code and no age identifier. If your integration serves dealerships, vehicle transport, or fleet preparation facilities, you will encounter trade plates at handover points, on transporter arrivals, or during pre-delivery inspection drives. Your system must handle this alphanumeric-only read gracefully, either by routing it to a separate trade-plate logic branch or by returning a clear no-match response rather than a false positive against the standard plate database.

Diplomatic and Military Plates

Diplomatic vehicle registration plates have followed a standardised format since 1979. The format is three digits, a letter, and three digits, for example 270 D 101. The letter D indicates a full diplomatic agent, while X denotes non-diplomatic accredited personnel such as administrative and technical staff of embassies or international organisations. The first group of three digits identifies the country or international organisation, and the second group is a serial number sequence: 101 to 399 for diplomats, 400 to 699 for non-diplomatic staff of international organisations, and 700 upwards for consular staff. These plates appear in London and other cities with significant diplomatic missions and are almost entirely numeric in structure, setting them apart from every other format.

UK military vehicles on public roads use a format of two digits, two letters, and two digits, for example 44 DN 44, which is shorter and differently arranged than the current civilian seven-character format. Both diplomatic and military plates will produce no match or a low-confidence result when passed against a standard vehicle register, because they are managed outside the mainstream registration database. Your application must handle these gracefully. A sensible approach is to detect the numeric-dominant diplomatic pattern or the compact military pattern before querying for vehicle data, log the read for manual review, and avoid raising a false alert or denying access on the basis of a failed lookup alone.

The Green Flash EV Identifier and BS AU 145e

Since 2020, fully electric vehicles have been eligible to display a green flash on the left-hand edge of both front and rear number plates. The green strip does not alter the registration number itself and is entirely optional. Hybrid and plug-in hybrid vehicles do not qualify; only zero-emission battery electric vehicles may display it. From an OCR and ANPR perspective, the green flash is a visual region that sits outside the character area and should not affect recognition of the plate string itself, provided the plate meets current physical standards. A non-compliant plate where decorative elements encroach on the character zone will degrade recognition accuracy regardless of the EV identifier.

BS AU 145e is the mandatory British Standard governing the manufacture and display of all UK number plates fitted from 1 September 2021 onwards. It replaced the previous BS AU 145d standard and was driven primarily by the need to improve ANPR camera read rates. The standard introduced two new mandatory test categories: near infrared contrast, which requires that the contrast ratio between solid black characters and the reflective background remain high under infrared wavelengths of the type used by ANPR cameras; and abrasion resistance, which ensures that reflective coatings and printed characters do not erode in a way that reduces legibility over time. The standard also bans two-tone, 3D shadow, gel-effect, and Hi-Line character styles, which had been popular cosmetically but caused ANPR failures because infrared cameras read them as two overlapping characters rather than one. Only solid black characters in the prescribed Charles Wright 2001 font are permitted. A mandatory clear zone of at least 10 mm must surround all registration characters, and any optional border must sit at least 10 mm from the characters with a maximum thickness of 5 mm.

The Charles Wright 2001 font itself accentuates distinctions between visually similar characters such as 8 and B, or D and 0, using slab serifs to improve legibility at distance and under camera capture conditions. Plates that predate September 2021 or that were manufactured to a lower standard will produce more OCR errors, lower confidence scores, and higher rates of misread characters. Your application should treat any confidence score below a defined threshold as requiring human review rather than automated action, and should not assume that a clean string output always reflects a reliable read.

Building a UK Plate Validator: Practical Regex Guide

A robust UK plate validator must handle at least six structurally distinct format families. The following patterns assume all spaces and hyphens have been stripped and all characters converted to upper case before matching.

Current format (post-2001): ^[A-HJ-PR-Y]{2}[0-9]{2}[A-HJ-PR-Z]{3}$. The area code excludes I, Q, and Z, while the random suffix allows Z but still excludes I and Q.

Prefix format (1983 to 2001): ^[A-HJ-NPR-Y][0-9]{1,3}[A-HJ-NPR-Z]{3}$. The leading year letter excludes I, O, Q, U, and Z.

Suffix format (1963 to 1983): ^[A-HJ-NPR-Z]{3}[0-9]{1,3}[A-HJ-NPR-Y]$. The trailing year letter applies the same exclusions as the prefix year letter.

Northern Ireland format: ^[A-Z]{2,3}[0-9]{1,4}$ where the letter group must contain at least one I or Z. Apply this as a secondary check after matching the broader pattern.

Diplomatic format: ^[0-9]{3}[DX][0-9]{3}$ after stripping spaces.

Trade plates: ^[A-Z][0-9]{4}$ for the current letter-plus-four-digit format.

Run these patterns in order from most specific to least specific. A plate matching the diplomatic pattern should not fall through to the current format matcher. Flag anything that matches no pattern as an unrecognised format and route it to a review queue rather than discarding it, because it may be a dateless pre-1963 plate, a non-standard format, or a partial read requiring a confidence threshold review.

Where OCR Alone Is Not Enough

Pure character recognition answers one question: what does the plate say? It cannot answer whether the vehicle the plate is mounted on is actually the vehicle to which that registration is assigned. Plate cloning, where a criminal duplicates the plate of a legitimately registered vehicle, is a known and significant fraud vector. A cloned plate will pass every format validation check and return a legitimate vehicle record, because the registration string itself is genuine. The only way to catch a potential clone at the point of recognition is to cross-reference the read plate against additional data: does the make, model, and colour returned by the vehicle record match what the camera sees?

An ANPR API that bundles vehicle data retrieval into the recognition call makes this cross-reference practical without requiring a second round-trip request. When your application receives a registration string with high confidence, it can simultaneously receive the DVSA-sourced make, model, and colour for that registration, compare them against the vehicle in the image, and flag a mismatch as a reason for manual review. This does not eliminate cloning as a risk but it adds a meaningful layer of automated scrutiny at negligible extra latency.

Private plate lookups are the other case where OCR is insufficient. When a vehicle carries a personalised plate, format validation succeeds but the plate string tells you nothing reliable about vehicle age, make, or model. A vehicle data lookup is the only way to retrieve the actual vehicle record and provide accurate data to your downstream system.

Calling the NPR API: Request and Response

NPR API is a UK-first number plate recognition service built to handle all the format variants described in this article. The recognition endpoint accepts a POST request to https://nprapi.com/api/v1/recognise with your API key supplied in the X-API-Key header and the image submitted as a multipart form upload in a field named image. Adding vehicle=true as a form field or query parameter instructs the API to return DVSA vehicle data including make, model, and colour alongside the plate read, eliminating the need for a separate lookup call.

A basic cURL request looks like this:

curl -X POST https://nprapi.com/api/v1/recognise \
  -H "X-API-Key: your-api-key-here" \
  -F "image=@plate.jpg" \
  -F "vehicle=true"

The JSON response for a single-plate read in standard mode looks like this:

{
  "success": true,
  "registration": "AB26CDE",
  "confidence": 97,
  "credits_used": 1,
  "vehicle": {
    "make": "VOLKSWAGEN",
    "model": "GOLF",
    "colour": "GREY"
  }
}

The confidence field is an integer from 0 to 100. A score in the high nineties on a well-lit, compliant plate is typical; a score below 80 on an older or non-BS AU 145e-compliant plate is a signal to route the read for human review rather than process it automatically. When you need to detect all visible plates in a multi-vehicle image, adding multiple=true returns a plates array where each item includes registration, confidence, and country as an ISO 3166-1 alpha-2 code where the format is identifiable. For high-volume batch jobs, the batch endpoint at https://nprapi.com/api/v1/batch accepts multiple images in a single request, with job status retrievable via GET https://nprapi.com/api/v1/batch/{uuid}.

Northern Ireland plates, prefix plates, suffix plates, and diplomatic formats are all handled by the same endpoint without any configuration change. The confidence score reflects the quality of the OCR read itself; downstream format classification and DVSA cross-reference are handled automatically when vehicle=true is set.

Conclusion and Next Steps

The UK registration landscape encompasses at least six structurally distinct plate formats, a mandatory physical standard in BS AU 145e that directly governs ANPR read reliability, and a set of special categories including trade, diplomatic, and military plates that require graceful handling rather than hard failure. A developer who accounts for all of these at the design stage avoids the costly retrofitting that follows from assuming the current seven-character format is the only one that matters.

OCR and format validation together solve the recognition problem for compliant, clearly captured plates. Vehicle data retrieval solves the interpretation problem: confirming that the plate belongs to the vehicle in the image, retrieving accurate make, model, and colour for private registrations, and flagging potential plate clones before they cause downstream errors. NPR API combines both capabilities in a single REST call, with the vehicle=true flag on the recognise endpoint returning DVSA data alongside every read. Full documentation is available at https://nprapi.com/docs, and the free tier lets you test against the full range of UK format variants before committing to a plan.

Ready to integrate number plate recognition?

Get Started Free