Back to the blog

December 13, 2025 · 12 min read

Bookkeeping for Fence and Deck Builders: From Quote to Final Payment

By 909 Bookkeeping

How to keep books for a fence or deck builder. Track each job from the quote to the final payment, hold the deposit as unearned income, tie every material and labor cost to the project, and book each draw so the job shows its real profit. Plain English from 909 Bookkeeping.

Trade illustration for this bookkeeping guideA flat illustration of fence posts and rails next to deck planks, showing each fence and deck tracked from the quote to the final payment.LEDGER

What fence and deck books need to track

A fence or deck job is not one number. It is the quote you sent, the deposit you took, the materials you bought, the labor you paid, the draws you billed, and the final payment you collected. Each part needs its own line so the profit per job is real.

When you track all of it by project, you can see which jobs made money and which ones cost more than they brought in. When you do not, you get one big pile of deposits and material bills and no way to tell whether the cedar fence paid better than the composite deck.

Most fence and deck builders run more than one job at once. A cedar privacy fence here, a pressure treated deck there, a repair on a gate. Each job has its own quote, its own deposit, its own material list and its own draw schedule. When the books tie each line to the project, the business makes sense. You can read more about how we keep these lines tied on our bookkeeping page.

Here is what a clean job looks like.

LineWhat it means
QuoteThe price you sent the customer
DepositThe cash you took up front, held as unearned income
MaterialsThe lumber, hardware and concrete tied to the job
LaborThe crew pay and the subcontractor bills tied to the job
DrawsThe payments you billed as the work went out
Final paymentThe last payment that closes the job
Net per jobWhat the job really earned after the costs

When the deposit and the costs sit on the project line, your per job profit is real. When they sit in one pile, a big deposit looks like a great job and the material bill hides.

How the quote and the deposit show up

The quote is the price you send the customer. The deposit is the cash you take before you start. The two are not the same and they need their own lines.

The clean way is to hold the deposit as unearned income, not as sales. The customer pays a deposit to hold the schedule. You have not built the fence yet. The cash is in your bank, but the income is not earned. When you book the deposit to unearned income, your profit and loss does not move. When you start the work, you move the deposit from unearned income to earned income as the work goes out. The liability drops as the income goes up. The two always move together.

The messy way is to book the deposit straight to sales. Now the month you took the deposit looks huge. The month you built the fence looks slow. Your books show a giant month and then nothing, even though the work ran across both. You can read more about how we handle deposits in our window and glass deposits guide. The same idea works for a fence or deck deposit.

Here is how to keep the deposit clean.

  • **Book the deposit to an unearned income account: ** not to sales.
  • - **Move the deposit to earned income as the work goes out: ** not all at once.
  • - **Match the deposit to the bank: ** the day it clears.
  • - **Tag the deposit to the project class: ** so it ties to the job.
  • - **Watch the deposit against the schedule: ** a deposit for a job that never starts is still a liability.

When the deposit sits in unearned income, your monthly income is true. When it sits in sales, the month you took it looks great and the month you built it looks slow.

How materials show up tied to the job

The materials are the lumber, the hardware, the concrete, the stain, the fasteners. Every material you buy needs to tie to the project it went on.

The clean way is to book every material buy to a materials cost line tagged to the project class. When you buy cedar pickets, the cost lands on the fence. When you buy deck boards, the cost lands on the deck. When you run the profit and loss by class, each job shows its own material total. You can see which job went over on lumber and which one came in under.

The messy way is to book every material buy to one general materials line with no project tag. Now you can not sort by job. You can not tell if the fence went over on concrete or if the deck cost more in hardware. The whole material spend looks like one blur. You can read more about how we tie materials to a project in our painters and flooring materials guide. The same idea works for a fence or deck.

Here is how to keep the materials clean.

  • **Book every material buy to a materials cost line: ** not to one general supplies line.
  • - **Tag each buy to the project class: ** so the cost sorts by job.
  • - **Log each buy the day it happens: ** not at month end from memory.
  • - **Match each supplier bill to the bank: ** so no cost floats untied.
  • - **Watch the material total against the quote: ** a job that goes over on lumber needs a closer look.

When every material ties to the job, the material total is real. When they sit in one pile, every job looks the same.

How labor and subcontractor costs show up

Labor is the crew you pay and the subcontractors you hire. A fence crew on the payroll. A concrete sub for the post holes. A stain sub for the finish. Each one needs a line and each one needs to tie to the project.

The clean way is to book crew labor to a labor cost line and subcontractor bills to a subcontractor cost line, both tagged to the project class. When you run the profit and loss by class, each job shows its own labor and sub total. You can see which job cost more in crew time and which one leaned on a sub.

The messy way is to book all labor to one general wages line and all subs to one general outside services line, with no project tag. Now you can not sort by job. You can not tell if the deck ate the budget on labor or on the sub. You can read more about how we track subcontractor costs in our electrical contractors billing by phase guide. The same idea works for a fence or deck crew.

