Datatruck Raises $12M Series A to Accelerate AI-Native TMS for Carriers
10/13/26, 3:12 AM
How One Carrier Found 93167 Hidden in Factoring Deposits

A carrier factoring substantially all of its freight came to us with seven months of deposits that looked normal. They weren't. Over that period $93,167 had been deducted before the money ever reached the bank: chargebacks on invoices brokers never paid in full, and short pays on invoices that came up light. Nothing was hidden. It simply never appeared as a line item in any report the company read. This is how pulling the transaction-level reserve report into Datatruck made it visible, and how you can check your own facility for the same thing.
The situation
The carrier had been on a full-notification recourse facility for years. Invoices went to the factor, the factor advanced against them, and a net wire landed a day or two later. The books balanced. The deposits arrived. Nobody had reason to look harder.
What nobody had checked was the gap between what the invoices were worth and what the deposits actually paid. When a broker short pays, or a factor charges an invoice back because the debtor never paid in full, the money comes straight out of the next deposit. The wire is simply smaller. There is no transaction to see, nothing to code, and nothing to reconcile against.
Over seven months that gap came to $93,167.
Why the money was invisible
Three documents describe the same factoring facility. Only one of them shows a chargeback at all.
What you are looking at | What it tells you |
Your bank feed | Only the net wire from the factor. A chargeback makes the deposit smaller. There is no separate transaction to find. |
The factor's account summary | One total for short pays across the whole period. No invoice, no debtor, no date. |
The transaction-level reserve report | Every chargeback and short pay, by invoice, by debtor, by date, with a running reserve balance. This is the one with the answer in it. |
Most carriers have never asked their factor for the third one. It is not withheld, and there is nothing adversarial about requesting it. It simply is not what gets sent by default, and a summary cannot be rolled forward or traced to an invoice.
That makes the first step a procurement step, not an accounting one. Ask for the transaction-level reserve report, unfiltered, covering the full period, before anything else.
How Datatruck made it visible
Running dispatch and the books on the same platform is what turns a reserve report into an answer. The invoice, what the load was supposed to pay, and what actually landed in the bank all sit against the same freight.
That matters because a reserve report on its own is a spreadsheet of deductions. It tells you an invoice was charged back. It does not tell you which load, which broker relationship, or whether the trip was profitable before the deduction landed. Reading it next to the freight is what turns a list of numbers into something a carrier can act on.
For this carrier the report ran to roughly 15,700 rows. Two columns did the work: the activity type for each entry, and the net change to the reserve account. Everything else was supporting detail.
Four traps that will give you a wrong number
Pulling the report is the easy part. Reading it correctly is where the work is, and each of these produces a total that looks plausible and is wrong.
The date column is mostly blank. Factors often populate the date on the first row of a transaction group and leave every following row empty. Around nine rows in ten arrived with no date. Pivot the file as delivered and most of the value drops out of every month while the totals still look reasonable. Forward-fill the dates first, then prove the fill: row counts by month should hold steady, and the closing reserve balance must still match the factor's statement.
The gross chargeback is not the entry. When an invoice is charged back, the factor also releases the escrow it had withheld on that invoice. Only the difference hits the reserve. One month showed $18,422.00 gross, less $230.27 of escrow released, for an actual reserve hit of $18,191.73. Post the gross and you overstate the loss by exactly the escrow rate.
Reversals cancel out, if you let them. One invoice appeared twice on the same day: a chargeback of $790.00 and a reversal of the same $790.00. A first pass that summed absolute values reported $1,580.00 of loss that never happened. Sum the signed values. On a factor ledger the sign carries the meaning.
Two different dates give two different answers. A chargeback has a transaction date and an invoice purchase date. Filtered one way, January showed ten chargebacks totalling $18,191.73. Filtered the other, five totalling $10,750.00, and not one of those ten January chargebacks related to an invoice purchased in January. Use the transaction date when rolling a balance forward or tying to a factor statement. Use the purchase date when judging which freight went bad. Never mix them, and write down which basis a figure uses.
What is still open, and what the broker already paid back
The most useful finding was not the total. It was the split.
Chargebacks over the period | Items | Amount |
Already repaid by the debtor, closed | 22 | $44,177.79 |
Still open, worth chasing | 37 | $49,470.58 |
Total charged back | 59 | $93,648.37 |
Nearly half the chargebacks by value had already been settled. Some invoices charged back in one month showed an offsetting overpayment later, because the debtor eventually paid and the factor returned the money.
Handing the carrier the raw chargeback list would have sent their accountant after brokers who had already paid. That costs a carrier credibility with the people it depends on for freight, and it is the fastest way to turn a recovery exercise into a relationship problem. Every chargeback was matched against later overpayments on the same invoice, with the offsetting date and amount carried onto the schedule so each match could be checked.
Making 290 short pays into a work list
The same period held 290 short pays worth $43,696.75. Handed over as one list, that is a spreadsheet nobody opens.
The 188 smallest came to $2,049.29 between them, an average of $10.90. Those are fuel-advance roundings, and chasing them costs more than they return. Splitting the list at $100 left 95% of the value in a third of the items.
Short pays | Items | Amount | Action |
$100 and over | 102 | $41,647.46 | Chase |
Under $100 | 188 | $2,049.29 | Note only |
Total | 290 | $43,696.75 |
The pattern was worth more than the total
Once the deductions were sitting at invoice level, the shape of the problem told the carrier more than the headline figure.
Chargebacks were concentrated and recent. Seven debtors accounted for $45,634.22 of the $49,470.58 still open. One month alone held 58% of the open balance. That month is where to start, because the paperwork still exists and the people who handled those loads are still reachable.
Short pays were the opposite: chronic and growing. They went from $2,724.56 in the first month to $11,499.50 in the seventh, more than quadrupling while freight volume held steady. Two brokers drove most of it.
Those two findings point at different fixes. Concentrated chargebacks are a credit and collections problem. Short pays climbing month over month are a rate confirmation and detention billing problem, which means the cause sits in operations, not in accounting. A carrier that only sees one total never learns that.
Proving nothing was missed
A recovery list is only worth acting on if you can show it is complete. Two independent checks did that here.
The short-pay total of $43,696.75 was built from the transaction detail and agreed exactly to the short pay line on the factor's own account summary for the same period. Same figure, two reports, assembled from opposite ends.
The chargebacks reconciled through the reserve roll-forward: opening balance, plus and minus every movement in the period, equals the closing reserve balance on the factor's statement.
One residual could not be cleared, a $4,135.19 difference isolated to a single month and most likely a genuine cargo claim booked to the same account. It was named as an open item rather than absorbed into the total. A number you cannot explain is worth flagging, not plugging.
How to check your own facility
If you factor, the same money may be sitting in your deposits right now. The sequence is short.
Ask your factor for the transaction-level reserve report, unfiltered, for the last twelve months. Not a summary, not a chargebacks-only extract.
Read your factoring agreement for the escrow and advance rates before you compute anything, and confirm both against the report.
Forward-fill the date column, then prove the extract against the closing reserve balance on your statement.
Sum the signed reserve change, never absolute values.
Match every chargeback against later overpayments on the same invoice, so you only chase what is genuinely open.
Set a materiality floor before you build a work list.
Tie your total to at least one figure on the factor's own summary, and name anything that will not reconcile.
What this means for carriers
Factoring is not the problem here, and neither is the factor. The deductions were all legitimate entries in a facility working the way it was designed to work. The problem is that a net deposit hides its own arithmetic, and the one report that shows the detail is the one nobody asks for.
Every carrier factoring freight is producing this data already. What changed for this carrier is that the invoice, the load, and the deposit finally sat in the same place, where the gap between them was something you could see rather than something you had to suspect.
Book a walkthrough and we will run the same check against your freight.