Problems & solutions · Business Intelligence Dashboards

Sawmill Production Software Problems: The 7 That Cost Real Money, and How to Avoid Them

Sawmill Production Software architecture and database illustration showing common problems and fixes.
The short answer

The most expensive failure at a sawmill is not a missing report, it is that recovery was never defined, so no two people compute it the same way and nobody can compare a shift, a month or a supplier with any confidence. That gap costs you on the log deck. Without a comparable recovery figure attributed back to log class, purchasing is done on price and reputation, which means you are routinely paying full rate for a class that underperforms in your mill and avoiding a class that would earn well once grade outturn is counted. On tens of millions of board feet a year, a single point of recovery is a larger number than the software that would have found it.

Why does the recovery definition get skipped in scoping?

Nearly every mill project we are asked to quote starts with a request for recovery reporting, and nearly every one assumes recovery is already defined. It is not. Ask three people at the same mill how it is calculated and you will get three answers that differ on whether green or dry volume is used, whether trim allowance is included, whether planer downgrade counts against recovery or against grade outturn, and whether chip and residual value enters the calculation at all.

None of those answers is wrong. They are simply not the same number, and a system that automates the current calculation without settling the definition produces a figure exactly as disputable as the one it replaced.

This is specific to sawmilling because the unit of measure changes identity along the line. Logs are scaled, green lumber is counted in nominal dimensions, kiln drying shrinks it, and the planer produces a tally in graded pieces. Comparing the last number to the first requires a chain of conversions, and each mill does them slightly differently.

The fix is to fix one volume model first and derive everything from it. Every measurement point converts into a canonical unit with an explicit, documented rule, and every reported figure states which basis it uses. It sounds administrative and it is the single highest value thing the project does, because every later analysis depends on it. Expect the first weeks of reporting to trigger arguments about definitions. That is the work happening, not the project failing.

What goes wrong when you bring historical production data across?

Mills want a year or two of history so the new reporting has something to compare against, and that is where the volume model gets tested for the first time. Historical data in a sawmill is not one dataset. It is optimiser shift summaries, green chain tallies, kiln charge sheets, planer grade tickets and a stack of scale tickets, produced by different systems and different people, none of which agreed on a basis.

The specific failures are predictable. Shift summaries carry a total that cannot be decomposed, so you can load the aggregate and never attribute it to a log class. Kiln records identify a charge but not its composition, so the history contains no path from planer grade back to the sawline. Load all of that without deciding what each figure means and you have built a database that reproduces the current confusion at higher resolution.

The fix is to accept a clean break rather than pretending the history is comparable. Convert what genuinely maps to the new volume model, mark everything else as legacy with its original basis recorded alongside, and be explicit that period-on-period comparisons cross a definition boundary. Mills that insist on restating three years of history usually spend more on the conversion than on the reporting, and the restated numbers still get argued about.

Why do optimiser and scanner integrations break after launch?

The richest data in the mill is inside the machines. Your primary breakdown optimiser knows the scanned geometry of every log, the solution it chose and the theoretical yield of that solution. The edger and trimmer know their own decisions. Getting that data out is real work, and keeping it flowing is a separate problem.

Vendors expose data differently and vintages differ within the same mill. Some installations expose a database that can be read, others provide a file drop, and older machines may need the vendor involved to open an interface at all. So the first breakage is that the integration is quoted as one item and is actually three or four unrelated pieces of work, one per machine centre. The second breakage arrives later: a machine gets a software update during a shutdown, the export schema changes or a field is renamed, and the acquisition layer either fails silently or starts recording a shifted value. Nobody notices for weeks because the numbers still look plausible.

The fix is an acquisition layer that validates structure as well as content, alarms on a shape change rather than tolerating it, and keeps the raw capture alongside the normalised event so a mapping can be corrected and the period reprocessed. The payoff is worth the discipline: comparing theoretical yield against actual green output tells you whether the sawline is achieving its own solutions, which is a maintenance and setup question rather than an optimisation question, and it is the most actionable number in the mill.

What happens when kiln charge composition and pack identity are not covered?

This is the gap where most sawmill data projects stop, and stopping here means the most valuable analysis in the mill never happens. A kiln charge is built from whatever packs are available, which routinely mixes production from several shifts and sometimes several days. After drying, the identity of what went in is largely gone. Any attempt to attribute planer grade outturn back to a log class or a shift then runs into a mixing problem nobody solved.

