A small sawmill can use AI for three admin jobs: turning emailed orders into clean order lines, summarising recovery per log from a tally sheet, and drafting quotes from a price list you own. It should not be used to plan cuts or set prices. That work needs scanners, simulation software, or the owner's judgement.
The line between the two is worth drawing early, because "sawmill software" covers very different products. Some optimise how a log is sawn and are priced and installed accordingly. The other half of the week is the inbox, the yield sheet and the quote pad, and there a chat assistant and a spreadsheet already do useful work.
Optimisation software and office work are different jobs
Software for the saw line is specialist. Halco's pages, for instance, describe its WSO tool as producing optimised production plans and mill optimiser parameters for scan-and-set mills, and SAWSIM-LP as a production-planning tool for batch-run mills with log sorts; the company describes its work as computer simulation and off-line optimisation of forest-industry operations. That is an engineering product for mills with scanners and a planning team, and a chat assistant is not a substitute for it.
The office side is where most small mills still run on email, a notebook and a spreadsheet. Orders come in as messages ("can you do 400 foot of four-quarter oak by Thursday?"). Yield is on a tally sheet that someone adds up on Friday. Quotes are typed from memory of last time's prices. These are language and arithmetic-on-a-list jobs, and they suit an assistant that reads messy text and returns tidy tables, with a person checking.
| Job | Suits AI help | Needs something else |
|---|---|---|
| Turning order emails into order lines | Yes: reads free text, asks about gaps | A person confirms stock and delivery |
| Recovery per log and per species | Yes: summarises a sheet you fill in | Scanning and scaling are done at the mill |
| Quote drafts | Yes: looks up your price list and lays out the quote | A person owns the price |
| Choosing how to saw each log | No | Optimisation software or an experienced sawyer |
| Live stock of drying lumber | Partly: from a count you maintain | Inventory software if volume grows |
If you are weighing a larger system, the choice between an MRP add-on and a chatbot on your own data sets out when each makes sense. Most mills of a few people will get further by fixing the three jobs here first.

