River
Y CombinatorBacked by Y Combinator
FREE TEMPLATE

Job Offer Letter and Pay Equity Check

Four documents and three sheets, including the check that runs before the number is spoken and prices every way of closing the gap.

Free download  ·  No account needed

Internal Equity Check, one row

Four outputs, and the last one is not a number

Run before the offer is spoken, including before it is mentioned as a range on a screening call.

Compa-Ratio

Salary divided by band midpoint, to three decimal places. This is the figure that travels between roles, because 0.915 means the same thing in two jobs with completely different bands.

Band Penetration

Salary minus the band minimum, over the band's full width. This is the figure that predicts the next three years, because somebody at 90 percent has almost no room left however good they are. Both figures every time: compa-ratio alone hides a wide band, and penetration alone cannot be compared across roles.

Incumbents Below The Offer

A count out of the total, never an average. A comparison set can have an entirely reasonable mean and still contain one person at 0.915 with six years of tenure.

Relationship To This Hire

The output that is not a number. Any incumbent below the offer who trains, onboards or supervises the person being hired, by name. This is the sentence that changes what a hiring manager wants to do, and it is invisible in every average.

Every offer letter template starts at the letter, and the letter is the last thing that should happen. By the time it is being written the number is already decided, and the number is where the damage is. So the first artifact in this pack is an equity check against the people already doing the job, and the rule is that no figure reaches a candidate until it has run. Not after the verbal, not as a range on a screening call.

The sequence is arithmetic rather than principle. While the offer is a figure in a spreadsheet, three moves exist: change the offer, change the incumbents, change the level, each of them priced. Once the hire has started, the correction only runs upward, because where a differential is proved an employer comes into compliance by raising the rate of the lower paid. The cheap version of the fix exists only before the offer goes out.

At Kessler Freight the band is 78,000 to 106,000 with a 92,000 midpoint, and the proposed offer is 99,500. All four incumbents sit below it, including the planner who trains new arrivals at compa-ratio 0.915 with 6.1 years. Lifting the two lowest to a 0.96 floor costs 4,440 a year. Levelling everybody costs 38,700. The whole intervention is putting both numbers on one page, because internal equity had meant the second one in the manager's head.

The correction costs 4,440 a year and nobody had priced it

The Internal Equity Check, the options it prices, and eighteen months of this company's own offers.

Internal Equity Check

Illustrative for a fictional regional freight company, Kessler Freight. Senior Logistics Planner, band 78,000 / 92,000 / 106,000. Candidate stated 97,000.

PersonSalaryCompaPenetrationTenureRelationship to this hireRecorded reason for position in band
Proposed offer99,5001.08276.8%n/an/aHiring manager's opening number
Salas95,8001.04163.6%3.2 yrsnoneMerit, three exceeds ratings
Trinh91,3000.99247.5%5.0 yrsnamed onboarding buddy, REQ-2071Merit. Declined a lead role in 2024
Bezuidenhout88,0000.95735.7%2.4 yrsnoneHired at 86,000, standard cycle since
Okafor84,2000.91522.1%6.1 yrstrains new plannersno recorded reason
Four of four incumbents below the offer. Two carry a named relationship to the hire. One row has no reason in writing for where it sits in the band.

Counted, never averaged. This set has a mean any compensation committee would sign off, and it still contains a planner at 0.915 with 6.1 years who will be teaching the new arrival the job. No position on this sheet is characterised as fair, unfair, lawful or unlawful; the row with no recorded reason is routed to whoever judges that.

Offer Build

Every option priced, including correcting nothing, so the default carries a figure rather than being invisible.

OptionBaseCompaGap to
candidate
Below
offer
Below
0.96
Correction
per year
Year one vs
option A
Verdict
A. Offer the midpoint92,0001.000-5,0003 of 42 of 400Cheapest, least likely accepted
B. Offer 99,500 and lift the two lowest to 0.9699,5001.082+2,5004 of 40 of 44,44011,940Recommended
C. Offer 99,500 and level everybody to it99,5001.082+2,5000 of 40 of 438,70046,200Also resets what the band means
D. Offer 99,500 and correct nothing99,5001.082+2,5004 of 42 of 407,500Correction survives, upward only
E. Offer above the band maximum106,5001.158+9,5004 of 42 of 4014,500Refused. A level decision
Option B detail. The 0.96 floor is 88,320. Okafor 84,200 to 88,320 is 4,120. Bezuidenhout 88,000 to 88,320 is 320. Correction 4,440.
Option C detail. 15,300 plus 11,500 plus 8,200 plus 3,700 equals 38,700.

Option B does not put fewer incumbents below the offer; all four are still below 99,500. What it buys for 4,440 is that nobody sits under a 0.96 compa floor and every position in the band has a written reason, including the one that did not. That distinction is the difference between a real check and a comfortable one.

Acceptance Rate by Offer Shape

Sixteen offers over eighteen months. Nine of the rows shown, with the roll-ups computed from all sixteen.

