ERPNext Consulting: The 18-Day Gap Between Delivering the Steel and Sending the Invoice

Start with one number. On a typical day, a 35-person metal fabricator had $2.4 million of finished work that had been delivered but not yet invoiced. Not unpaid. Not even billed.

The owner was convinced his customers were slow payers. His average collection time was 61 days, and he blamed the market. So during an ERPNext Consulting review, we followed 40 jobs from delivery signature to invoice date, one by one, by hand.

The average delay was 18 days, and every one of those days belonged to him, not to the customer.

Where the 18 days actually hide

The causes were almost embarrassingly ordinary. Not one of them was about customers being difficult.

  • Signed delivery tickets sat in the truck cab until Friday, then in a folder until someone had time to type them in.
  • One line item was in dispute — a 12-foot section instead of 10 — so the entire $46,000 invoice waited on a phone call that took four days to return.
  • The office waited for the shop to confirm extra hours on a change order, and the shop had already moved to the next job.
  • Missing customer order numbers meant invoices bounced back for correction and were re-dated, pushing them another week.
  • Anything delivered in the last four days of the month simply waited for the month-end batch.

The rule that removed most of the delay

We replaced “invoice when the job is finished” with “invoice what shipped today, today.” Undisputed lines go out immediately. Disputed lines get pulled onto a separate short invoice with a named owner and a 48-hour clock.

Partial invoicing sounds like more paperwork. It isn’t. The fabricator went from 260 invoices a month to 340, the average invoice value barely moved, and the cash arrived two and a half weeks earlier.

Two supporting changes made it stick. Delivery tickets got photographed and uploaded from the truck at the moment of signature. And the person handling the dispute queue was measured on one thing: how many disputed lines were older than 48 hours. That number was 31 in week one and stayed under 5 after that.

What it was worth in cash

Collection time fell from 61 days to 44 over five months. On $14 million of annual revenue, 17 days equals roughly $650,000 of cash that stopped being tied up in work already delivered.

  1. Week 1: pick the single largest unpaid delivered job and invoice it today, even if one line is disputed.
  2. Week 2: set a rule that no delivery ticket stays in a vehicle overnight.
  3. Week 3: name one person who owns the dispute list and give them a 48-hour target and a visible daily count.

If you take one thing from this, take the order of operations. Fixing your own billing delay is far easier than chasing customers, and it pays the same day it is fixed.

ERPNext Consulting: The 3 a.m. Call That Started With “We Can’t Find the Valves”

The warehouse manager of a 60-person industrial parts distributor called me at 3 a.m. because a customer’s maintenance crew was standing idle next to a machine that needed a $400 valve. Our record said 26 on the shelf. The shelf said zero. That call ended an $180,000-a-year contract.

Two weeks later I began an ERPNext Consulting review, and the owner told me something he thought was good news. He had run three full stock counts that year, and every one came back clean. Every one was wrong again within a month.

Counting your stock is not the same as knowing your stock

A full physical count is a photograph taken once a year. What you need is a video that runs every day. This distributor’s problem was never theft or damage — it was about forty small decisions a day that nobody wrote down.

A picker grabs 11 instead of 10 because the box was already open. A returned part goes back on the shelf before anyone checks whether it works. Multiply that across 12,000 product lines and a year, and the difference between the record and the shelf becomes a guessing game.

We measured it. On the ten fastest-moving parts, the gap drifted by 4 to 7 percent every 30 days. Across the whole warehouse, that worked out to roughly half a million dollars of inventory that existed only on paper.

Count less, count smarter, count on a schedule

Here is the counting routine the ERPNext Consulting team set up, and it took a warehouse supervisor about 40 minutes a day to run.

  • Sort every item into three groups by how much money it moves each year. The top 300 get counted every four weeks, the next 1,500 every quarter, the rest once a year.
  • When a picker’s count doesn’t match the record, stop the order and recount that one item on the spot. Twenty seconds, before the box leaves the building.
  • Track one number every morning: how many open orders cannot ship complete today. Not the monthly fill rate. The raw list, every day, on one page.
  • Give returns their own shelf and a 24-hour clock. Nothing goes back into sellable stock until someone inspects and scans it.

What the first 90 days looked like

