← MillVault   /   Sawmill blog

How to Sell Lumber Online: A Small Mill Checklist

Key takeaways

To sell lumber online as a small mill, you need six things working together: accurate slab inventory data, listings with grading and moisture disclosure, board-footage pricing, freight or pickup terms, deposit-based payment terms, and a weekly routine for keeping stock current. This checklist walks through each one in order, including the exact fields each slab record needs so your listings update when a board is milled, sold, or kiln-dried.

What do buyers expect to see in an online lumber listing before they purchase?

A slab sold sight-unseen wins trust with a complete photo set and honest specs. Anything less reads as a listing the seller is hiding something in, and buyers scroll past.

Photos: full board, both faces, both ends, and a scale reference

Shoot the full slab against a plain background, then flip it and shoot the second face. Photograph both end grain surfaces so buyers can judge checking and crack depth. Put a tape measure or a standard object in at least one shot for scale. Five photos minimum per slab; a phone is enough.

Specs: species, dimensions, board footage, moisture content, drying stage

State thickness, width at the widest and narrowest points, length, board footage (BF), and the price in $/BF. Disclose moisture content and whether the slab is air drying, kiln dried, or ready to mill. Vague specs like "large walnut slab" force every buyer into an email exchange, and most will not bother. If you want a listing structure that keeps these fields synced to your stock as slabs get milled or sold, tools like MillVault are built around exactly this data model.

Freight carriers classify lumber by density and packaging under the NMFC system (NMFTA), so noting whether a slab ships loose or in a pack helps buyers estimate freight early.

How do you structure slab inventory data so listings stay accurate as stock changes?

Every slab gets one record with the same fields: ID, species, dimensions, board footage, $/BF, drying stage, location, and status. That record drives both the shop floor and the website. When you milled it, moved it to the kiln, or sold it, you update the record once and every listing reflects it.

One record per slab, not per species

A species-level count ("14 walnut slabs") cannot price a listing, because each slab has its own footage, defects, and moisture stage. Track at the board level so a buyer sees the actual slab they're buying, with its photos and its $/BF.

Field Example Why it matters
ID WAL-0042 Ties photos, tags, and listings together
Species / dimensions Walnut, 24" × 10' Buyer filters and BF math
BF / $/BF 48 BF, $12/BF Price updates if footage changes after remilling
Drying stage Air drying, 8 months Moisture disclosure starts here
Location Rack B3 No hunting the yard for a sold slab
Status Milled Controls what's visible online

Status fields that map to listing states: ready to mill, milled, drying, sold

Four statuses are enough: ready to mill, milled, drying, sold. Map each to a listing rule: ready-to-mill slabs can show as "coming soon," milled and dried slabs list live, and sold slabs drop off the site automatically. A slab that goes back in the kiln flips to drying and its listing pauses with it.

Why spreadsheets break at 200+ slabs and two people

Spreadsheets fail at the same three points: two people editing different copies, no photo attached to the row, and nothing pushing updates to a website. Generic inventory tools have the same gap; AncesTREE and Epicor LumberTrack target larger operations, and the framing behind tools like TallyWorks ("generic inventory tools that don't understand lumber," per Nerdisa) points at the same problem. MillVault handles this per-shop at $29/mo, though it's newer and less proven than the established names. The honest test either way: can one person update a slab's status in under 30 seconds from a phone?

How do you price and package lumber for e-commerce when board footage varies per board?

Pricing individual slabs at $/BF with the actual BF listed

Measure each slab once, list it as a single item, and state the board footage and the $/BF in the listing. A 60 BF walnut slab at $8/BF shows as $480, and the buyer sees the math instead of guessing. Re-measure after milling or surfacing, since thickness loss changes BF and the price. If a slab loses 6 BF to surfacing, update the listing the same day so the customer isn't charged for wood they can't buy.

Bundling dimensional packs and offcuts

