Can you average percentages?
Combine several stores' rates by adding first and dividing last, and see why an average of percentages misleads.
Free course. Your Maestro, an AI, .
The sales director wants a single number for the 2025 repeat purchase rate. Someone opens the spreadsheet, sees the column with the rate for each of the 24 stores and asks Excel for the average: 48.8%.
It's a calculation people make in thousands of offices every day. But on the percentage points page, the whole chain's repeat purchase rate came out to 39.0%. Which one is right?
Check yourself: The average of the 24 stores' repeat purchase rates is 48.8%. The chain's rate, counting all customers together, is 39.0%. Why are they so different?
You can't just average one percentage per store
Each store's percentage is a division with its own denominator: Centro divides by 10,400 customers, El Encino by 340. When you average the percentages, you throw the denominators away and treat the two stores as if they had the same number of customers.
For the percentage of the total, the rule is: add up the tops, add up the bottoms, and divide last.
chain repeat purchase rate = (sum of customers who bought again) ÷ (sum of customers) × 100
It's the same denominator rule: the chain's percentage is "of all the chain's customers," so the denominator is all the chain's customers.
Two stores together
Worked example · 5 steps
Centro has 10,400 cardholder customers, and 3,120 bought again (30.0%). El Encino has 340, and 220 came back (64.7%). What percentage of the two stores' customers combined bought again?
Work out the next step yourself, then open it to compare.
In the chart, each point is a store: across, how many customers it has; up, its 2025 repeat purchase rate. The stores with the most customers are at the bottom; the little ones are at the top. That's why the average of percentages, which counts them all equally, comes out higher than the total.
If you don't see why the total lands so close to the big store, ask your Maestro.
If your work has a column of percentages by region, team or month that someone averages, ask your Maestro how to get the total.
Try it
The query below gets the average of the 24 repeat purchase rates: it calculates each store's percentage and then averages them with AVG. Add a second column, recompra_de_la_cadena, that adds first and divides last: SUM(recompraron_2025) * 100.0 / SUM(clientes_2025), inside ROUND(..., 1).
Return one row with promediodeporcentajes and recompradelacadena, both rounded to one decimal place. You're done when you see 48.8 and 39.0: almost ten points apart, from the same data.
Your turn
Return one row with promedio_de_porcentajes and recompra_de_la_cadena, both rounded to one decimal place. You're done when you see 48.8 and 39.0: almost ten points apart, from the same data.
Tables: sucursales (sucursal, municipio, ventas_2024, ventas_2025, clientes_2024, recompraron_2024, clientes_2025, recompraron_2025)
sucursales · 24 rows
| Column | Type |
|---|---|
| sucursal Nombre de la sucursal. | VARCHAR |
| municipio Municipio (ficticio) donde está. | VARCHAR |
| ventas_2024 Ventas del año 2024, en pesos. | BIGINT |
| ventas_2025 Ventas del año 2025, en pesos. | BIGINT |
| clientes_2024 Clientes con tarjeta que compraron en 2024. | BIGINT |
| recompraron_2024 De esos clientes, cuántos volvieron a comprar en menos de 90 días (2024). | BIGINT |
| clientes_2025 Clientes con tarjeta que compraron en 2025. | BIGINT |
| recompraron_2025 De esos clientes, cuántos volvieron a comprar en menos de 90 días (2025). | BIGINT |
First rows
| sucursal | municipio | ventas_2024 | ventas_2025 | clientes_2024 | recompraron_2024 | clientes_2025 | recompraron_2025 |
|---|---|---|---|---|---|---|---|
| Centro | Ciudad Ceiba | 41200000 | 43800000 | 9800 | 2840 | 10400 | 3120 |
| Chapultepec | Ciudad Ceiba | 27900000 | 26100000 | 7100 | 2200 | 6900 | 2140 |
| Plaza Norte | Ciudad Ceiba | 9400000 | 10100000 | 2600 | 960 | 2750 | 1070 |
Every run starts from fresh copies of the course's tables, so try anything. Tab indents; to leave the editor, press Escape, then Tab.
Ready to run your query.
So the 48.8% is useless?
It answers a different question: how is the typical store doing?, counting every store equally, whatever its size. If management wants to know whether the loyalty program works in the small-town stores, that question makes sense. What you can't do is present it as "the chain's repeat purchase rate."
The same trap shows up with averages of averages: each store's average ticket, each group's average rating, each route's average delivery time. If the groups are different sizes, the average of the averages is not the average of everyone. Add up the tops, add up the bottoms, divide last.
When you write the number, say which one it is:
The chain's repeat purchase rate was 39.0% (15,450 of 39,650 customers). The typical store does better: the average of the 24 is 48.8%, because the small stores have higher rates than the big ones.
Check yourself: Three regions report their percentage of late deliveries: 10%, 20% and 60%. What's the percentage of late deliveries for the whole company?
Think of a report at work that has percentages or averages by group (by region, by team, by month). Does anyone average them to get a total? How different are the sizes of those groups?
Reflect: Think of a report at work that has percentages or averages by group (by region, by team, by month). Does anyone average them to get a total? How different are the sizes of those groups?
Only you and your Maestro read this. It's kept on your account and deleted with it.