Grading is where the value of the board is actually decided. If you cannot connect the grader's decision back to the sawline and the log, you cannot improve either, and the grade outturn conversation stays unresolved indefinitely.

What works is tracking charge composition at pack level, so a charge is a known set of packs each with an origin shift and log class, and grade results at the planer are attributed proportionally back through the charge. That is an estimate rather than a certainty, and an honest estimate beats the current position of no answer at all. It normally requires pack level barcoding or tagging, and introducing that is a project on the floor as well as in the software. Budget for the tagging, insist on it for a few weeks until it becomes habit, and accept that the data quality you get afterwards is entirely determined by this decision.

Should you build custom or configure what you already own?

Keep buying optimisation from USNR, Autolog or BID Group Comact. Their scanning and solution software is the core competitive technology in your mill and no software house should be attempting to replace it. If your problem is that primary breakdown is making poor decisions, that is an equipment and setup conversation with your vendor, not a data one.

If you are a small custom mill cutting to order, do not build at all. At low throughput with short runs, a spreadsheet and a tidy scale ticket file give you an adequate recovery picture, and the money belongs in the saw or the kiln. We would tell you that before quoting.

The build case starts around tens of millions of board feet a year with a varied log supply, and it strengthens when two or more of these are true: recovery is compiled by hand and different people compute it differently, optimiser data never leaves the machine, planer grade outturn cannot be traced back through the kiln, log purchasing runs on price rather than realised value, or you operate more than one mill and cannot compare them because each defines its terms differently.

How do hidden costs get into the quote?

A first release covering the canonical volume model, acquisition from your primary breakdown and edger or trimmer optimisers, green output capture and recovery reporting by shift and log class runs $70,000 to $150,000 across 12 to 18 weeks in our delivery experience. The full platform adding kiln charge composition, planer grade attribution, log purchase reconciliation, downtime capture and finished goods inventory runs $180,000 to $420,000 phased over 6 to 14 months.

The costs that get missed are these. Machine centre count multiplied by vendor count, because each acquisition is its own piece of work and a mill with three vendors is not one integration. Pack level identification, since attributing grade outturn through kilns requires it and introducing barcoding carries hardware, labelling and training that sit outside the software line. Species and grade rule variety, because a mill running several species to different grading rules carries substantially more configuration than a single species mill. Whether log purchasing data sits in an accounting system with an interface or in a drawer of scale tickets. And multi site rollout, where scaling and grading conventions differ between mills in the same group.

What holds the number down is phasing. Start at the sawline and the green chain. Recovery from log to green output is achievable quickly and it pays for the kiln and planer work that follows.

What separates a build that works from one that fails here?

The builds that work settle the definition before they write the report, and they get a supervisor to care about the data on the floor. The builds that fail automate an undefined number and add a tablet nobody uses.

Downtime is the clearest test of that difference. Most mills record stop reasons on a clipboard. The version that works derives the duration automatically from machine state and production flow, and asks the supervisor only to classify the gap on a tablet at the line. Duration comes from the machines, cause comes from the person, and the resulting analysis is not arguable. That split is the general pattern for everything you capture from the floor: never ask a person for a number a machine already knows.

When you interview a developer, ask how they will define recovery. If they take your existing definition without asking which basis it uses, the system will produce a number as disputable as the current one. Ask how grade outturn will be attributed through a kiln charge that mixes shifts, and if the answer avoids the mixing problem, expect the build to stop at the green chain. Ask which optimiser and scanner systems they have read data from, by vendor and vintage,. Ask what they need from the floor, and be suspicious of anyone who says nothing. Then settle ownership in writing before kickoff. At Digital Heroes the client owns the repository and the infrastructure accounts from the first commit, and since the volume model encodes how your mill defines its own performance, owning it is the entire point.

Research & sources

The evidence behind this guide