Odd-width offcuts and short boards are hard to price per BF because handling costs eat the margin. Price those as packs instead: a fixed dollar amount for a species-and-thickness pack, priced so the total beats the sum of single-slab pricing. Packs also clear inventory faster because buyers don't need to evaluate each board.

Deposits and holds on unfinished or still-drying stock

Wood shrinks as it dries, so a green slab's BF and dimensions will change before it's ready to mill. The USDA Forest Products Lab documents target moisture levels and expected shrinkage for common species, so quote green stock with a range, not a fixed dimension. Take a deposit at listing, confirm final BF at sale, and adjust the balance accordingly. MillVault handles the re-measure and repricing step, though a simple spreadsheet with a "current BF" column works the same way if you update it weekly.

How do you handle grading, moisture content, and defect disclosure to reduce disputes?

Most disputes happen because the buyer's expectations and your description never matched. A plain-language disclosure standard, written into every listing and repeated on the receipt, closes that gap.

State your moisture meter and where you measure

Name the tool and the method: "Pin meter, reading taken 1 inch into the face at three points, reported as the average." A slab can read 8% on the surface and 15% in the core, so say whether you measure surface or interior, and whether the board is air drying or kiln dried. If you don't own a meter, say moisture is estimated, not measured.

Photograph and describe every defect before the buyer finds it

Shoot both faces, both edges, and the ends of every listed slab, then label cracks, checks, knots, sapwood, insect traces, and past bug damage in the caption. A defect the buyer saw in photo three is a feature; one they discover on pickup is a refund.

Put wood-movement expectations in writing

Live edge slabs move, and some buyers don't know that. State plainly: minor checking and cupping after drying is normal, not a defect, and no claim will be accepted for it. Print the same language on the receipt so the agreement travels with the slab.

Which shipping and freight options work for selling lumber online at small-mill volumes?

Parcel carriers are only viable for small blanks and cutoffs. Once a slab passes roughly 6 feet long, 100 pounds, or awkward live-edge width, parcel pricing jumps sharply and damage risk rises. LTL freight is the realistic option for anything slab-sized or a bundled pack.

When a slab is too big for parcel and needs LTL freight

Quote LTL by weight, dimensions, and freight class, and expect a single thick slab to run $150–$400 depending on distance. Get quotes from two or three carriers before you publish shipping rates, and build the crating weight into your numbers.

Crating, banding, and who pays for damage

LTL freight requires a crate or a fully banded, corner-protected bundle on a pallet. Build crating cost, typically $40–$100 in materials, into the freight charge you quote. Carriers routinely deny claims for poorly packaged freight, so photograph the packed slab before the truck leaves. The NHLA hardwood grading rules are the reference point buyers expect for describing what they are getting.

Pickup and local delivery as your default first channel

For most owner-operators, pickup from the shop is the right default: no freight risk, no crating, cash in hand. Offer local delivery within a fixed radius for a flat fee, and reserve LTL for out-of-area buyers. List shipping availability per slab so buyers know the option exists before they ask.

What payment, deposit, and refund terms protect a sawmill selling online?

Deposits on custom milling and reserved slabs

Take 50% up front on custom milling jobs and on slabs you're holding out of the kiln for a buyer. The deposit covers your log cost and saw time if the buyer walks. For reserved in-stock slabs, a smaller deposit (say 25%) with a stated hold period, 14 or 30 days, keeps you from warehousing unpaid stock indefinitely. State both the deposit amount and the hold deadline in writing before you cut or pull anything.

Refund terms for drying defects vs shipping damage

Wood moves. Put it in your policy: checking, cup, and bow may develop during drying, so disclose expected movement and agree on reasonable terms before sale. Disclosures do not remove any rights the buyer has under applicable law; photos of the exact slab before sale help document its condition. Shipping damage is different. Ask buyers to photograph the crate and slab promptly upon delivery, follow the carrier’s claim deadlines, and handle shipping-damage complaints according to the sale terms and applicable law.

Keep terms on the invoice, not just the website

