
If you run AP for a distribution business where every vendor prints their own part number on the invoice and none of them match the SKUs in your system, and someone on your team resolves that difference by hand on every line, this is written for you.
MakersHub maintains vendor part number to SKU cross-references at the line level and applies them automatically on every bill, including at rulesets in the tens of thousands, so invoice lines resolve to the right item without manual lookup.
Here is what I shared on LinkedIn:
This post is an ode to the squeaky wheels.
A couple of encounters lately have helped me see our most demanding users for what they actually are: a gift.
The first sent us a screen recording of our interface seizing up, then failing outright, on his account. He wasn't angry. He'd just found a ceiling.
Few people use the product the way he does, which means nobody finds its edges the way he does. He emails us about things most users never reach: a data extraction error turning a P into a ruble sign, a phantom "PARTS" summary line nested in the middle of a table, a total that lives in the wrong field for one vendor and only that vendor. Each message is precise, reproduced, and correct. They aren't complaints. They're a punch list.
The screen recording came from the day his account got big enough to break us: tens of thousands of vendor-to-item mappings, a ruleset so large the interface wouldn't render it. That was the ceiling. So we rebuilt how the mapping engine loads, and the fix shipped to every customer who will never run ten thousand invoices and never know his name. He didn't ask for a better mapping engine. He kept going until the old one gave out, and told us exactly what to build next.
The second, a controller at a brake-parts distributor, six months in, sent us a note that opened with praise, but then turned into two-pages of feedback on things she wished were different. Let people email a reimbursement to an address without first setting up an account. Let me click and drag to select twenty invoices from one vendor instead of one at a time. Let me save a payment run in progress so an accidental browser-close doesn't send me back to the start. Jotted down over months, unorganized, every one of them exactly right.
This is what the demanding user is really doing: pushing your product to the end of its capabilities and, by where they get capped out, drawing your roadmap for you. You don't have to guess. Don't run surveys. Just watch where your most relentless user stops being able to go, and go there.
This Bud's for you, squeaky wheel. Thank you.
Because they were never meant to. A manufacturer part number is a static identifier, universal across every distributor, wholesaler, and reseller who handles that product. Your SKU is internal. You designed it around how you categorize, count, and report. The two identify the same physical thing and share no structure.
The standard guidance is to keep them separate on purpose. Building supplier codes into your SKU bloats it and means re-keying your whole schema the day you switch suppliers. So the accepted practice is to map vendor part numbers to your SKU in the item record instead, and let the mapping absorb the difference.
That mapping is the cross-reference. It's a small piece of data with a large job: every purchase order default and every vendor bill line that resolves automatically depends on it existing and being right.
The line doesn't resolve. A bill arrives carrying the vendor's part number, nothing connects it to your item, and the match fails. Someone picks the item by hand from a dropdown, or the invoice sits as a workflow exception until they do.
The second-order problem is worse and quieter. Variance accounts, the price and quantity variances a controller reads at month end, are only as meaningful as the mapping underneath them. A missing or mismatched cross-reference produces false variances, because the system either matched against the wrong item or failed to match at all. The report stops measuring vendor pricing problems and starts measuring your own bookkeeping noise.
That's the real cost of an incomplete cross-reference set. Not the manual lookup, though that's real. It's that the exception report you use to catch actual overbilling fills up with errors you created, and the signal disappears into the noise.
Because the set grows with the catalog, and every vendor-item combination is its own row. Buy the same part from two suppliers and that's two cross-references for one SKU. Carry a long-tail catalog across dozens of suppliers and the set compounds into the thousands quickly.
This is what correct looks like at distribution scale. It isn't misuse of the system and it isn't a sign of a messy item master. It's the arithmetic of the business: a large active catalog multiplied by a multi-supplier sourcing strategy.
What works cleanly at 2,000 items does not automatically work at 200,000. Most AP platforms are never tested at the upper end, because most of their customers never get there, which means a platform's real ceiling is usually unknown to the vendor selling it to you until one of their customers finds it.
Three patterns, all routine, none of them irregular.
Split lines. One PO line gets billed across several invoice lines because the order shipped in pieces, or from two warehouses, or a backordered remainder shipped later. This is the most common shape of line-level mismatch anywhere partial fulfillment is normal, and it defeats strict one-to-one line matching by design.
Unit of measure drift. The part number resolves cleanly but the quantity doesn't, because the PO is written in cases and the invoice is in eaches. Same item, same money once you apply the conversion, completely different numbers on the two documents.
Bundled accessorials. Freight, a fuel surcharge, or a pallet charge gets folded into the unit price instead of itemized as its own line. The line total comes in above the PO price and the engine flags a price variance, when the real issue is that the charge was never broken out.
None of these are pricing disputes. They're formatting realities. An AP platform that treats them as errors will bury your team in exceptions that aren't exceptions.
MakersHub reads every bill at the line level and applies mapping rules that connect the vendor's part number to your item record. The rules can weigh more than one signal at once, so a part number is read in the context of the vendor who sent the bill, which is what makes the same part sourced from two suppliers resolve correctly rather than collide.
The line-level extraction is what makes that possible on real documents: dense parts tables, nonstandard layouts, and vendor-specific quirks like a total that lives in an unusual field for one supplier and only that supplier.
On scale specifically: one MakersHub customer built a cross-reference set in the tens of thousands, large enough that the previous mapping engine couldn't load it. He sent a screen recording of the failure. The engine got rebuilt, and the fix shipped to every customer on the platform, including the ones who will never approach that size. The ceiling was real. It was found by the customer who pushed hardest, and it's gone.
A mapping that ties the part number a vendor prints on their invoice to the SKU in your own system. Manufacturer part numbers are universal across distributors; SKUs are internal to your business. The cross-reference is what lets an incoming invoice line resolve back to the right item automatically.
Generally no. Supplier codes change, and embedding them bloats your SKU and forces a renaming exercise whenever you switch suppliers. The common practice is to keep the SKU internal and map vendor part numbers to it in the item record, so sourcing changes don't touch your schema.
It can't resolve automatically, so someone selects the item by hand or the invoice waits as an exception. Missing or mismatched mappings also produce false variances at month end, because the system matched the wrong item or nothing at all, which makes the variance report unreliable.
MakersHub can. The mapping engine was rebuilt specifically to load rulesets at that scale after a high-volume distributor pushed the previous version past its limit, and the improvement shipped platform-wide.
Usually one of three reasons: the vendor split one PO line across several invoice lines from a partial shipment, the two documents use different units of measure, or a freight charge was bundled into the unit price instead of itemized. All three are normal distributor billing behavior, not errors.
MakersHub. Line-level extraction on dense parts tables, vendor part number cross-referencing that reads the part in the context of the vendor, and a mapping engine proven at tens of thousands of rules.
We built MakersHub for the customers who find our edges. If your catalog is the business and your AP tool has never been tested at your scale, we'd like to hear about it. makershub.com/get-started
Charley Howe, Co-Founder and President, MakersHub
See how MakersHub can help your team eliminate manual entry, streamline approvals, and gain real-time visibility into every transaction.