OfferRoleOpeningCompaShapeCounteredFinalOutcomeDays to
answer
O-102Sr Logistics Planner89,0000.967at or below mid98,000 asked92,000accepted6
O-103Sr Logistics Planner88,5000.962at or below mid98,000 asked88,500declined9
O-105Logistics Planner71,0000.947at or below mid80,000 asked74,000declined11
O-108Dispatch Supervisor79,5000.946at or below mid85,000 asked79,500declined14
O-110Sr Logistics Planner91,5000.995at or below mid96,000 asked91,500declined12
O-112Sr Logistics Planner97,0001.054above midno97,000accepted1
O-113Dispatch Supervisor88,0001.048above midno88,000accepted2
O-114Logistics Planner79,9001.065above midno79,900accepted1
O-116Sr Logistics Planner98,5001.071above midno98,500accepted2
At or below midpoint: 6 accepted of 11, 54.5%, 8 of 11 countered, median 6 days to an answer. Above midpoint: 5 of 5, 100%, none countered, median 2 days. All sixteen: 11 of 16, 68.8%.

Three of the five declines cited a competing offer and two cited the gap with no competing offer named. That distinction is what the sheet is for: it separates losing on money from losing on speed, and sixteen rows is enough to see it. Almost nobody keeps sixteen rows.

What is in the pack

01

Internal Equity Check

Compa-ratio and band penetration for the offer and every incumbent, tenure, the count below the offer, and the named relationship to the hire. The adjacent job runs as a separate block rather than merged, because a blended midpoint makes compa-ratio meaningless.

02

Offer Build

Every option priced, with the individual moves shown underneath each total and correcting nothing carrying a figure of its own. An option above the band maximum appears, is priced, and is marked refused with the reason.

03

Acceptance Rate by Offer Shape

One row per offer: compa-ratio offered, whether they countered, the counter, the final number, the outcome, days to an answer, and the reason if declined. This is what separates losing on money from losing on speed.

04

Offer Letter

Compensation second, immediately after the role, with the band range stated, the review cycle as an actual month, and equity by count and vesting rather than by dollar value. Field notes cover what people get wrong in each paragraph.

05

Verbal Offer Script

Four beats: the decision, the number with its structure in one breath, where it sits in the band, then silence. Plus what to do with each of the three things a candidate actually says.

06

Negotiation Guidance

Concessions ordered cheapest to most expensive, with base salary last and moved once. Includes the case where the honest answer is a different level rather than a bigger number.

07

How the Equity Check Runs

The two figures, the comparison set, the substantially-equal-work test for including the adjacent job, and the language boundary. A position with no reason in writing is recorded as having none, and nothing further.

How it works

  1. 1

    Send the band and the salaries

    Minimum, midpoint, maximum, plus current salaries with tenure from your HRIS. River never asks what the candidate currently earns.

  2. 2

    The check runs before anything else

    Both figures for everybody, the count below the offer, and the named exposure reported first because it is the one that moves a decision.

  3. 3

    Options get priced, including doing nothing

    Each correction decomposed into individual moves, so a total somebody has to approve can actually be read.

  4. 4

    Then the script, then the letter

    The negotiation happens on the call. The letter documents what the call decided, which is why it is drafted last.

Frequently asked questions

Why run an equity check before the offer rather than after?

Because three moves exist while the number is still in a spreadsheet and only one exists afterwards. Once somebody is on payroll the correction runs upward, and the statute expressly forbids reducing anybody's rate in order to comply. The same fix is a choice between priced options today and an obligation of unknown size later.

What is the difference between compa-ratio and band penetration?

Compa-ratio is salary over midpoint and it compares two jobs with different bands, so 0.915 means the same thing everywhere. Penetration is salary minus minimum over the band's width and it says how much room is left. Report both: compa-ratio alone hides a wide band, penetration alone cannot travel.

Who belongs in the comparison set?

Everybody in the job, plus the adjacent job where the work requires substantially equal skill, effort and responsibility under similar conditions. Titles do not settle it, and the regulation is explicit that time spent on differing duties is not the sole criterion. When it is unclear, run it both ways and show both.

Can I ask what the candidate currently earns?

This pack never does, and in several jurisdictions asking is restricted. California, for instance, requires an employer to give an applicant the pay scale on reasonable request and to give an existing employee the scale for their own job. Build the number from the band and the work instead.

The candidate wants more than the band maximum. What now?

That is a level decision, not an offer decision, so the space prices it and marks it refused. Breaking a band for one hire costs something nobody prices at the time: the band stops being a constraint and the next three hiring managers know it. If the level was genuinely wrong, change the level and rerun the check against the new set.

Does this tell me whether a pay gap is legal?

No, deliberately, and it will not characterise one either way. Several kinds of difference are legitimate, including seniority and merit systems. Where a position in the band has no reason in writing, the sheet says no recorded reason and routes it to a compensation professional or counsel, who judges it on your facts.

Where does this sit against the rest of hiring?

At the end. The interview loop produces the recommendation, debrief synthesis names the deciding competency that makes the rejection reason specific, and candidate communication handles everybody who did not get this offer. One thing still sits after it: a screening finding, which runs its own statutory notice sequence on dates rather than on judgement. Four documents and three CSV sheets, free.

Price the correction before you speak the number

Send the band and the current salaries with tenure. The first thing back is how many incumbents the offer would sit above, who among them trains the new hire, and what each fix costs a year.

Edit with AI