Here is how to keep labor and sub costs clean.

  • **Book crew labor to a labor cost line: ** not to one general wages line.
  • - **Book subcontractor bills to a subcontractor cost line: ** not to general outside services.
  • - **Tag each cost to the project class: ** so it sorts by job.
  • - **Match each sub bill to the bank: ** so no cost floats untied.
  • - **Collect the sub form before you pay: ** so the paperwork does not pile up.

When labor and subs tie to the job, the crew cost is real. When they sit in one pile, every job looks the same.

How draws and the final payment show up

A fence or deck job often bills in draws. A deposit to start, a draw when the posts are set, a draw when the boards are up, a final payment when the job passes. Each draw needs a line.

The clean way is to bill each draw to earned income, tagged to the project class, as the work that draw pays for goes out. The deposit sits in unearned income until the work starts. Each draw moves from unearned to earned as the stage it pays for is done. The final payment closes the job. The profit and loss by class shows the income and the costs for each job side by side. The net is the real profit.

The messy way is to book every draw to sales the day it lands and leave the deposit in sales too. Now your income is front loaded and your costs sit in the wrong month. A job that paid a big deposit looks like a huge job before it starts. A job that finished but has not billed the final draw looks like it lost money. You can read more about how we bill by stage in our progress billing and retainage guide. The same idea works for a fence or deck draw schedule.

Here is how to keep the draws clean.

  • **Bill each draw to earned income: ** tagged to the project class.
  • - **Move the deposit from unearned to earned as the work goes out: ** not all at once.
  • - **Match each draw to the bank: ** the day it clears.
  • - **Book the final payment when it lands: ** and close the job.
  • - **Run the profit and loss by class after the job closes: ** so the real profit shows.

When the draws match the work and the costs tie to the project, the per job profit is real. When the draws sit in one pile, the profit is a guess.

How the month end close works

At month end, every job needs its lines added up. The deposit, the earned income, the materials, the labor, the subs and any final draw all pull together into one project total. When the jobs roll up by class, you see each one side by side.

We start with the bank. We match each draw to the deposit that cleared. We move the earned income for each stage that went out. We match each material buy and each sub bill to the bank. We check the unearned income account against the deposits still owed in work. We tag every line to the project class. We run the profit and loss by class so each job shows in its own column. We send you the profit and loss by class, a balance sheet, and a cash summary. Each job sits inside the report.

Here is a simple month end check.

  • **Match each draw to the bank: ** every deposit cleared.
  • - **Move earned income for each stage that went out: ** not all at once.
  • - **Match each material buy and sub bill to the bank: ** no orphan costs.
  • - **Check the unearned income account: ** so the liability matches the work still owed.
  • - **Tag every line to the project class: ** so the profit and loss sorts by job.
  • - **Run the profit and loss by class: ** so each job shows in its own column.

When the close runs every month, the job story stays clear. When it skips a month, the jobs stack up and the next month is harder to close.

A situation we clean up

The fence jobs that all looked the same

A fence builder runs three jobs at once. The deposit for each job lands in one general sales line. Every material buy goes to one general supplies line. The crew pay sits in one general wages line with no job tag. The draws are booked the day they land, not when the work goes out. At month end, the owner can not tell which fence made money and which one cost more in lumber than it brought in. The unearned income account is empty even though three deposits are still owed in work.

Here is how we handle it. We turn on class tracking and set up one class for each job. We go back through the open months and move each deposit from sales to an unearned income account. We pull every material buy out of general supplies and tie it to the project class. We move the crew pay and the sub bills to their own lines, tagged to the job. We book each draw to earned income as the work goes out. When we are done, the owner can run the profit and loss by class and see each fence in its own column. We set up a rule so the next deposit goes to unearned income from the start.

Mistakes we fix

  • The deposit booked straight to sales instead of unearned income
  • Every draw booked the day it lands instead of when the work goes out
  • Materials in one general supplies line with no project tag
  • Crew pay in one general wages line with no job tag
  • Subcontractor bills in one general outside services line with no job tag
  • No class tracking turned on so no way to sort by job
  • The unearned income account empty while deposits are still owed in work
  • A final payment booked but the job never closed
  • No profit and loss by class run after a job closes
  • A job that sat for weeks and the carrying cost no one saw

Common questions

How do I record a deposit for a fence or deck job? Book the deposit to an unearned income account, not to sales. The cash lands in your bank but the income is not earned until you start the work. Move the deposit from unearned to earned income as the work goes out. The liability drops as the income goes up.

How do I tie materials to a job? Book every material buy to a materials cost line and tag it to the project class. When you run the profit and loss by class, each job shows its own material total. Match each supplier bill to the bank so no cost floats untied.

How do I book draws? Bill each draw to earned income, tagged to the project class, as the work that draw pays for goes out. The deposit sits in unearned income until the work starts. The final payment closes the job. Run the profit and loss by class after the job closes so the real profit shows.

How do I keep each job separate? Turn on class tracking and set up one class for each job. Tag every deposit, material buy, labor cost, sub bill and draw to its project class. Run the profit and loss by class so each job shows in its own column.

Ready for books that close on time?

Free 20-minute call. We reply with a fixed quote within one business day.

Book a callCall