How to Calculate Compa-Ratio in Excel for Salary Ranges
By ExcelReady TeamUpdated 6 min read
The short answer
Compa-ratio is salary divided by the midpoint of its pay range. In Excel, write =C2/F2 if the midpoint is on the same row, or look it up by grade with =C2/XLOOKUP(B2,E2:E4,F2:F4). A result of 1.00 (100%) means pay sits exactly at the midpoint. Wrap it in ROUND or format it as a percentage.
Key takeaways
- Compa-ratio = salary ÷ range midpoint. 1.00 means at the midpoint, below 1 is below it, above 1 is above it.
- Look up each employee's midpoint by grade with XLOOKUP, so one formula fills the whole column.
- If you only have the range minimum and maximum, the midpoint is (minimum + maximum) / 2.
- Show the result as 0.95 with ROUND(…,2) or as 95% with percentage format. Don't multiply by 100 and add a % sign.
- The average compa-ratio of a group is a quick summary, but always read it next to the individual values.
On this page+
Compa-ratio compares a salary with the midpoint of its pay range, and in Excel it is one division: salary divided by midpoint. The work is in finding the right midpoint for each person, which XLOOKUP does by pay grade. This guide is for HR, payroll and analyst job seekers who need to build or check a compa-ratio column. All the salaries and ranges below are made-up example figures for practice, not pay benchmarks or advice.
What is compa-ratio?#
Compa-ratio (short for comparative ratio) shows where one salary sits compared with the middle of its pay range:
Compa-ratio = Salary / Range midpoint- 1.00 (100%) means the salary equals the midpoint.
- Below 1.00 means the salary is below the midpoint. 0.90 is 10% below.
- Above 1.00 means it is above the midpoint. 1.05 is 5% above.
A pay range is the minimum and maximum an organisation sets for a job or grade. The midpoint is halfway between them. Compa-ratio is a ratio like any other, so the ideas in the guide to calculating ratios in Excel apply here too.
The compa ratio Excel formula for one employee#
If the salary and the midpoint are on the same row, divide one by the other. Say C2 holds 52,000 and F2 holds the midpoint, 56,000:
=C2/F2The result is 0.9285714…, which reads as about 0.93, or 93% of the midpoint. Excel shows long decimals by default, so you will usually want to round or format it (see below).
Always put the salary on top. =F2/C2 gives 1.08, which looks like "above the midpoint" when the salary is really below it.
How to look up the midpoint with XLOOKUP#
In real files, salaries sit in one table and the pay ranges in another, linked by grade. XLOOKUP brings the right midpoint to each row. Here is the example data:
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Employee | Grade | Salary | Compa-ratio | Grade | Midpoint |
| 2 | Ana | G2 | 52,000 | G2 | 56,000 | |
| 3 | Ben | G3 | 66,500 | G3 | 65,000 | |
| 4 | Chloe | G2 | 58,800 | G4 | 84,000 | |
| 5 | Dev | G4 | 75,600 | |||
| 6 | Ema | G3 | 61,750 |
In D2, type:
=C2/XLOOKUP(B2,$E$2:$E$4,$F$2:$F$4)XLOOKUP finds "G2" in the grade list and returns its midpoint, 56,000. The $ signs lock the grade table so it stays put when you fill down (Windows: Ctrl+D; Mac: ⌘D). The results are:
| Employee | Calculation | Compa-ratio |
|---|---|---|
| Ana | 52,000 / 56,000 | 0.93 |
| Ben | 66,500 / 65,000 | 1.02 |
| Chloe | 58,800 / 56,000 | 1.05 |
| Dev | 75,600 / 84,000 | 0.90 |
| Ema | 61,750 / 65,000 | 0.95 |
XLOOKUP needs Microsoft 365 or Excel 2021 or later. In older versions, use =C2/VLOOKUP(B2,$E$2:$F$4,2,FALSE), which returns the same values. The XLOOKUP guide and the XLOOKUP function reference cover the other arguments, such as a message when a grade is missing.
How to calculate the midpoint from a minimum and maximum#
If the range table has only a minimum and a maximum, add a midpoint column first:
=(B2+C2)/2For a range of 46,000 to 66,000, this gives 56,000. The brackets matter: without them, Excel divides only the maximum by 2. Keep the midpoint in its own column so you can check it and reuse it.
The same table also gives you range penetration, which shows how far through the range a salary sits:
=(Salary-Minimum)/(Maximum-Minimum)For Ana, that is (52,000 − 46,000) / (66,000 − 46,000) = 0.30, or 30% of the way from the minimum to the maximum. Compa-ratio and range penetration answer different questions, so reports often show both.
How to round or show compa-ratio as a percentage#
You have two good options, and both keep the real number in the cell:
- Round to two decimals with ROUND:
=ROUND(C2/XLOOKUP(B2,$E$2:$E$4,$F$2:$F$4),2)returns 0.93 for Ana. The ROUND function guide explains the second argument. - Format as a percentage: select the column and press Ctrl+Shift+% (Mac: ⌃⇧%). 0.9285… shows as 93%. Add a decimal place with the Increase Decimal button if you need 92.9%.
Don't multiply by 100 and type a % sign into the cell. That turns the value into 93, which breaks any later maths. The percentage formula guide covers this trap.
To show how far above or below the midpoint someone is, subtract 1: =D2-1 gives −0.07 for Ana, or −7% when formatted as a percentage. That is the same idea as a percent change from the midpoint.
How to summarise compa-ratios for a team#
Once each row has a compa-ratio, the usual summaries are one formula each:
| Question | Formula | Result |
|---|---|---|
| Average compa-ratio | =ROUND(AVERAGE(D2:D6),2) | 0.97 |
| Lowest compa-ratio | =ROUND(MIN(D2:D6),2) | 0.90 |
| People below the midpoint | =COUNTIF(D2:D6,"<1") | 3 |
| Average for grade G3 | =ROUND(AVERAGEIF(B2:B6,"G3",D2:D6),2) | 0.99 |
An average hides the spread, so read it next to the individual values. A team with one person at 0.80 and one at 1.20 averages 1.00. These figures are descriptions of the example data only; how to act on them depends on the organisation's own pay policy.
Common compa-ratio mistakes in Excel#
Watch for these when you build or check the column:
- Dividing the wrong way round. Salary goes on top:
=C2/F2. - Unlocked lookup ranges. Without
$, the grade table shifts down as you fill and later rows return #N/A. - Grades that don't match. "G2" and "G2 " (with a space) are different to Excel. Clean the grade column with TRIM.
- Mixing pay periods. An hourly rate divided by an annual midpoint gives nonsense. Convert to the same basis first.
- Rounding too early. Round the final ratio, not the midpoint or the salary.
Compa-ratio is one of the calculations covered in Excel skills for HR jobs. If you also handle pay runs, the payroll calculator guide shows how gross-to-net columns fit together.
Practise it#
Compa-ratio is a lookup plus a percentage, so practise both parts. Practise XLOOKUP in a live spreadsheet to bring the right midpoint to each row, then use the percentages and percent change lesson to format and read ratios with confidence. Each step checks your formula as soon as you press Enter.
Try it yourself
This is a live spreadsheet. Type the formula in the green cell and press Enter.
Calculate Ben's compa-ratio in D3: divide his salary (C3) by the midpoint for his grade, found with XLOOKUP in the grade table (E2:F4). Round it to 2 decimal places.
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Midpoint | ||||||
| 2 | |||||||
| 3 | |||||||
| 4 | |||||||
| 5 | |||||||
| 6 | |||||||
| 7 | |||||||
| 8 | |||||||
| 9 |
Tip: XLOOKUP(B3,E2:E4,F2:F4) returns the G3 midpoint. Divide C3 by it, then wrap the whole thing in ROUND(…,2).
Practise this in a lesson
Frequently asked questions
What is the formula for compa-ratio in Excel?
Divide the salary by the range midpoint: =C2/F2. To find the midpoint by pay grade, use =C2/XLOOKUP(B2,$E$2:$E$4,$F$2:$F$4). Format the result as a percentage or round it to two decimals.
What does a compa-ratio of 0.9 mean?
It means the salary is 90% of the range midpoint, or 10% below it. A compa-ratio of 1.1 means 10% above the midpoint. What counts as a normal range depends on each organisation's own pay policy.
How do you calculate the midpoint of a salary range in Excel?
Add the minimum and the maximum and divide by 2: =(B2+C2)/2. For a range of 46,000 to 66,000, the midpoint is 56,000.
What is the difference between compa-ratio and range penetration?
Compa-ratio compares pay to the midpoint: salary / midpoint. Range penetration shows how far through the range pay sits: (salary - minimum) / (maximum - minimum). 0% is the minimum and 100% is the maximum.
How do I calculate an average compa-ratio for a team?
Calculate each person's compa-ratio in a helper column and average it with =AVERAGE(D2:D6). In Microsoft 365 you can do it in one cell: =AVERAGE(C2:C6/XLOOKUP(B2:B6,E2:E4,F2:F4)).