The Complete Excel Course with AI Integration
From formulas and pivot tables to Power Query, DAX, VBA and AI with Copilot, ChatGPT and Claude — hands-on from the first lesson.
By Sagnik Bhattacharya and Virginia Thorn, Primetime Emmy Award winner
Buy nowOrder intake from emails: from free text to order lines
Orders arrive in every shape: a one-line text, a forwarded purchase order, a reply under an old thread. The slow part is not reading them but turning them into the same set of fields each time, and noticing what is missing. An assistant is good at that.
First decide the fields. For lumber they are usually: customer, species, thickness (say in quarters: 4/4, 5/4, 8/4), width or width range, length range, dried state (green, air-dried or kiln-dried), surface (rough or planed), grade, quantity and its unit, required date, delivery or collection, and notes. Use the units and grade names your buyers use; they differ by market and by trade body, so do not let the assistant guess a grading system.
You turn customer emails into sawmill order lines.
Fields per line: species, thickness, width, length, dried state (green / air-dried / kiln-dried), surface (rough / planed), grade, quantity and unit, required date, delivery or collection.
Rules:
- Use only what the email states. If a field is missing, write MISSING.
- Do not assume a grade, a dried state or a unit.
- If two readings are possible (for example "4 foot" could be a length or a quantity), list both and ask.
- End with a short reply asking only for the MISSING items. Keep it polite and under 80 words.
- Do not quote prices or confirm availability.
Email:
[paste email]
An illustrative email: "Hi, need about 400 foot of 4/4 oak, kiln dried, rough is fine, and 120 of 2x4 pine for a shed. Can you drop Thursday? Cheers." A sensible reply from the assistant:
Line 1: Oak, 4/4, width MISSING, length MISSING, kiln-dried, rough, grade MISSING, qty ~400 board feet ("foot": confirm unit), date Thursday, delivery requested
Line 2: Pine, 2 x 4, length MISSING, dried state MISSING, surface MISSING, grade MISSING, qty 120 (unit MISSING: pieces or feet?), date Thursday, delivery requested
Ambiguities: "400 foot" may be linear feet or board feet. "Thursday" has no date (email received [date]).
Draft reply: Thanks for your order. To confirm: for the oak, what widths and lengths do you need, and what grade? Is 400 in board feet? For the pine, are the 120 pieces or feet, and what length, and is kiln-dried needed? And which Thursday should we deliver?
The assistant has asked the questions a good yard clerk would. It has not confirmed stock, price or the delivery slot, and it should not. Someone reads the reply, adds your stock position, and sends it. Pair this with a shared inbox rule if orders and quote requests land in the same place; sorting a shared inbox into orders, quotes and invoices shows how.
When a customer replies with the missing details, paste the thread and ask for the final order lines. Paste the lines into an order sheet or your system. Once you have 20 or 30 orders in that sheet, it also becomes your answer to the question "what have we been asked for most?", which feeds what you cut next.
Yield per log from a tally sheet
Recovery, sometimes called yield, is how much usable lumber a log produced compared with what its volume measured at the log deck. Mills measure the log volume with a log rule or a metric method and tally the lumber they cut from it, then compare the two as a percentage. Whether a figure above 100 per cent is normal depends on the log rule you use. Some log rules were designed around board sizes that differ from what mills actually saw, so the lumber tally can come out above the scale, and log size, taper and the mill's own efficiency move the figure further. So judge your own mill against its own history and against what your trade body publishes, not against a number from the internet.
The record is simple. One row per log (or per batch of logs of the same species): log number, species, log volume by your rule, lumber tally, date, sawyer or shift and a notes column for defects such as rot, metal or shake. You or the sawyer writes it on paper; whoever types it up puts it in a spreadsheet with a recovery column (tally divided by log volume). The assistant's job begins once there are a few weeks of rows.
An illustrative week, with log volume and tally in board feet. The percentage is the tally divided by the log volume.
| Log | Species | Log volume | Lumber tally | Recovery |
|---|---|---|---|---|
| L-101 | Oak | 180 | 214 | 118.9% |
| L-102 | Oak | 220 | 236 | 107.3% |
| L-103 | Ash | 150 | 171 | 114.0% |
| L-104 | Oak | 260 | 268 | 103.1% |
| L-105 | Ash | 190 | 191 | 100.5% |
| L-106 | Pine | 140 | 170 | 121.4% |
| Total | 1,140 | 1,250 | 109.6% |
By species, oak came to 718 on 660 (108.8%), ash 362 on 340 (106.5%) and pine 170 on 140 (121.4%). Ask the assistant for questions, not conclusions:
Here is a week of log yield records (log volume and lumber tally in board feet, with notes).
1. Calculate recovery per log, per species and overall. Show the formula you used.
2. List the logs more than 5 percentage points below that species' average for the week.
3. For each, say whether the notes column offers a reason (defects, sawyer, blade change).
4. Say what you cannot tell from this data.
Do not suggest changes to sawing patterns.
In the illustrative week, log L-105 and L-104 sit furthest below their species' average, and the notes for L-105 say "heart rot, cut around". The assistant should say that this explains the low result and that one log is not a pattern. It should also say what it cannot see: whether the log rule flatters or penalises the log's shape, or whether the tally missed offcuts sold separately. A good habit is to run the recovery formula in the spreadsheet itself and use the assistant only to read and comment on the result, because it will occasionally mis-add a column of 20 numbers. The pattern of checking is the same as in summarising daily production reports.
What yield records can tell you, and what they cannot
After a month of rows, the questions worth asking are comparative. Does recovery fall on one shift? Does one supplier's logs underperform? Does recovery slump in the week after a blade change? Each of these is a "split the rows and compare" question that an assistant answers well, as long as the notes and tags are in the sheet. Add columns for supplier, shift and blade if you want those answers.
What the records cannot say is why. A low-recovery log may be a poor log, a poor cut, a tally error or a mismeasured log. Treat the output as a list of places to look, not a verdict on a person. If the sawyers think the records are used to blame them, the notes column will dry up and the records will be worthless. Tell them what the data is for.
The same caution applies to photos. Many mills keep the tally on a paper sheet or a whiteboard, and a phone photo into an assistant works, with care. Ask it to transcribe the sheet as a table before doing anything else, and compare the transcription with the paper. Digits that look alike (1 and 7, 4 and 9) are the usual slips, and a wrong figure in a log row flows into every average. What breaks when ChatGPT reads photos and sheets lists the common failures.
Quote drafts from a price list you own
Quotes go wrong in two ways at a small mill: the price comes from memory and varies between quoters, and the layout differs every time. The fix is a price list in a spreadsheet, one line per product (species, thickness, dried state, surface, grade, unit, price per unit, minimum order, lead time), with a delivery table beneath it. The assistant reads the list and drafts the quote, and a formula does the sums.
Take the order lines from the email example, once the customer has replied that both quantities are in board feet. An illustrative price list gives oak 4/4 rough kiln-dried at $4.20 per board foot and pine 2 x 4 rough at $3.10 per board foot, with a flat $85 delivery charge for a local drop. The quote works out like this:
| Item | Quantity | Unit price | Line total |
|---|---|---|---|
| Oak 4/4, rough, kiln-dried | 400 bf | $4.20 | $1,680.00 |
| Pine 2 x 4, rough | 120 bf | $3.10 | $372.00 |
| Delivery | 1 | $85.00 | $85.00 |
| Total | $2,137.00 |
Let the spreadsheet add that up. Ask the assistant to write the covering text, state the validity period and note what the price assumes. In the prompt, give it the quote table, not the price list's logic:
Write a short quote email from the table below. Use the figures exactly as given. Do not add or change any price or quantity.
State: prices are per board foot, valid for [14] days, subject to stock when the order is confirmed, delivery on [date] to be confirmed on order.
List any assumption we made (for example, widths and lengths as agreed by email on [date]).
Tone: plain and friendly. Under 150 words.
[paste quote table]
Before sending, someone with authority reads three things: the price against the list, whether the stock exists in the dried state quoted, and whether the delivery date is possible. If the quote needs a price not on the list, such as an odd length or a rush job, the assistant should write "price to confirm" and stop. Ask it to do that in the prompt. The question of whether you can take the order at all is separate; checking capacity before you take an order covers it.
Where the first month went wrong: a sheet that looked tidy
An illustrative failure. A small mill started recording yield on a shared sheet and asked an assistant for a weekly summary. In the second week, recovery for oak jumped by 12 points. The mill's owner was pleased until the sawyer pointed out that two logs had been entered with their log volume in cubic metres and the tally in board feet, so the recovery column compared two different units. The formula did what it was told; the entry was wrong.
Nothing in the assistant's summary was an error in the strict sense, but it had no reason to doubt the numbers. Two additions fixed it: a "unit" column with a drop-down that allowed one value, and a rule in the prompt: "If any row's recovery is above 135% or below 70%, list it as 'check entry' and do not include it in the averages." Unusual rows are the usual source of misleading summaries. The thresholds are yours to set from your own history; they are not industry standards.
Sawdust, bark and offcuts: the sales most mills under-record
Mills that sell by-products often do it on a handshake. Wikipedia's account of sawmills lists the usual outlets: sawdust to board and pellet makers, bark for landscaping or fuel, chips to paper mills. For a small mill the same pattern is smaller and local: bags of offcuts for kindling, a trailer of sawdust for animal bedding, bark by the load. These sales are real money and rarely recorded, so a month's income is a guess.
A simple sheet fixes that: date, product, unit (bag, trailer, tonne), quantity, price, buyer and whether paid. The assistant adds little here beyond a weekly summary and a short note to regular buyers. An illustrative prompt: "From this sheet, list sales by product for the month with totals, list unpaid rows older than 14 days, and draft a short, polite reminder for each buyer with an unpaid row. Do not change any amounts." The reminders are drafts; a person sends them. Over a quarter, the sheet shows which by-product earns the most per hour of loading, which is usually not the one the mill assumed.
How to tell whether the setup is working
Judge the change by a few plain numbers rather than by feel. Before you start, record for two weeks how long order emails take to turn into confirmed lines, how many orders needed a second call to fix a missing detail, how many quotes went out with a wrong or missing price, and how long the Friday yield add-up takes. Then record the same four things after a month of the routine.
- Order lines. Expect fewer second calls, because the first reply already asks for the missing widths, grades and dates. If second calls stay high, the missing-field list in the prompt is too short.
- Quote errors. The target is zero wrong prices, because the price list and the sum are yours. Any error is a lookup mistake or a stale price list, and both are fixable.
- Yield add-up time. This should fall to the time it takes to type the tally rows. The time saved is real, but the more valuable change is that you now hold weeks of rows to compare.
- Customer questions answered the same day. A simple count from your inbox shows whether response time improved.
If a number does not move, find out why before adding tools. A mill that still takes two days to answer a quote often has a stock-checking delay, not a drafting delay, and no assistant fixes that.
Running the three jobs in a week
A pattern that suits a three-person mill:
- Daily, 10 minutes. Paste new order emails into the order prompt, review the draft replies, send them, and paste confirmed lines into the order sheet.
- At the end of each sawing day, 5 minutes. Type the day's tally rows into the yield sheet, with notes for any odd log.
- Weekly, 15 minutes. Run the yield prompt, read the "check entry" list and the three biggest gaps, and decide whether anything needs a conversation.
- As quotes arrive. Look up lines from the price list, total them with a formula, have the assistant write the cover email and send after a check.
Choose a chat assistant plan that does not train on business content by default, which the business tiers of the main assistants state, and keep customer details to what the task needs. For a mill that also sells on a website or through marketplaces, orders from those channels belong in the same sheet. If the order sheet grows into a scheduling problem, a weekly cutting and drying plan is the next job, covered in building a weekly production schedule.
When a small mill outgrows this
A spreadsheet and an assistant start to strain at predictable points. Orders run to dozens a week and the order sheet is no longer a single view. Several people edit the yield sheet and conflict. Buyers ask for inventory or delivery status you cannot answer quickly. A log scanner or a drying kiln produces data you want to use directly. At those points dedicated sawmill or lumber-yard software starts to pay for itself, and specialist suppliers publish demos and price enquiries; look at what each does on its own pages, since the products range from log tracking and invoicing to the production-planning tools described earlier.
The work you have done is not wasted. The fields in your order sheet, the columns in your yield sheet and the price list are exactly what a vendor will ask you to supply, and having them clean makes any move cheaper. And the habits (read the output, check the sums, keep prices with a person) go with you.
Questions from small mills about AI and sawmill software
Can AI optimise how my logs are cut?
Not in a way you should rely on. Cutting optimisation uses scanning and simulation software built for that job, and Halco's own pages describe such tools as producing production plans and optimiser settings. A chat assistant is better used on the paperwork around the saw: orders, yield records and quotes.
Is a spreadsheet enough for yield records?
For a small mill, usually yes. One row per log or per batch, with species, log volume in your chosen rule and the lumber tally, gives recovery figures that AI can summarise. Move to dedicated software when you need scanning, live inventory, or when several people write to the same records.
Can it read a photo of a handwritten tally sheet?
Sometimes, with mistakes. Digits, especially 1, 7 and 4, are misread, and totals are easy to get wrong. Photograph the sheet flat, ask the assistant to list what it read, and check the total against your own addition before the figures go into any record.
Should AI set my prices for quotes?
No. Keep prices in a price list you own and let the assistant do the lookup and the layout. Have a person confirm stock, grade and the price for any non-standard request. Models make arithmetic slips, so total each quote with a spreadsheet formula, not the assistant's own sum.
Further reads
- AI for Industrial Manufacturing: Read Downtime Logs to Find Repeat Stops — Read stop logs to find repeat causes, such as blade changes.
- AI Tools for Cataloguing Stock: From Photos to Item Records — Turn photos of stock into tidy item records.
- AI Tools for Business Analysis: 6 Questions to Ask Your Sales Spreadsheet — Ask six useful questions of a sales or yield spreadsheet.
- Best AI Tool for Pricing Wholesale Goods: Chat Assistant or App? — Compare ways to keep a trade price list consistent.
- Automate Your Solo Business: From First Enquiry to Sent Invoice — Follow one order from first enquiry to sent invoice.
- AI for Warehouse Loading: Plan Pallets and Trucks From Orders — Plan how packs and bundles load onto the truck.
- Countertop Fabricator Software: Templating, Slabs and Where AI Helps — A vendor question list for templating, slab layout, quotes and cut files, with a scorecard, a yield sum and where ChatGPT helps with quote wording.
- AI in the Textile Industry: Two Mill Jobs Priced by Payback — Two small-mill jobs priced by payback, quote costing and defect records, plus where camera inspection systems start to make sense.
- AI Tools and AI Development: The Complete 2026 Guide — the AI hub, including every tutorial in the AI-for-business series.
Sources: Halco Software Systems' home page (WSO and SAWSIM-LP production-planning tools), the Wikipedia article on sawmills (by-product outlets), a public log-scaling agency's note on why lumber tally can exceed log scale, and general practice in small-mill record keeping. Log rules, grades and units vary by market, so use the ones your buyers and trade body use.