A list tells you who won. A specifier tells you who lost, and why. That second part is the whole job.

Most payroll sites hand you ten logos and a star rating. That answers a question nobody asked. Your question is narrower: which provider fits my state, my headcount, my pay structure, and the accounting tool I already run. A logo grid can't answer that. It doesn't know your setup, so it can't cross anything off.

We cross things off. On purpose. In the open.

The math a list can't survive

Count the combinations. Roughly 40 payroll providers worth naming. 50 states, each with its own registration and filing rules. A handful of pay structures — W-2 salaried, W-2 hourly, 1099 contractors, a mix. Then the accounting tool you're already locked into: QuickBooks, Xero, Wave, a spreadsheet, nothing.

Multiply it out. 40 × 50 × pay structure × existing stack lands in the tens of thousands of setups. No editor sits down and ranks the best payroll for a 1099-only shop in Ohio that keeps its books in Xero. Nobody has. The grid is generic because the work of being specific is too large to do by hand.

So we don't rank the field. We invert the problem.

We hold a short shelf. We eliminate the rest.

We keep a small roster at the counter. Each name earns its slot by covering a real slice of small-business payroll: one with a contractor plan that carries no monthly base, one that is native to QuickBooks books, one that scales past twenty with real HR behind it, one generalist that posts into both QuickBooks and Xero. We don't stock the whole field because the whole field is noise. We carry only what we can know cold.

For each one, we encode the real plan rules. Not the marketing page. The actual constraints: which pay structures a plan supports, which accounting tools it syncs to, where the per-state filing fees kick in, the headcount range where a plan is either overbuilt or about to break.

Then you answer four questions. We run your answers against the encoded rules. Whatever doesn't fit gets eliminated — and we print the reason next to the cross-off. No mystery. You see the constraint that killed it.

Anyone can name a winner. A specifier shows you the losers — and the one line that took each of them out.

An example elimination

Here is the logic running on a real setup. Feed it one input at a time and watch the roster shrink.

Setup inputWhat it rules outWhy
1099 contractors onlyPaychexNo standalone contractor tier — you'd buy a quoted W-2 filing engine to send 1099s.
Solo owner, no accounting toolPaychex (points to Square Payroll)Paychex is overbuilt and quote-priced at one person; Square Payroll files the same states off the lowest base on the shelf.
Books in XeroQuickBooks PayrollGusto is the one that posts into Xero cleanly at this size, so QuickBooks goes first — native books are its entire case, and yours aren't in it. Square Payroll doesn't post into Xero either; it stays on the board on price alone, with the by-hand export named as its trade-off.
6–20 employees, growingRules out the leanest picksNames Paychex — it scales past 20 when the lighter tools start to strain.

Notice the last row. Elimination isn't only about killing options. When your setup points at growth, a heavier provider stays on the board as the alternate — because the rule says it earns its keep past a headcount the primary pick can't hold.

Same setup in, same answer out

The engine is deterministic. Two people with identical answers get the identical result — same primary, same eliminations, same reasons. There's no roll of the dice and no mood. The rules are written down. Run them twice, get the same output twice.

That matters because it makes us checkable. If we cross off QuickBooks Payroll for a Xero shop, you can hold us to it. The rule is stated. Either it's true or it isn't.

The four inputs, and what each can rule out

Rules and a freshness pipeline — not a black box

Two things keep this honest, and both are things the system verifiably does.

First: the rules are human-written and public. A person wrote "no contractor-only plan → rule out for 1099-only setups." You can read it. You can argue with it. It is not a hidden weighting nobody can inspect.

Second: the eligibility matrix is machine-checked and kept current — our analysis may also involve AI-assisted or automated analysis. The eligibility rules are ours and they're written down. The engine keeps them current and applies them the same way every time — same setup in, same answer out. If it gave you a different pick than your neighbor with a different setup, that's the point.

The one moving part is freshness. Provider pricing and plan rules drift — a tier gets renamed, a sync gets added, a fee moves. To keep the matrix from going stale, we run a pipeline that reads provider pricing pages so our rules aren't twelve months out of date. When a plan rule changes, the encoded rule changes, and the eliminations shift with it. That's the extent of it. No scores, no confidence bands. Rules, applied, kept current.

Note: We stood up the pricing-page monitoring pipeline so plan-rule and fee data refresh on a schedule instead of by hand, and we tightened the contractor-only rule after a provider quietly retired a plan tier. Two eliminations changed as a result — both now carry the corrected reason.

Why we'd rather show you the losers

A winner with no reasons is a guess in a nice font. The exclusions are the proof. When you can see the providers that got crossed off — and the one line that took each one out — the survivor isn't a recommendation you have to trust. It's the one that didn't get ruled out. You can check the work.

See it rule things out for you.

The exclusions are the proof. Answer four questions and watch what gets crossed off — and why. No email.

Spec my payroll →