Why ranges, not exact salary
You don't need someone's exact number to know whether you're in the same ballpark — and asking for it is where most of the risk lives.
The single biggest design decision behind BallPark is what it refuses to ask for: an exact salary. Every flow works on ranges — a span you pick, or the low and high ends of what you'd accept — because a range is enough to answer the question that actually matters (“are we roughly aligned?”) without creating a number that's expensive to have leaked.
What we're actually protecting against
People worry about a few distinct things when they're asked to share pay: accidentally revealing an exact number to the other person, a tool operator (us) learning it, someone inferring who they are from what they submitted, or a determined party running the comparison repeatedly to triangulate a real figure. Every rule in this product traces back to one of those worries.
Peer comparison: a snapped range, not your typed number
When you pick a range in peer comparison, you might type an approximate figure to help yourself land on the right one — but that typed figure is never what gets sent or stored. The interface snaps it to the nearest range start at your chosen step size, and only that snapped, aligned range leaves your browser. The result you get back is your own range and a direction (higher, lower, or the same) — never the other person's range, and never a distance between you.
That last part is deliberate, not an oversight: we could show “you're about 15k apart” with almost no extra engineering. We don't, because any hint of magnitude makes it easier to narrow down someone's real number over a few comparisons, and it undercuts the one promise that matters most here — that this tool only ever reveals relative positioning.
Expectation check: ranges, not a single exact salary
Expectation check stores more precision than peer comparison — the actual low and high endpoints each side submits — because computing whether two ranges overlap requires both ends. That's genuinely different from peer comparison, and we try to describe it precisely rather than oversell it: what's stored is a range, not a single salary point, and what's revealed back is a match percentage or status, not either side's raw range.
The asymmetry matters too. A proposer who has already committed to a budget doesn't get to see the responder's exact expectation just because they created the room; a responder doesn't get to see the exact proposed range unless the product explicitly shows it to them. Each side only ever gets a signal calibrated to what they need to decide whether to keep talking.
Why “good enough to compare” beats “exact”
A range does everything an exact number does for this use case — you can tell whether two people are aligned, misaligned, or somewhere in between — without being a number someone can misuse once the conversation is over. That trade-off is the whole product.
For how these rules are enforced end to end, and what's retained afterward, see our Privacy page.