The order of operations mattered more than any single fix. We did it in three stages, and the third stage is where the money showed up.

  1. Weeks 1–2: label and map every storage location, including the overflow racks behind the loading dock that had never appeared on a map.
  2. Weeks 3–6: run the three-tier count and log every mismatch with a reason — wrong pick, return, damage, receiving error.
  3. Weeks 7–12: review the reasons weekly and fix the biggest one. Ours was receiving errors at the dock, which fell 70 percent once that area got its own scanner and its own person.

Fill rate moved from 71 percent to 94 percent in three months. Emergency air freight, which had been running $9,000 a month, dropped below $1,200. The owner put it plainly: the counting was never the problem, the timing was.

Tonight, before you leave, walk out to the shelf and hand-count your ten most expensive items. If two or more are wrong, you have just found next quarter’s project.

ERPNext Consulting: What Actually Happens on Go-Live Weekend, a Cutover Story From a 90-person Retailer

Everyone plans the go-live project for months and then compresses the riskiest 60 hours into a weekend. A 90-person retailer with 6 stores did exactly that, and I was in the room for it. Here is the honest timeline, including the parts that nearly went wrong.

Friday 6 p.m.: the last invoice on the old system

The plan said the old system stops at 6 p.m. At 6:40 the store manager at the busiest location was still ringing up a customer on it, because a queue had formed. Nobody had told the stores that the cut-off was a hard stop, not a guideline for the office.

By 7:15 we froze it anyway and agreed to re-enter those four sales manually on Monday. The lesson costs nothing to learn in advance: write the cut-off in the store’s language and post it where the till is, not in the project plan.

Saturday: the part everyone underestimates

Data transfer finished at 11 a.m., ahead of schedule. Then the real work started, and it was not technical. It was the 1,400 customer accounts with two records each, a duplicate phone number format, and a spelling difference between “Street” and “St.”

The team had a rule from the planning phase that saved the weekend: merge only where the phone number and the last name matched exactly. Everything else went to a review list. That list had 118 names, and it took two people until 9 p.m. to work through.

What nobody had prepared for was opening stock. Six stores counted inventory the previous Wednesday. Deliveries arrived on Thursday and Friday. Nobody updated the counts.

So the numbers loaded on Saturday night were already two days stale. We loaded them anyway, then ran a physical verification at the two highest-volume stores on Sunday morning and adjusted. If we had waited for perfect counts, the stores would have opened Monday on paper stock.

Sunday: the quiet failure

Sunday afternoon the system worked. Everyone relaxed. That was the dangerous moment, because a quiet test proves nothing about the volume of a real Monday.

We spent Sunday evening doing something more useful than another test:

  • Ring through 200 dummy transactions at one store, at 9 a.m. pace, to time the checkout screen.
  • Print a receipt, a return, a refund, and a gift receipt. All four are different code paths and returns were the one that broke.
  • Run a full day-end close on the dummy data to see how long it takes and what report it produces.
  • Write the first-three-days hotline number on a card and tape it next to every till.

Monday 7 a.m.: what tells you it worked

The store staff arrived 45 minutes early, which never happens. By 9:30 the first shift had processed 340 transactions and the checkout screen was running 4 seconds slower than the old system. Not a failure, but worth knowing before a lunchtime rush.

ERPNext Consulting had set up two things that mattered more than any feature. A single dashboard that showed transactions per hour by store, so a store that went silent was visible within 20 minutes. And a rule that no price or stock adjustment could be made in the first five days without a manager log, which kept the first week’s data clean enough to trust.

ERPNext Consulting also insisted on a rollback decision point at Sunday 6 p.m. That point passed without being used, and having a real deadline is exactly why everyone stayed focused.

The takeaway for your own cutover: count your stores’ inventory as late as physically possible, define your merge rule in writing before the data arrives, and test a return, not just a sale. Returns are where the money and the confidence quietly leak out in week one.

ERPNext Consulting: Why Your Purchase Orders Keep Failing Three-Way Match, and How a 140-person Contractor Fixed It

A 140-person electrical contractor was paying $640,000 a month to 90 active suppliers and subcontractors. Their accounts payable team of three was holding 180 invoices they could not process, some over 60 days old, all stuck in some version of a mismatch.

Their finance director asked me a fair question, so let me answer it the way I answered her. These are the four questions I hear most, and the answers are less about software than most people expect.

