BriefCheck All guides

Timekeeper rate consistency: why the same biller can't bill two rates for one task code

The error looks like this:

timekeeper 22547 bills task code L510 at 2 different unit costs: 350, 375

The rule is simple to state: one timekeeper, one task code, one rate. If TIMEKEEPER_ID and LINE_ITEM_TASK_CODE match on two different line items but LINE_ITEM_UNIT_COST doesn't, that's flagged. It's not comparing dollar totals or hours here, just the rate itself.

Two things about scope that are easy to miss. First, this looks across every line item in the submitted file, not per invoice. If you're batching several invoices into one submission and a timekeeper's rate changed partway through the billing period covered, both rates show up in the same file and this check has no way to know one is "old" and one is "new" without a date to reason from, so it flags the mismatch either way. Second, it's keyed on task code specifically, not the line item as a whole. The same timekeeper billing different task codes at different rates is completely normal (that's the point of task codes) and never trips this.

What usually causes it

A rate change mid-period. The most common real cause, and not actually a data error: a timekeeper's billing rate went up (an annual increase, a promotion) between when some of these line items were worked and when others were, and the file covers both. The fix here isn't the file, it's knowing this will always flag until LEDES gains a way to timestamp a rate itself, which today's spec doesn't have. Some billing systems handle this by splitting the invoice at the rate-change date instead of relying on the file format to carry the distinction.

A typo in one entry. Someone fat-fingers a unit cost on a single line, and everything else for that timekeeper and task code has the correct rate. This is the case where the error is actually pointing at a real mistake, not an artifact of timing. If only one line item's rate looks out of place among several matching ones, start there.

Two timekeepers sharing an ID. Less common, but it happens with poorly maintained timekeeper tables: two different people got assigned the same TIMEKEEPER_ID at some point, and their genuinely different rates now collide under one id. If the rates in the error message correspond to two people you can actually name, this is probably it, and the real fix is in the timekeeper table, not the invoice.

Try it

This is a Tier 2 (consistency) check, same as every check on this list, part of a Day Pass or Ledger subscription. Unlike a couple of the other error guides here, there's no pre-built sample fixture for this one behind the account page's sample lookup yet, since it comes from BriefCheck's own consistency rules rather than the underlying LEDES parser's. The fastest way to see it fire is two line items in a real (or test) file, same TIMEKEEPER_ID and LINE_ITEM_TASK_CODE, different LINE_ITEM_UNIT_COST.

Try it on your own file →