The 40-post job that lost $1,800 and nobody noticed
You bid 340 feet of 6-foot cedar privacy fence at $38 a foot — $12,920. Materials came in around $5,100, crew was three days, and you cashed the check feeling fine. Three months later your P&L says the year is thinner than it should be. Nothing got stolen. The money leaked through post concrete you never coded, a return credit that never hit the job, and a helper's overtime buried in a lump payroll number. That leak is exactly what bookkeeping for fence companies is supposed to catch, and most fence shops aren't set up to catch it.
Here's how to build books that actually tell you which fence jobs make money.
What makes bookkeeping for fence companies different
Fencing has a cost structure most trades don't. Three things drive it:
Material is a huge share of the ticket. On a wood privacy job, material can run 35–45% of contract price. A 6% swing in lumber pricing between bid and buy eats a chunk of your margin before a single post goes in the ground. If your books lump all lumber into "Materials," you'll never see it.
Jobs are short and there are a lot of them. A roofer might run 60 jobs a year. A fence shop with two crews can run 300. Job costing 300 tickets by hand doesn't happen — it has to be built into how invoices and receipts get coded, not done as a monthly cleanup project.
Deposits are standard. Most fence contractors collect 40–50% up front to buy material. That money is not revenue on the day it lands. Book it as a customer deposit — a liability — and recognize it when you do the work. Otherwise your best month on paper is the month you collected the most deposits, which tells you nothing.
Build a cost code list a fence crew can actually use
Skip the 80-line construction cost code template. For fencing and decking, five to seven direct-cost codes do the job:
- Posts and rails (or panels)
- Pickets / boards / mesh
- Concrete and setting material
- Hardware — gates, hinges, latches, caps, fasteners
- Direct labor
- Subcontracted install (if you use 1099 crews)
- Equipment — auger rental, mini-skid, dump fees
Break gates out from fence footage. Gates are where fence shops bleed. A 12-foot double drive gate with a cantilever roller and a keypad opener can carry four hours of labor and $700 of hardware, and half the shops I see bid it as "two feet of fence plus a gate." Code gate hardware and gate labor separately for six months and you'll find out whether you're charging enough.
Same logic on demo and haul-off. Tearing out 200 feet of old chain link with concrete footers is real hours and a real dump ticket. If it isn't a line on the invoice and a code in the books, you gave it away.
Handle material the way a fence yard actually operates
The single biggest fix: code every material receipt to a job the week it happens. Not at month end. The lumber yard ticket in your truck console is a job cost record, and it stops being one the moment you forget which house it went to.
A workable rule for a small shop: crew leader writes the job name on the ticket before it leaves the yard, photographs it, and it's coded within seven days. That's it.
Then deal with the two things that wreck material costing:
Returns and credits. You buy 30 extra pickets to be safe and return 22. If the credit memo posts to a general materials account instead of back to job 1147, that job looks $180 more expensive than it was and every future bid on that fence style is skewed high. Credits go back to the job.
Yard stock. Fence shops keep leftover posts, caps and rolls of wire around. Say you carry $9,400 of yard stock. If it all hit job costs the day you bought it, your material costs bounce around meaninglessly month to month. Run yard stock on a periodic basis rather than a perpetual one — you're not barcoding pickets, you're doing a count and an adjusting entry. Set a dollar threshold and hold to it: anything over roughly $500 that isn't tied to a specific job goes to an inventory asset account (call it 1400 — Materials Inventory) and gets pulled to jobs as it's consumed. A full pallet of cedar pickets at $620 lands in 1400 and comes out job by job. Twelve leftover 4x4 posts at $8 each, $96 total, never goes near 1400. Under that, expense it and move on. Perfect inventory tracking on $40 of latch hardware costs more than it saves.
Get your 1099 install crews right
Plenty of fence companies run subcontracted install crews paid by the foot. That's a legitimate model, and it also creates a reporting obligation.
For tax year 2026, the Form 1099-NEC nonemployee compensation reporting threshold is $2,000 — up from prior years under the change for tax years beginning after 2025. A crew that installs three jobs for you at $1,100 each clears it. Form 1099-NEC must be furnished to the payee and filed with the IRS by January 31.
The bookkeeping part is simple and everybody skips it: collect the W-9 before the first check, and pay subs from a vendor record in your accounting file, not from a checkbook or Venmo. If you're chasing addresses for eight installers in the third week of January, that's a records problem you created in April.
Also — track sub payments by job, not just by vendor. If you pay a crew $4.50 a foot for wood and $3.75 for chain link, your books should be able to tell you what you actually paid per foot last quarter versus what you assumed when you bid.
Read the number that matters: gross profit per job
Once material, labor and subs are coded to jobs, you get the one report that changes how you bid — gross profit by job, sorted worst to best.
Suppose you pull last quarter and see this on four wood privacy jobs:
- Job A: contract $12,920, direct cost $8,400 — GP $4,520
- Job B: contract $6,300, direct cost $4,900 — GP $1,400
- Job C: contract $9,750, direct cost $5,850 — GP $3,900
- Job D: contract $4,100, direct cost $3,600 — GP $500
That's $33,070 of contract and $22,750 of cost — $10,320 of gross profit, about 31%. But Job D returned 12% and Job A returned 35%. Look at what's different: D was a tear-out with two gates on a sloped lot, an hour and a half from the shop. That's not bad luck. That's a bid category you're pricing wrong, and you can only see it when the costs sit on the job.
Run that report every month. Two quarters of it and you'll re-price slope work, gates and long drives without guessing.
Where to go from here
If your fence job costs are living in a notebook and a bank feed, the fix is a proper chart of accounts, jobs set up correctly, and someone reconciling it every month. That's what bookkeeping and taxes for fencing and decking contractors covers — job costing, WIP where you need it, payroll and vendor activity reconciled into books you can actually bid from, and your return prepared off those same numbers.
Submit a pricing request at the app.streamtaxes.com page and tell us your crew count and roughly how many jobs you run a year. You'll get a real number back, not a range.
Prefer email? Subscribe to the newsletter for straight-talk construction accounting notes a few times a month.