Put deposit, refund, and damage-report terms on every invoice and order confirmation, not just a policy page. Card networks and payment processors look at what the buyer agreed to at purchase when handling a chargeback, and a signed or emailed invoice showing terms beats a website footer. It won't stop every dispute, but it's the cheapest protection you have.

Which channels should a small mill sell through first: own site, marketplaces, or social groups?

Start where buyers already browse: social groups and marketplace listings

Live edge buyers gather in Facebook woodworking groups and search local marketplaces before they ever find your website. Post slab photos with species, dimensions, board footage, and $/BF in the caption, and state pickup as the default. These channels cost nothing and surface demand fast, but listings go stale as stock sells, so keep each post tied to one slab or pack.

When your own site earns its keep

Build your own catalog once your spreadsheet or tool tracks every slab accurately. A simple site with photos, moisture notes, and a deposit request covers most needs. Deposits protect you from no-shows; Stripe's documentation explains how payment holds and chargebacks work before you promise terms to buyers: Stripe payment documentation.

Keeping one inventory source across every channel

Whatever you sell on, mark a slab sold in one place the moment it leaves. Tools like AncesTREE or MillVault exist because spreadsheets break when three channels sell from one stack.

How do you keep the whole operation running week to week?

A 30-minute weekly inventory routine

Pick one day, same time each week. Photograph every slab milled or unpacked since last week, measure board footage, note species and moisture reading, and mark anything sold as sold. Reconcile your listings against what is physically in the stack: a buyer who drives two hours to a slab that sold Tuesday never comes back. Fifteen minutes of photos, fifteen of status updates covers most one-person shops.

Spreadsheets vs dedicated tools: an honest comparison

A spreadsheet costs nothing and works until it does not. The failure mode is predictable: photos live on your phone, dimensions live in the sheet, sold status lives in your head or a text thread, and none of it updates in real time when a walk-in customer buys a slab before you finish editing the row. You end up maintaining three unsynchronized copies of the same inventory, which is exactly the problem generic tools fail at too, because they do not understand board footage, kiln state, or per-slab pricing. The honest tradeoff is this: a spreadsheet is free but every update is manual and every listing risks drifting from the stack; dedicated lumber software keeps one record that photos, statuses, and $/BF pricing hang off, but it costs money and locks your data into its structure. If you sell fewer than a handful of slabs a month, stay in the sheet. If listings go stale weekly, that is the signal to move.

Where MillVault fits, and where it does not

MillVault is built for exactly this loop: photograph stock, track board footage and drying status, mark slabs sold, and automatically update availability in the public customer gallery, starting at $29/mo per shop. Inventory export is available, as is a seven-day free trial and optional $150 virtual setup. It will not run your payroll, mill equipment maintenance, or bookkeeping, and if you only move a few slabs a month, a spreadsheet is still the cheaper answer.

FAQ

Can I sell lumber online without a website?

Yes. Start in Facebook woodworking groups and local marketplaces where live edge buyers already search. Post one listing per slab with photos, species, dimensions, board footage, and $/BF, and offer pickup as the default. Mark each slab sold the moment it leaves to avoid stale listings.

How much does it cost to ship live edge slabs?

Parcel only works for small blanks and cutoffs. Anything slab-sized moves by LTL freight, where a single thick slab typically runs $150 to $400 depending on distance, plus $40 to $100 in crating materials that you should build into the quote. For most small mills, pickup from the shop is the better default.

How do I calculate board footage for an irregular live edge slab?

Measure thickness in inches, then average the width at several points along the length, including the narrowest spot. Multiply average width by length in feet, divide by 12, then multiply by thickness. A 24-inch average width over 10 feet at 2 inches thick is 40 BF. Re-measure after surfacing, since thickness loss changes footage.

What moisture content should kiln dried slabs be before I sell them?

Target 6 to 8% for interior furniture use, matching the humidity of the buyer's finishing environment. Name your meter and method in the listing, and state whether the reading is surface or interior, since a slab can read 8% on the face and 15% in the core. If you do not own a meter, say moisture is estimated.

See how MillVault organizes slab inventory →