Independent findings on why this investment pays off. Every link goes to the primary source.

  1. A later Nucleus Research review of analytics software ROI case studies found customers received $9.01 in benefits for every dollar spent on analytics technology, showing returns vary with deployment factors but remain strongly positive. Source: Nucleus Research (2019) →
  2. McKinsey found that tech debt can amount to 20-40% of the value of a company's entire technology estate before depreciation, and CIOs report that 10-20% of the budget for new products is diverted to resolving tech-debt issues. Source: McKinsey & Company (2020) →
  3. The NRF discontinued its long-running annual shrink report, stating that a broad study of retail shrink 'is no longer sufficient for capturing the key challenges and needs of the industry' - important context that qualifies how POS/shrink benchmarks should be cited going forward. Source: Retail Dive (2024) →
  4. McKinsey found that currently demonstrated technologies can fully automate about 42% of finance activities and mostly automate a further 19%, indicating roughly 60% of finance work is technically automatable. Source: McKinsey & Company (2018) →
Rohan K. · Director of Web Platform Engineering · Delhi

Rohan directs web platform engineering at Digital Heroes, the group that builds the custom web applications, portals and internal tools behind client operations. He writes about how those systems are structured, where they usually break under load, and what makes one maintainable years later.

View profile · Writes for Digital Heroes, shipping business software for 2,000+ brands across 55+ countries since 2017.

FAQ

Frequently asked questions

