Skip to content

The Year on Your ISO Certification Badge Might Be Expired

Adityo Guni Waluyo

Two of the four ISO badges in our hero pointed at superseded editions. The edition year is data to audit, not static text.

TL;DR

Hardcoded certification years in frontend content rot silently because ISO standards get revised periodically. Two of four badges were already outdated, and even checking statuses has traps like misattributed IAF documents. Fix: keep one source-of-truth array, verify against the ISO site yearly, or drop edition years if unmaintained.

I was cleaning up the main page of our website, specifically the content file at frontend/src/content/en/home.ts. It held a simple array of certification strings:

const certifications = [
  'QMS ISO 9001:2015',
  'EMS ISO 14001:2015',
  'AMS ISO 37001:2016',
  'OHSMS ISO 45001:2018',
];

The array gets passed straight to the Hero component through an optional certifications prop typed as string[], and on screen it renders as a neat four-column grid with BadgeCheck icons. I thought to myself, "Done. Static data. Safe forever."

I initially assumed the year printed on a certification badge is permanent. My logic was simple: if a company earned a certificate, that is a historical fact. It should not just change out of nowhere.

The Reality of Living Standards

When I casually double-checked the validity of those claims, I found something unsettling. ISO 9001:2015 is officially in the process of being withdrawn and will be replaced by ISO 9001:2026, scheduled for release in September 2026 [1][2]. The 2026 edition even adds a new Annex A with a stronger focus on leadership and quality culture [3]. Meanwhile, the ISO 37001:2016 on our badge was already superseded: its second edition, ISO 37001:2025, was published in February 2025 [5]. Two of the four badges I had written into the content file pointed at editions that were already replaced or being replaced.

This makes perfect sense when you think about it. ISO standards are living documents. They get revised periodically to reflect global best practices. The problem is that when we hardcode edition years into frontend content, that badge silently rots — a phenomenon that often slips past developer radars because we rarely re-audit source documents after a feature ships and is considered done.

Fixing the Data Pattern

The solution is not to remove the badges, but to change how we treat the data. A string like QMS ISO 9001:2015 carries two pieces of information: the standard name and the edition year. Only the year actually needs maintenance. The pattern in this commit is already right: every badge lives in one content file, one source of truth, not scattered as hardcoded strings across components. The missing piece is a habit: once a year, open the edition pages on the ISO website and reconcile them against the array in the content file.

My opinion on the display side: if a team has no update mechanism, it is more honest to show the standard name without the edition year than to showcase a year that has already been replaced. Specific but wrong costs more than general but accurate, especially on a proof page.

The Secondary-Source Trap

Checking edition status has its own trap. Several commercial sites cite "IAF MD 26" as the transition document for ISO 9001:2026, complete with a three-year transition figure. The IAF public document list says otherwise: MD 26 covers the ISO/IEC 27001:2022 transition, not 9001 [4]. The official IAF Mandatory Documents list shows the same thing: MD26:2023 is titled "Transition Requirements for ISO/IEC 27001:2022", the anti-bribery one is MD30:2025 "Transition Requirements for ISO 37001:2025", and there is no numbered MD at all for the ISO 9001:2026 transition [6]. The "three years" figure floating around those sites cannot be traced to any IAF document, so I dropped it from this article.

My working order became this: before writing an edition year into the content file, open the standard's page on the ISO website, check its status and edition, then add it to the array. The check costs two minutes. An expired badge on a proof page costs far more.

## Sources

[1] https://www.iso.org/standard/62085.html [2] https://www.iso.org/standard/9001 [3] https://www.iso.org/9001-2026 [4] https://iaf.nu/wp-content/uploads/2023/06/2025-11-10-IAF_Public_Document_Responsibility_Rev28.pdf [5] https://iso.org/standard/37001 [6] https://iaf.nu/iaf-documents/?cat_id=7 — IAF Documents - Mandatory Documents (MD Series) list

Related articles