Question one: if the purchase order is correct, why does the match fail?

Because the purchase order was usually correct and the delivery was usually not. In this case, 71 of the 180 stuck invoices involved partial deliveries. A purchase order for 400 meters of cable arrives as 250 meters on Tuesday and 150 on Friday, and the paper delivery note says “400” because the supplier writes the total order on the note.

Receiving records 250. The invoice claims 400. The match fails. Nobody is wrong, and the invoice sits for a month.

Question two: how do you handle prices that were never on the order?

Subcontractor work is where this bites hardest. A rate gets agreed on the phone, work gets done, the invoice arrives, and the rate was never entered anywhere. Roughly 30% of this contractor’s mismatches came from verbal rates.

The fix was unglamorous. Any verbal rate agreement gets entered as a purchase order within 24 hours, even if the work already happened. A blank order with a good description beats a dispute two months later. If it is not written down before the work starts, you are not buying, you are guessing.

Question three: what should the tolerance be?

Zero tolerance sounds disciplined and creates a bottleneck. We set three rules instead:

  1. Quantity variance under 2% on the order line: auto-match, no human review.
  2. Price variance under $150 total: match, but notify the buyer in a weekly digest.
  3. Anything else: hold, and tell the supplier the same day what is missing.

That last step mattered more than the tolerances. Telling the supplier on the same day, instead of six weeks later, closed 62 invoices in the first month because the supplier could just send a corrected document.

Question four: is this a software problem at all?

Partly. ERPNext Consulting rewrote the approval flow so purchase orders above $5,000 needed a second signature, and receiving against a purchase order became a required field rather than an optional one. That removed the manual matching for about 80% of invoices.

But the bigger change was a short Monday meeting between the buyer and the receiving clerk, covering every open order not received in full. Twenty minutes, four people, and the number of stuck invoices dropped from 180 to 31 within two months.

ERPNext Consulting also set up a weekly aged mismatch report that goes to the finance director, not to accounts payable. When the people creating the mismatch see the report, the mismatch gets fixed at the source.

Try this next week. Pull every invoice older than 30 days that has not been paid and group them by reason rather than by supplier. Most contractors find two or three reasons explain three quarters of the pile, and neither of them is the software.

ERPNext Consulting: From 11 Days to 3, How a 200-person Food Producer Closed Its Books Faster

Closing the month took 11 working days at a 200-person food producer with three production sites. The plant controller described it as “two weeks of hunting.” The interesting part is not that they got it to 3 days. It is where the 11 days were actually going.

Where the 11 days went

We logged every task for one close. Day one through three were waiting for data, not working on it. Confirmed production quantities came from paper batch sheets that a supervisor collected on Fridays. Warehouse movements were reconciled separately and did not match production.

Days four through seven were reconciling inventory. Perishable goods made this worse, because waste and rework had to be estimated from memory when the paperwork was thin. Days eight through nine were margin review. Days ten and eleven were rework caused by everything upstream.

So roughly 6 of the 11 days were spent fixing or waiting, not analyzing anything. The close was slow because the data arrived late and wrong, not because the accounting team was slow.

The three blockers nobody put on the project plan

The first blocker was batch sheets. Production recorded quantities on paper and entered them into a system days later, so inventory and output told different stories. Moving recording to a station terminal at the end of each shift fixed this in about five weeks.

The second was waste. Nobody wanted to record it, because recording waste looks like a personal failure. We made it a field with a reason code, reviewed it weekly by shift instead of by person, and the resistence disappeared once it stopped feeling like blame.

The third was cut-off discipline. A shipment loaded at 6 p.m. on the last day of the month might be recorded on the 1st. Setting a hard daily cut-off at 4 p.m. for stock movements, with late items going to the next day, removed a fight that had lasted years.

What the close looks like now

The sequence changed more than the speed. Here is the pattern that worked:

  • Production and waste recorded per shift, every day, at the station terminal.
  • A five-minute daily check by the plant controller: any negative stock, any variance over 3%, any missing reason code.
  • Inventory accuracy verified weekly by counting 30 high-value items, so month end holds no surprises.
  • Month-end tasks started on day one because the data was already there, not gathered.