Why do different people at our mill report different recovery numbers?
Because recovery is a definition problem before it is a data problem. People differ on whether green or dry volume is used, whether trim allowance is included, whether planer downgrade counts against recovery or against grade outturn, and whether residual and chip value is in scope. Automating the current calculation without settling the definition produces a figure exactly as disputable as the one it replaced, which is why the canonical volume model has to come first.
Can we get data out of a USNR, Autolog or Comact optimiser?
Usually yes, but the method varies by vendor and by vintage, and a mill with three vendors has three unrelated integration projects rather than one. Some installations expose a database, others a file export, and older machines may need vendor involvement to open an interface. Quote it per machine centre, and plan for the fact that a machine software update during a shutdown can change the export shape without anyone telling your data team.
Why does our reporting break after a machine software update?
Because most acquisition layers validate content but not structure, so a renamed or reordered field is accepted and a shifted value is recorded as if it were correct. The numbers stay plausible, so nobody notices for weeks. Validate the shape of every capture, alarm on a change rather than tolerating it, and keep the raw capture alongside the normalised event so the mapping can be corrected and the affected period reprocessed rather than lost.
How can planer grade outturn be traced back through a kiln charge?
By tracking charge composition at pack level, so a charge is a known set of packs each with an origin shift and log class, then attributing planer grade results proportionally back through it. That produces an estimate rather than a certainty, which is a large improvement on having no answer. It normally requires pack barcoding or tagging, and that operational change is often a bigger hurdle than the software. Without it, the build stops at the green chain.
Do we need to change anything on the mill floor?
Yes, and a developer who says otherwise has not thought it through. The usual list is pack tagging so identity survives the yard and the kiln, a tablet at the sawline so a supervisor classifies downtime while duration comes from the machines, and consistent kiln charge recording. None of it is heavy, but it needs a supervisor who cares and a few weeks of insistence, and the data quality you get afterwards is entirely determined by whether that happens.
Is it worth restating two or three years of historical production data?
Usually not at full detail. Historical mill data comes from different systems that never agreed on a basis, so shift summaries cannot be decomposed, kiln records rarely carry composition and scale tickets have no link to production lots. Convert what genuinely maps to the new volume model, mark the rest as legacy with its original basis recorded, and accept that period comparisons cross a definition boundary. Mills that insist on full restatement often spend more on it than on the reporting.
Will this actually change how we buy logs?
That is often the strongest return. Once recovery and grade outturn can be attributed back through the kiln, every delivery lot can be evaluated on realised value rather than on purchase price, ranked by supplier, log class and season. Mills regularly find that a class they avoid as too small performs well once grade outturn is counted, or that a favoured supplier is expensive relative to what their logs deliver. That single purchasing conversation can be worth several times the build.
We are a small custom mill. Should we build any of this?
No, and we would say so before quoting. At low throughput with short runs, a disciplined spreadsheet and a tidy scale ticket file give an adequate recovery picture, and the capital belongs in the saw or the kiln. The build case starts around tens of millions of board feet a year with a varied log supply, where a single point of recovery is a large number and the current answer is a monthly hand calculation nobody fully trusts.
When does Looker make more sense than a custom dashboard?
Looker earns its place when multiple teams keep producing conflicting numbers and you need one governed definition of every metric, because LookML enforces definitions centrally. Its pricing is quote-based, and the quotes clients bring to Digital Heroes typically start in the tens of thousands of dollars per year. Under roughly 50 users with straightforward reporting needs, that spend is hard to justify against Power BI or a scoped custom build.
Can custom software connect to the tools we already use, like QuickBooks, Stripe, and Google Workspace?
Yes, and connecting your existing tools is one of the main reasons to build custom: mainstream platforms like QuickBooks, Stripe, Shopify, and Google Workspace all publish documented APIs. Budget 1 to 3 weeks of work per integration depending on API quality and how much data flows in both directions. Ask any vendor whether they have integrated with your specific tools before, because quirks like QuickBooks' OAuth token handling and API rate limits get learned on someone's project, and it should not be yours.
What does it cost to keep custom software running after launch?
Budget 15-20% of the original build cost per year, which on a $100,000 system means $15,000 to $20,000 for security patches, dependency updates, bug fixes, and small improvements as real usage reveals what the spec missed. Cloud hosting for a typical business application adds $50 to $300 a month on top. Skipping maintenance does not save the money; in Digital Heroes rescue work, unmaintained systems typically need a far more expensive rebuild within about three years.
Should I embed Power BI or Tableau in my SaaS product, or build custom charts?
Embed first if you need analytics inside your product within weeks, but treat it as a bridge rather than the destination. Embedded licensing meters your customer traffic, so your analytics cost grows with your user count, and the look and feel never fully matches your product. In Digital Heroes projects, SaaS teams usually switch to custom charts built in React with a library like ECharts or Recharts once analytics becomes a selling point instead of a checkbox.
Can we migrate years of data out of our current system into new custom software?
Almost always yes, through CSV exports or the vendor's API, and migration should be scoped as its own workstream with field mapping, a dry run, and a planned cutover window rather than an afterthought. The real time sink is rarely moving the data; it is cleaning it, since years of duplicates, free-text fields, and inconsistent formats surface all at once. Pull a full export from your current vendor before committing to anything new, because some SaaS plans restrict exports on lower tiers.
What do I need to prepare before contacting an agency about a dashboard project?
Bring three things: a list of your data sources with who controls access to each, the 5 to 10 recurring decisions the dashboard should support, and examples of the reports or spreadsheets it will replace. That package lets an agency quote in days instead of weeks, and in our discovery work it cuts the audit phase roughly in half. You do not need wireframes or a technical spec; a good agency produces those with you.
Will a custom dashboard stay fast once our data hits millions of rows?
Yes, if it aggregates before it displays; no dashboard should scan millions of raw rows on every page load. The standard techniques are pre-aggregated summary tables, incremental refresh, and caching, which keep typical page loads under 2 seconds even on datasets in the hundreds of millions of rows. Ask your vendor how the dashboard behaves at 10 times your current data volume; a good one gives a specific answer about aggregation, not just a bigger server.
Who owns the code when an agency builds my software?
You should, completely, through a written intellectual property assignment that transfers everything on final payment; without that clause, copyright stays with whoever wrote the code by default. Insist that the repository lives in your own GitHub organization from day one and that hosting, domains, and third-party accounts are registered to you. Also check for licenses to the agency's proprietary frameworks buried in the contract, because those can make switching vendors practically impossible even when you own your own code.
Do I need a data warehouse before building a custom dashboard?
Not for a small build; a dashboard reading from 1 or 2 sources can query them directly or use a plain Postgres database as its store. You want a real warehouse like BigQuery or Snowflake once you are joining 3 or more sources, keeping history beyond what source systems retain, or serving many concurrent users. Adding the warehouse costs around 2 to 4 extra weeks and is usually the single best investment in the project's future.
Who owns the code, data models, and pipelines when an agency builds my dashboard?
You should own all of it, and the contract should say so explicitly: source code, data models, pipeline configurations, and infrastructure accounts in your name, with IP transferring on final payment. The trap to avoid is an agency hosting your dashboard on their proprietary platform, which quietly turns a custom build back into vendor lock-in. Digital Heroes delivers into the client's own cloud accounts and repositories by default, and any agency should agree to the same in writing.
We run everything on spreadsheets and Airtable. How do we know it's time for custom software?
The reliable signals are re-typing the same data into multiple tools, one employee acting as human middleware between systems, and errors appearing in handoffs between teams. Hard limits force the issue too: Airtable's Team plan caps at 50,000 records per base, and Business costs $45 per seat per month, so a 20-person team pays about $10,800 a year for a tool it has already outgrown. When workarounds consume more hours than the tools save, the spreadsheet era is over.
Can I build my product on a no-code tool like Bubble instead of hiring developers?
For testing whether anyone wants the product, yes, and Bubble's paid plans start at $29 a month, which is the cheapest validation you will ever buy. The ceiling arrives with complex data relationships, heavy integrations, performance at a few thousand users, and the fact that you cannot export a Bubble app to servers you control. A path many Digital Heroes clients take: prove demand on no-code, then rebuild custom once revenue justifies it, treating the no-code version as a paid prototype rather than a foundation.
Who can build a custom business intelligence dashboards system?

