Skip to content
barcoder

Standards/ean-add-on

EAN Add-on (EAN-2, EAN-5)

Type1D Linear Supplement
Completeness76%high

Overview

The EAN add-on (also called the UPC/EAN supplement) is a small 2- or 5-digit barcode printed immediately to the right of a main EAN-13, UPC-A or UPC-E symbol and processed together with it rather than on its own 45. The EAN-2 (two-digit add-on, "UPC-2") is used on magazines and periodicals to carry an issue number 26; the EAN-5 (five-digit add-on) is used on books to carry a suggested retail price 13. Both are specified as part of the EAN/UPC family in ISO/IEC 15420 and the GS1 General Specifications 56.

History

The add-on symbols are documented in Appendix D of the U.P.C. Symbol Specification Manual, which Wikipedia cites as the authoritative source for EAN-2 2. Their best-known deployment grew out of the book trade: in 1980 agreement was reached to assign the EAN prefixes 978 and 979 to "Bookland" for encoding ISBNs, and the Bookland EAN (ISBN) symbol may be followed by a five-digit price add-on 3. The US Book Industry Study Group (BISG) continues to maintain the price-add-on conventions, with its barcoding guidelines revised between 2021 and 2025 and last updated in August 2025 3.

Technical specification

Shared structure. Both supplements start with the guard pattern 01011 and separate consecutive digits with the delineator 01; there is no end guard 12. Digits are drawn only from the EAN L-code (odd parity) and G-code (even parity) tables — the R-code set used on the right half of EAN-13 is not used 2. The add-on has no explicit check digit; error detection is carried by the L/G parity pattern 12. ZXing locates the supplement by the start pattern 1,1,2 (module widths) 7.

EAN-2 (2 digits). The two digits are treated as one number 00–99; the value mod 4 selects the parity pattern (0 → LL, 1 → LG, 2 → GL, 3 → GG) 2. Example from the source: encoding 53 gives start 01011, digit 5 from the L table (0110001), separator 01, digit 3 from the G table (0100001) 2.

EAN-5 (5 digits). A checksum is computed by multiplying the digits alternately by 3 and 9 (positions 1, 3, 5 by 3; positions 2, 4 by 9), summing, and taking the result mod 10 18. That checksum selects one of ten parity patterns 1:

Checksum Parity Checksum Parity
0 GGLLL 5 LLGGL
1 GLGLL 6 LLLGG
2 GLLGL 7 LGLGL
3 GLLLG 8 LGLLG
4 LGGLL 9 LLGLG

Worked example (the playground sample): 52495 → 5·3 + 2·9 + 4·3 + 9·9 + 5·3 = 141 → checksum 1 → pattern GLGLL; in the US book convention this reads as a suggested price of US$24.95 13.

Data semantics — EAN-5 book price. The leading digit is a currency indicator. Under BISG rules, 5 plus four digits encodes US$0.01–99.98; prices US$100.00–499.99 use 10000–49999 without a currency prefix; 59999 means "price not encoded, understood to exceed US$99.98" (US$99.99 cannot be encoded); 90000 means no cover price / no price encoded and is ignored for pricing; 60000–89999 have no assigned meaning; 90000–99999 are reserved for industry-wide use, with 99990–99999 assigned to the National Association of College Stores (99990 used books, 99991 desk copies) 3. Wikipedia additionally lists 0/1 = British pounds, 3 = Australian, 4 = New Zealand and 6 = Canadian dollars 1. ZXing's decoder maps 0 → £, 5 → $, treats 90000 as "no suggested retail price", 99991 as complimentary (0.00) and 99990 as used 8.

Data semantics — EAN-2 issue number. Combined with an ISSN-based EAN-13 (977 prefix), the two-digit add-on carries the issue: typically the month number for monthly magazines and the week number for newspapers 49.

Encoder notes. bwip-js / BWIPP expose the supplements as the standalone bcids ean5 and ean2 (exactly five or two digits, options includetext, guardwhitespace), but discourage standalone use: the preferred practice is to append the add-on to the main symbol's data, e.g. 0317-8471 03 17 for an ISSN with sequence variant and issue 56. BWIPP notes that five-digit add-on use with EAN-8 is not standardised 5.