Day three now produces a reviewed margin report by product line. The controller’s team spends its time asking why cheese yields dropped 2% in week three, instead of chasing batch sheets from week one.

ERPNext Consulting worked with the operations and finance leads on those three blockers, and the honest finding was that only about 20% of the effort was configuration. The rest was agreeing that waste gets recorded even when it looks bad, and that a 4 p.m. cut-off applies to everyone, including the sales director.

If your close runs past 7 days, do not start with the accounting process. Time your data. Ask when the production number is first written down, and where it travels before it becomes a journal entry. The close ends when the data arrives, and that date is set on the shop floor.

ERPNext Consulting: Six Questions a 12-person IT Services Firm Answered Before Automating Retainer Billing

A 12-person IT services firm, $2.4 million in annual revenue, and 38 clients on monthly retainers. Their billing took two people four days every month, and it was wrong often enough that two clients had started checking invoices line by line before paying.

The owner wanted to automate. I asked him to answer six questions first, in writing. It took three weeks and it saved the project.

The six questions, in the order that matters

  1. What exactly triggers a billable event: hours logged, a ticket closed, a milestone hit, or simply the calendar date?
  2. Which clients have a cap on hours, and what happens to overage: billed, absorbed, or rolled forward?
  3. Who is allowed to change a rate on an existing agreement, and is that change retroactive to the start of the month?
  4. What happens when a client is invoiced on the 1st for a month that started 3 days ago?
  5. Which items are taxed, which are exempt, and does the answer change per country or per client type?
  6. What does a credit note look like, and who approves one?

Questions 2 and 6 were where the firm’s real pain lived. Three clients had overage caps, and no two staff members agreed on how the cap was applied. Two credit notes from the previous year had never been applied at all, worth about $7,400.

What changed in the first billing cycle

With the rules written down, the configuration became a short job rather than a debate. Retainer agreements became recurring contracts with hours included, rates locked per agreement, and an overage rule that either billed or warned, depending on the client.

Month one took six hours instead of four days, and the two people who used to do it now spend that time on collections. The days sales outstanding figure moved from 54 days to 38 days in one quarter, mostly because invoices now go out on the 1st instead of the 8th.

Where firms get stuck is trying to automate before the rules are agreed. Software cannot resolve an argument between your delivery lead and your accountant. It will only make that argument happen faster and with better reports.

The check that catches almost every retainer error

Before sending any retainer invoice, run one comparison: hours logged this month against hours included in the agreement. Anything over 100% needs a human decision, and the decision should happen before the invoice leaves, not after the client calls.

ERPNext Consulting built that check into the approval step for this firm, so a flagged invoice cannot be sent without a second person reviewing the overage. In the first five months it caught 14 invoices that would have been disputed, worth about $19,000 in rework and awkward phone calls.

If you run a services business on retainers, do this in the next two weeks: list every client agreement on one page with hours included, rate, overage rule, and billing date. You will almost certainly find two agreements you cannot explain. Fix those before you buy anything.

ERPNext Consulting: How a 20-person Export Team Stops Bleeding Money on Currency Every Month

In March, a 20-person export team shipped €412,000 worth of goods to 14 countries. In April, their finance lead found €9,300 of that revenue had quietly evaporated. Not lost in transit. Lost in the gap between the price they quoted, the rate they booked, and the rate the bank actually gave them.

Nobody stole anything. The money leaked through four handoffs where a number got typed into a spreadsheet instead of a system.

The leak is in three places, not thirty

When I audit export operations, I expect to find the same three gaps. First, the sales order is priced at the rate on quote day, which may be 3 weeks before the invoice. Second, the invoice is raised at the rate on shipping day. Third, the bank credits the account at the rate on settlement day, which can be 45 days later.

Each of those is defensible on its own. Together they create a gap nobody owns. The salesperson thinks finance handles it. Finance thinks sales quoted it correctly. The controller sees a foreign exchange line at month end and assumes it is normal.

Add supplier payments in the same currencies and the gap doubles. One team was paying a European supplier in euros while collecting from a customer in euros, but never matching the two, so they bought euros at retail rates while sitting on euros they already owned.

The routine that replaced a two-day scramble

