Benefits reconciliation

Matching Employees Across Carrier Files

The same person appears as three different records across three systems. Why exact-match reconciliation silently fails, and how to build matching logic that doesn't.

Every reconciliation depends on one assumption: that you can tell when two records describe the same person. That assumption fails constantly, and when it does, it fails silently.

Katherine Ann Smith-Jones is Kathy Jones in payroll, Katherine Smith in the carrier's file, and K. A. Smith-Jones on the invoice. An exact match on name returns nothing. The reconciliation reports her as both "on the invoice, not enrolled" and "enrolled, not on the invoice" - two exceptions, one person, no actual discrepancy.

Multiply that across a few hundred employees and several carriers, and the exception list becomes noise that nobody trusts.

Why names don't match

Nicknames and short forms. Kathy, Katie, Kate for Katherine. Bill for William. Peggy for Margaret - where the connection isn't even phonetic.

Name changes. Marriage, divorce, legal change. Systems update at different times or not at all.

Hyphenation and compound surnames. Smith-Jones, Smith Jones, SmithJones, Smith, Jones - one person, five representations.

Middle names and initials. Present in one system, absent in another, or occupying the first-name field.

Suffixes. Jr, Jr., JR, III - inconsistently placed and inconsistently punctuated.

Field transposition. First and last name swapped, which is common with non-Anglo naming conventions and with any manual entry.

Diacritics and non-ASCII characters stripped by one system and preserved by another.

Case and whitespace. Trailing spaces are the single most common cause of a silently failed lookup.

Truncation. Carrier files with fixed-width name fields cut long surnames off mid-word.

Why identifiers don't rescue you

The obvious answer is to match on a stable identifier instead. It helps, and it isn't sufficient.

Carrier files are frequently masked, showing only the last four digits - which are not unique across a workforce of any size.

Some carriers assign their own member identifier and use it in place of anything you supplied.

Dependents may share the subscriber's identifier with a suffix, and the suffix scheme differs by carrier.

Employee IDs aren't shared with carriers, so they can't be the join key.

Multi-entity employers may have the same person under two employee IDs after a transfer or an acquisition.

What actually works: tiered matching

Don't try to write one rule. Match in tiers, from most to least reliable, and record which tier produced each match.

TierMatch onConfidence
1Full unique identifier, exactCertain
2Partial identifier + date of birthHigh
3Partial identifier + normalised last nameHigh
4Date of birth + normalised last name + first initialMedium
5Normalised full name + date of birthMedium
6Fuzzy name + date of birthReview required
7No matchInvestigate

Normalisation before comparison - applied identically to both sides:

  • Trim whitespace, collapse internal doubles
  • Upper-case everything
  • Strip punctuation, including hyphens and apostrophes
  • Remove suffixes into a separate field
  • Strip diacritics to base characters
  • Standardise nicknames against a lookup table

Date of birth is your best secondary key. It's stable, it's present in nearly every carrier file, and it doesn't change with marriage.

What matters more than the algorithm

Record the tier. A tier 1 match and a tier 6 match are not the same fact, and downstream decisions should be able to tell them apart.

Never auto-resolve below your confidence threshold. A fuzzy match that's wrong doesn't create an exception - it hides two of them, which is strictly worse than not matching at all.

Persist confirmed matches. Once a human confirms that Kathy Jones and Katherine Smith-Jones are the same person, store the mapping. Re-deriving it every month is how the same review happens twelve times a year.

Keep the cross-reference outside the reconciliation file. It's a durable asset. It should survive the spreadsheet it was born in.

Why this breaks spreadsheets specifically

VLOOKUP and XLOOKUP do exact matching. When they fail they return an error or a blank - not a warning that a probable match exists.

So a name mismatch doesn't announce itself. It produces two orphan rows in two different exception lists, and the person reviewing them has to notice that they're the same human. At fifty rows, someone does. At five hundred across six carriers, nobody does - and the exception list stops being read at all.

You can build fuzzy matching in a spreadsheet. It requires helper columns for normalisation, a nickname lookup table, a similarity calculation, and a manual review queue - maintained across every carrier file, every month, by whoever inherits the file. That's the point at which the tool has stopped fitting the job.

The tell: when your exception list contains pairs that are obviously the same person, and you fix them by hand every month, you are doing identity matching manually and calling it reconciliation.

Frequently asked questions

Why not just match on the identifier?

Carrier files are often masked to the last four digits, which aren't unique, and some carriers substitute their own member number.

What's the best secondary key?

Date of birth. Stable, widely present, and unaffected by name changes.

Should fuzzy matches be applied automatically?

No. Below a confidence threshold, route to review. A wrong automatic match hides two exceptions rather than surfacing one.

How do we handle name changes?

Persist the confirmed mapping. Don't re-derive it monthly.

Why does this create double exceptions?

An unmatched person appears on both sides - as billed-not-enrolled and enrolled-not-billed. One person, two exceptions, no real discrepancy.

Can spreadsheets do this?

Up to a point, with normalisation columns, a nickname table and a review queue. Maintaining that across several carriers every month is usually where it stops being worth it.

How Praisidio fits

Praisidio connects payroll, HRIS and benefits data and runs the invoice-to-enrollment-to-deduction match on a schedule, so the exceptions arrive as a list rather than a discovery. See the reconciliation pillar or book a demo.

See your own invoice reconciled

Praisidio matches carrier invoices against HRIS enrollment and payroll deductions on a schedule, so discrepancies arrive as a worklist instead of a year-end surprise.

Book a demo Start with the reconciliation guide

More in this section

General information about benefits billing practice, not legal, tax or actuarial advice. Carrier billing rules and adjustment windows vary by contract - confirm yours with your carrier, broker or counsel.