Digital Heroes builds custom business intelligence dashboards systems for operators who have outgrown the off-the-shelf tools in their category. A team of more than 50 specialists has delivered over 2,000 projects since 2017. Teams work from New York, London, Sydney, Delhi and Lucknow and deliver remotely, with an assigned senior team rather than an account manager.

Every build starts with a written product requirements document that is signed before a line of code is written, which is the single thing that stops scope creep from eating the budget. Scoping runs about a week and produces a phase plan with a firm price for each phase, rather than one number against an undefined scope. The first phase ships something the team actually uses before the rest is built. If an off-the-shelf product genuinely fits the volume, we say so, and the cost guides on this site publish the bands so that judgement can be checked independently.

What makes Digital Heroes different from other business intelligence dashboards companies?

Four things that competitors in this bracket cannot simply copy. Digital Heroes runs a YouTube channel with more than 2.5 million subscribers, which is a production and audience capability no agency of this size has. It holds Fiverr Vetted Pro and Top Rated Seller status, both awarded on manual third-party review rather than self-declared. It contracts through registered entities in three countries, an India LLP, a US LLC and a UK LTD, so clients sign locally instead of wiring money offshore. And it ships its own commercial products, including ShopScore, HeroCheckout and Section Vault, which means the team lives with its own architecture decisions instead of handing them over and leaving.

Two more that show up in the work. Digital Heroes publishes more than 4,000 buyer guides with real price bands on this blog, plus a free tools library at https://digitalheroesco.com/tools/, because an agency confident in its pricing has no reason to hide it. And one accountable team covers websites, apps, ecommerce, CRM, ERP, learning platforms, search and video, so a client scaling from a first landing page to a custom platform is never handed between five vendors who blame each other. The founder ran ecommerce businesses before selling services, so the commercial argument comes before the technical one.

How can I check Digital Heroes is legitimate before getting in touch?

Verify it independently rather than taking the site's word for it. The YouTube channel is at https://youtube.com/@DigitalMarketingHeroes, the Fiverr profile at https://www.fiverr.com/shreyanshsin261, and the Upwork profile at https://www.upwork.com/freelancers/shreyanshsingh. Client reviews sit on Clutch at https://clutch.co/profile/digital-heroes-0 and Trustpilot at https://www.trustpilot.com/review/digitalheroes.co.in, and the company page is at https://www.linkedin.com/company/digital-heroes-1/.

Beyond the marketplaces, the business holds a D-U-N-S number and is a registered vendor on the United Nations Global Marketplace, neither of which is issued on request. Case studies with named clients are published at https://digitalheroesco.com/case-studies/. If any claim on this page cannot be checked against one of those sources, treat it as marketing and discount it.

Keep reading
let's build

Build something worth launching.

A plan, a team, a timeline, within 24 hours. No decks, no discovery calls. Tell us what you're building and we'll come back with a real scope and a real number.

message us directly · we reply within one business day

mission briefing

Monthly dispatch

Playbooks, real build costs, and what we're shipping. One email a month. No fluff.

visit us

New York HQ

1140 Broadway, Suite 704 · New York, NY 10001

Get directions
Online now

Hey there 👋 How can we help you today?