We did not start with hedging. Hedging is the last step and it requires clean data. We started with visibility, and the whole routine takes about 30 minutes a month once set up:

  • Every sales order carries the quote rate and the order date, so the gap from quote to invoice is visible per order, not buried in a total.
  • Customer receipts get matched to the specific invoice and the specific bank line, so the settlement difference is recorded per transaction instead of in a lump.
  • A single currency position report shows, by currency, what is owed to you, what you owe, and the net exposure on any given day.
  • Payments to suppliers in a currency are made from that currency balance first, before buying new currency.

Within four months this team found €11,000 a month that was previously invisible, mostly through netting payables against receivables in the same currency. Most currency losses are not market losses. They are matching losses.

What to set up before you touch automation

The configuration work is straightforward once the rules are written down. That is the part ERPNext Consulting focused on with this team: agreeing in writing which rate applies on which document, and who approves a manual rate override. Overrides turned out to be 22 of the 83 transactions in month one, which was the real story all along.

ERPNext Consulting also helped them set a simple rule that ended most arguments: any order with a quote-to-invoice gap over 21 days gets re-priced or flagged for approval before shipping. That one rule removed roughly 60% of their exposure.

Start narrower than you think. Take last month’s foreign currency invoices and trace each one from quote to bank credit, writing down every rate you used. If you cannot find the rate for three of them, you have found your problem, and it is not the exchange rate. It is the trail.

ERPNext Consulting: Three Assumptions a 70-person Machine Shop Had to Drop Before Scheduling Finally Worked

Ken is the plant manager at a job shop with 70 employees, 14 CNC machines, and a backlog that swings between 3 weeks and 11 weeks. He called me because his promise dates were fiction. He would quote 6 weeks, deliver in 9, and apologize in every email.

His team had already built a beautiful bill of materials for all 340 active parts. That was the frustrating part. The data looked good. The schedule still lied.

Assumption one: if the bill of materials is right, the schedule will be right

Accurate parts lists tell you what to buy. They tell you nothing about how long a job actually sits on a machine. Ken’s routing said 4.2 hours for a part that consistently took 7 hours to run, because setup time had been averaged across a batch of 50 and he mostly ran batches of 8.

We pulled 90 days of job history and compared quoted time to actual. On the 12 parts that made up 61% of revenue, the gap was between 40% and 90%. The parts list was fine. The time model was fantasy.

Assumption two: every job deserves a full work order

Ken’s shop was creating full work orders for repair work, one-off fixtures, and prototype jobs worth $300. Each work order took a planner 25 minutes to create and 40 minutes of operator time to report against. On a $300 job, that overhead is the profit.

We split work into three lanes instead:

  1. Repeat production jobs over $2,000 got full work orders with routing, material issue, and time tracking.
  2. Repair and rework under $500 got a single line item against the customer order, no routing, no material issue.
  3. Prototypes got a job cost code so engineering could see the spend without touching the production schedule.

Planner time dropped by roughly 30 hours a month, and the schedule stopped being polluted by jobs that never belonged on it. Adding detail to every job made the important jobs invisible.

Assumption three: operators will update the system if you ask them nicely

They will not. Not because they are difficult, but because they are standing at a machine with greasy hands and a chip conveyor that needs clearing. Any step that requires walking to a terminal will be skipped by Thursday.

Working with ERPNext Consulting, we put a tablet on a swing arm at each of the six busiest machines and cut the job reporting screen down to three buttons: start, pause, complete. Nothing else on the screen. Job reporting accuracy went from roughly 60% to 94% in seven weeks.

That accuracy is what made promise dates believable. Ken now quotes 5 weeks and delivers in 5 weeks, and his on-time delivery sits at 91%, up from 63%.

The lesson generalizes. Before you buy scheduling software, measure your actual run times against your quoted times on your top 10 revenue parts. If the gap is over 30%, no system will fix your dates. Fix the number first, then automate it.

ERPNext Consulting: A 45-person Distributor Cut Stock Write-offs From $180K to $22K in One Year

Diane runs operations at a plumbing supplies distributor: 45 employees, 6,200 active SKUs, two warehouses 30 miles apart. When I first sat in her office she opened a spreadsheet and said, “Every quarter we count. Every quarter the numbers are wrong. Then we spend a week arguing about who is wrong.”

That arguing cost her $180,000 in write-offs the year before we met. Not theft, not damage. Just inventory where the shelf and the system disagreed, and nobody could prove which one was right.

