Stats Strip Widget
Show the numbers that build trust - years in business, clients, average rating, projects delivered - as a tidy strip, open grid or set of cards. Plain numbers follow your visitors' locale, text such as 4.9/5 or 24/7 stays exactly as typed, and each claim can carry a numbered footnote saying where it comes from.
Live preview
Under the widget on your page: Powered by A2Z Tools
Embed code
<iframe src="https://a2z.tools/embed/w/stats-strip" title="Stats Strip by A2Z Tools" width="100%" height="295" style="border:0;width:100%" loading="lazy" allow="clipboard-write"></iframe>
A plain iframe. Works everywhere, including site builders that strip scripts. Adjust height if your content needs more room.
<div data-a2z-widget="stats-strip" data-height="295"></div> <script async src="https://a2z.tools/embed.js"></script>
Adds a small script (what it does) that sizes the widget to fit its content, loads it lazily and keeps it isolated from your page's CSS.
Works with
How it works
Each figure is one line: value | label | affix | footnote. A value made only of digits, grouping commas and one decimal point is treated as a number and formatted for the visitor's locale with the decimals you typed - 4000000 reads 4,000,000 in en-US and 40,00,000 in en-IN, 1234.5 reads 1.234,5 in German. Anything else, such as 4.9/5, 24/7 or 4,000+, is shown character for character, and 1,5 is kept as text rather than guessed. The affix places the value with a #: $#M turns 12.5 into $12.5M and #+ turns 4000 into 4,000+; without # it is a suffix. A footnote adds a superscript number to the figure and a numbered note below. The claim line can say the figures are reported by the business itself, with an as-of date. Count-up is off unless you turn it on; it then runs once, about 1.2 seconds on an ease-out curve, only for plain numbers, never with reduced motion, and screen readers hear the final values straight away.
Method
- Numeric value: ^[+-]?\d[\d,]*(\.\d+)?$ -> Intl.NumberFormat(locale, min = max decimals = typed decimals, up to 4)
- Affix: '#' replaced by the value; no '#' = suffix
- Count-up (optional): shown(t) = round(final x (1 - (1 - t / 1.2 s)^3), typed decimals); exactly final at t >= 1.2 s
Worked examples
Default sample
Inputs: No settings
Result: 25 years in business; 4,000+ clients served; 4.9/5 average rating (note 1); 98% of projects delivered on time (note 2)
4000 with affix #+ is formatted; 4.9/5 is text and kept as typed.
Locale formatting
Inputs: 4000000 | users, page in en-IN
Result: 40,00,000 users
Indian digit grouping comes from Intl.NumberFormat for en-IN.
Count-up half way
Inputs: 1200 | customers, count-up on, t = 0.6 s
Result: 1,050 shown on screen; screen readers already hear 1,200
1200 x (1 - 0.5^3) = 1200 x 0.875 = 1050.
Limitations
- Figures are fixed text in the embed code and are not checked by A2Z.
- At most 12 figures; values longer than 24 characters are cut.
- Only plain numbers can count up; text values stay static.
Where publishers use it
- An agency or consultancy About page with years trading, clients and projects, each footnoted
- A charity impact section listing meals served and volunteers, marked as self-reported
- A SaaS landing page with uptime, customers and countries in a cards layout
- A university department page with student numbers and ranking text kept as typed
- A trades business showing jobs completed and an average rating with its review source
Questions
How is this different from the Stats Counter widget?
Stats Counter is an animated band of up to four numbers that always count up. Stats Strip holds up to twelve figures, accepts text values like 4.9/5, adds numbered footnotes and a self-reported line for claims, offers strip, grid and cards layouts, and does not animate unless you ask.
Which values are formatted and which are left alone?
Only plain numbers: digits with optional grouping commas and one decimal point, such as 25, 4,000 or 98.50. Everything else - 4.9/5, 24/7, 4,000+, 10x, ~300 - is displayed exactly as typed, because reformatting it could change its meaning.
Why use footnotes on statistics?
A number on a business page is a claim. Saying where it comes from - From 312 reviews on our booking page, Projects completed 2023-2025 - lets visitors judge it, and consumer-protection rules in many countries expect performance claims to be substantiated. The optional line Figures reported by the business itself, as of <date> makes clear nobody else verified them.
Is the count-up animation accessible?
It is off by default. When on, it runs once when the strip first scrolls into view, never when the visitor's system asks for reduced motion (the prefers-reduced-motion setting WCAG 2.3.3 points to), and the moving digits are hidden from screen readers, which read the final figure and label at once.
How many columns will I get?
At 440 px and wider: four figures sit in one row of four, three, five or six figures use rows of three, and two use two columns. Narrower frames use two columns, and below 300 px a single column. The strip layout adds dividers between figures when they all fit on one row.
Sources
- ECMA-402: NumberFormat Objects - Ecma International TC39 . Locale-aware number formatting used for plain numeric values. Checked 2026-10-01.
- Understanding Success Criterion 2.3.3: Animation from Interactions - W3C WAI . Motion should be possible to disable; technique C39 uses prefers-reduced-motion. Checked 2026-10-01.
Cite or recommend this tool
If you reference this tool in an article, course or documentation, these formats are ready to copy. They are optional - nothing is added to your site unless you paste it.
A2Z Tools Stats Strip https://a2z.tools/embed/stats-strip
<a href="https://a2z.tools/embed/stats-strip">A2Z Tools Stats Strip</a>
[A2Z Tools Stats Strip](https://a2z.tools/embed/stats-strip)
Stats Strip by A2Z Tools - https://a2z.tools/embed/stats-strip
Related widgets
-
An animated band of up to four headline numbers that count up once when they scroll into view.
-
Your average rating, review count and star breakdown bars, with a link to where the reviews live.
-
Your own claims - family owned, free estimates, licensed - as clean badges, each marked self-declared.
-
A 'Trusted by' grid of client logos with text fallbacks, grayscale-to-colour and an optional pausable row.
-
Accessible FAQ accordion with search, expand-all, numbering and a copy-as-text button.
-
Photo grid, masonry columns or a sideways strip with a keyboard-friendly lightbox and alt-text checks.