Use cases

  • Book trade (price). The EAN-5 price extension follows the Bookland EAN (ISBN) ISBN symbol; BISG notes the add-on is optional but some publishers and retailers require it, and recommends consulting trading partners before dropping it 3.
  • College stores (used / desk copies). The NACS-reserved values 99990 and 99991 flag used books and desk copies in North American college bookstores 38.
  • Magazines and newspapers (issue). The EAN-2 issue add-on on 977-prefixed periodicals lets wholesalers track sales and returns per issue; GS1 states it is not intended for retail point-of-sale scanning but for distribution returns, so retailers receive accurate credit 4.
  • UK newstrade. The Professional Publishers Association's barcode best-practice guide documents the 977 EAN-13 plus 2-digit add-on for UK periodical distribution, noting that scanners must be specifically configured to capture the add-on 9.
  • Other publication identifiers. BWIPP lists ISMN (printed music) alongside ISBN and ISSN as primary symbols with which EAN-2/EAN-5 supplements are used 56.

Implementations

  • zxing/zxing — Java, ~34.1k stars, active 2026-09. Decoder: UPCEANExtensionSupport tries a 5-digit and then a 2-digit extension after the main EAN/UPC symbol 7; UPCEANExtension5Support parses the price into a currency-formatted string 8.
  • metafloor/bwip-js — JavaScript, ~2.4k stars, active 2026-08. Encoder port of BWIPP with ean5 and ean2 bcids 5612. This entry's playground renders via bcid: "ean5".
  • lindell/JsBarcode — JavaScript, ~5.9k stars, active 2026-06. Encoder; lists EAN-5 and EAN-2 under its EAN family 10.
  • zxing-cpp/zxing-cpp — C++, ~2.0k stars, active 2026-09. Its format table lists EAN-5 and EAN-2 marked "write support only" 11.

Not every scanner library handles supplements: the ZBar README lists EAN-13/UPC-A, UPC-E and EAN-8 but no EAN-2/EAN-5 add-on 13.

Comparison

  • EAN-2 vs. EAN-5: EAN-2 derives its parity from the value mod 4 (four patterns) and carries short sequence data like an issue number; EAN-5 computes a weighted 3/9 checksum (ten patterns) and carries a five-digit value such as a price 12. Choose EAN-2 for periodical issue tracking, EAN-5 for book pricing.
  • Add-on vs. ISSN sequence number: an ISSN-based EAN-13 already carries a two-digit sequence number inside the main symbol (BWIPP example 0317-8471 03 17: sequence 03, add-on 17); the EAN-2 add-on sits outside the 13-digit identifier and, per GS1, is meant for distribution returns rather than POS scanning 46.
  • Add-on vs. GS1-128 / GS1 DataBar: the add-on extends a legacy EAN/UPC symbol with only two or five digits of unstructured data; BWIPP's guidance is to treat the supplement as part of the primary symbol's data rather than as an independent barcode 56.

Fun facts

US$99.99 is impossible to express in a US EAN-5 price add-on: 59999 is reserved to mean "price exceeds US$99.98", so the highest encodable US price under the 5 prefix is US$99.98 3.

Status

Active. BISG revised its US book-industry barcoding guidelines as recently as August 2025 and still defines the price add-on (while describing it as optional) 3; GS1's support knowledge base documents current use of the 2-digit add-on for periodicals 4; and major libraries (ZXing, bwip-js, JsBarcode, zxing-cpp) remain actively maintained with add-on support in 2026 7101112. Sources disagree on currency digits outside the US: Wikipedia lists 6 (CAD), 4 (NZD) and 3 (AUD) 1, whereas BISG states 60000–89999 currently have no assigned meaning 3.

Sources

1 EAN-5 — Wikipedia — Wikipedia, accessed 2026. 2 EAN-2 — Wikipedia — Wikipedia, accessed 2026. 3 Barcoding Guidelines for the U.S. Book Industry — Book Industry Study Group, accessed 2026. 4 What are the extra add-on barcodes for books? — GS1 Support, accessed 2026. 5 EAN-5 — BWIPP wiki (GitHub), accessed 2026. 6 EAN-2 — BWIPP wiki (GitHub), accessed 2026. 7 UPCEANExtensionSupport.java — ZXing (GitHub), accessed 2026. 8 UPCEANExtension5Support.java — ZXing (GitHub), accessed 2026. 9 PPA Best Practice for Bar Code Guidelines — Professional Publishers Association, accessed 2026. 10 JsBarcode — GitHub (lindell/JsBarcode), accessed 2026. 11 zxing-cpp — GitHub (zxing-cpp/zxing-cpp), accessed 2026. 12 bwip-js — GitHub (metafloor/bwip-js), accessed 2026. 13 ZBar — GitHub (mchehab/zbar), accessed 2026.

Deployments

No country reports mention this standard by name.

Regions / aggregations not mapped to a single country

  • Universal
source · content/standards/ean-add-on/index.md