The count was never the problem. The paperwork timing was.

We stood at three receiving docks for two days. A truck arrives at 7:40 a.m., paperwork gets signed, product is on the shelf by 11:15. But the receiving clerk only typed the receipt into the system at 4:30 p.m., because that is when he had a quiet moment.

For five hours the shelf said 120 units and the system said zero. Sales sold from the shelf. The system sold from zero. One product, two truths, and a picker standing in the aisle guessing.

Fixing that single habit took six weeks. Here is what actually changed on the floor:

  • Receiving typed at the dock on a tablet, before the pallet moved. Fifteen seconds per line instead of a five-hour delay.
  • Short shipments got flagged the same hour, so the credit request to the supplier went out while the driver was still in the yard.
  • Cycle counts moved to 40 SKUs a day, picked by movement volume. The quarterly full count that nobody trusted disappeared entirely.

Why a big warehouse project would have failed here

Diane had already been quoted a full warehouse management rollout with handheld scanning, bin locations, and six months of training. She almost signed it. I asked her one question: which of your 6,200 SKUs are you actually wrong about?

We tested 300 items. Only 41 were wrong, and 38 of those traced back to receiving timing or to returns sitting on a bench. The other 5,859 were fine. She almost spent six figures fixing a problem that lived in one afternoon habit.

This is where ERPNext Consulting came in, and the scope was deliberately narrow. No bin locations. No barcode hardware on day one. Three configuration changes, one tablet at the dock, and a daily report that listed every item where the shelf and the system had drifted more than 2 units.

What the numbers looked like after 12 months

Write-offs dropped from $180,000 to $22,000. The remaining $22,000 was mostly genuine damage and expired stock, which is a cost you can plan for. Cycle count time went from 9 people for 3 days, four times a year, to one person for 45 minutes each morning.

The part Diane cares about most is not the savings. It is that her warehouse manager stopped dreading the first Monday of every quarter. Nobody argues about inventory when the record is updated at the moment the event happens.

If you want to test this in your own business this week, pick 20 items that move fast. Compare the shelf to the system before lunch, then watch your receiving process for one full day and note the time gap between the truck arriving and the entry being typed. That gap is your real inventory accuracy problem, and it is usually measured in hours, not dollars.

ERPNext Consulting After Go-Live: The 90-Day Checklist Most Managers Skip

Go-live is not the finish line. It is the day the vendor stops being in the building every day, and the day your own people either own the system or slowly drift back to spreadsheets.

I have seen this drift in maybe a third of the rollouts I’ve been near. It never announces itself. It starts with one person keeping a private file “just in case,” and six months later the official report and the real numbers disagree.

Days 1 to 30: watch behaviour, not features

Forget dashboards for a month. Track three things daily and put them on a wall where people walk past.

  • Percentage of transactions entered on the day they happened — target above 90% by week four
  • Number of items or customers created by hand instead of chosen from the list — any number above zero is a conversation
  • Support tickets by department. The department with the most tickets is usually the one whose process was changed least

One logistics manager told me his team was “fully on board” while the ticket log showed 41 entries from his department in a fortnight. Behaviour tells the truth. Opinions don’t.

Days 31 to 60: hand over the keys

Identify two super users per department — the people others already go to with questions. Give them real authority: they can change a field label, adjust a report layout, and approve small process tweaks without a committee.

Then run your first full month-end close in the new system with no outside help in the room. It will be uncomfortable. That discomfort is the point; it is how knowledge actually transfers.

Days 61 to 90: prove the numbers are trustworthy

  1. Pick one number the business cares about — gross margin, stock value, overdue receivables — and reconcile it manually against source documents
  2. Compare it to the system report. Any gap over 1% needs a root cause, not an explanation
  3. Publish the result to the management team, including the gap. Transparency here buys you years of credibility
  4. Set a quarterly review where an ERPNext Consulting advisor checks whether the process has drifted from the design

That last item is the one most companies drop first when budgets tighten, and it is the one that pays for itself. Systems don’t fail at go-live; they fail nine months later when nobody is watching.

If you take one action from this, do it this week: ask each department head to name their two super users and write the names down. If they can’t, you’re not finished implementing — you’re just running software.