Skip to main content

Engineering Firm Bookkeeping: Why Your WIP Schedule Beats Your Bank Balance

17 min readMike ThriftMike Thrift
Engineering Firm Bookkeeping: Why Your WIP Schedule Beats Your Bank Balance

Your bank account says $180,000. Your profit and loss statement says you made money last quarter. So why does payroll feel tight and your line of credit keep creeping up? If you run an engineering firm on multi-month projects, the answer is almost always the same: cash in the bank is a terrible measure of how your business is actually doing.

Engineering firms live project by project, but most off-the-shelf bookkeeping tracks finances company-wide. That mismatch hides which projects make money, which ones quietly lose it, and whether you have actually earned the cash you have already collected — or still need to collect cash for work you have already done. The tool that closes that gap is not your bank feed. It is your Work in Progress schedule, powered by the percentage-of-completion method and a disciplined view of overbilling and underbilling.

This guide breaks down how project-based revenue recognition works, how to read a WIP report without an accounting degree, and how to set up job costing so every hour and expense lands where it belongs.

Why Engineering Accounting Is Different

A retail shop sells a product, collects cash, and moves on. An engineering engagement can run 9, 15, or 24 months, span multiple phases, and involve a rotating mix of staff, subconsultants, and reimbursables. Each project has its own budget, fee structure, and margin profile. Firm-wide totals alone will not tell you which clients or service lines to pursue more of.

Three features make engineering bookkeeping distinct:

Project-centric revenue, not point-of-sale revenue

You do not earn revenue when you send an invoice. You earn it as you perform the work. If a $360,000 fixed-fee design contract is 40% complete, you have earned roughly $144,000 — whether you have billed $100,000 or $200,000 so far. The difference between what you have earned and what you have billed is where cash-flow surprises live.

Variable, specialized labor

A water-resources project might need a senior PE for hydrologic modeling, a CAD technician for plan production, and an outside geotechnical subconsultant for three weeks. Some of those people are W-2 employees, others are 1099 contractors. Benefits, payroll taxes, and year-end reporting differ by classification, and timesheet accuracy directly drives both job cost and revenue if you bill hourly.

Long timelines with lumpy cash flow

Costs start on day one. Collections can lag 30, 60, or even 90 days after you invoice, and milestone billing often clusters payments around phase gates rather than steady monthly intervals. Progress billing and retainers exist to smooth that gap, but only if you invoice consistently and track what is earned versus what is billed.

Revenue Recognition: The Three Methods That Matter

How and when you book revenue changes your reported profit, your tax timing, and your ability to compare projects fairly. For long-term contracts, you will generally choose among three approaches.

1. Percentage-of-Completion (Over Time)

Under U.S. GAAP and ASC 606, most engineering contracts qualify for revenue recognition over time because the client simultaneously receives and consumes the benefit as you design, and the work has no alternative use to you once it is customized to their site. The practical result is the percentage-of-completion method.

The standard formula is:

Percent Complete = Costs Incurred to Date / Total Estimated Costs

Earned Revenue to Date = Contract Price × Percent Complete

Current Period Revenue = Earned Revenue to Date − Revenue Recognized in Prior Periods

Example: You have a $500,000 fixed-fee contract. You have incurred $150,000 of costs against a total estimate of $300,000. You are 50% complete. Earned revenue to date is $250,000. If you recognized $180,000 last month, you recognize $70,000 this month — even if you billed a different amount.

Costs are the most common input method, but you can also use output methods such as milestones achieved or engineering hours expended when they more faithfully represent progress. Whichever you choose, apply it consistently and update total estimated costs monthly. A stale estimate quietly distorts everything downstream.

ASC 606 adds one nuance worth noting: you must identify performance obligations and allocate the transaction price. For engineering, a single integrated design package is usually one obligation, so the accounting lands in a familiar place — just with more formal documentation than under the old ASC 605 guidance.

2. Completed Contract Method

Revenue and profit are recognized only when the project is substantially complete. This defers income, which can smooth taxes in some situations but also creates violent swings in your financial statements — months of apparent losses followed by a single large gain. It also hides problems until the very end. Lenders and bonding agents generally dislike it for operating companies, and GAAP permits it only when estimates are not reasonably dependable.

For most ongoing engineering firms, completed contract is not the right default. It has a narrow use case: very short projects, or projects where you genuinely cannot estimate cost to complete.

3. Milestone or Deliverable Billing

Milestone billing is a billing cadence, not a revenue method. You invoice when a phase completes — 30% at schematic design, 40% at design development, for example. Milestone invoices are useful for cash flow, but they should not drive revenue recognition on their own unless each milestone maps cleanly to value transferred. Otherwise you will show profit spikes at invoicing points that do not match work performed.

Bottom line: For firms with projects longer than a month or two, percentage-of-completion tied to current cost-to-complete estimates gives the most faithful picture of performance. It also powers the WIP schedule that lenders and sophisticated owners will ask to see.

The WIP Schedule: Your Real Financial Dashboard

If you run only one report beyond your P&L, make it the Work in Progress (WIP) schedule. A WIP report reconciles three numbers on every active project: how much you have earned, how much you have billed, and how much it has cost you so far. It answers the questions your bank balance cannot.

What a WIP Report Contains

A basic WIP line per project shows:

  • Contract price (including approved change orders — not pending ones)
  • Costs incurred to date
  • Total estimated costs and percent complete
  • Earned revenue to date
  • Billings to date
  • Overbilling or underbilling balance
  • Gross profit recognized and remaining backlog

Roll those lines together and you see firm-wide earned revenue, total over- and underbilling, and gross profit at a level of precision no company-wide P&L can match.

Overbilling vs. Underbilling, Plainly Explained

Overbilling (also called billings in excess of costs and earnings) means you have billed more than you have earned:

Overbilling = Total Billings to Date − Earned Revenue to Date — positive result

A moderate, intentional overbilling position is common and can be healthy — you collect ahead of work as your contract allows, which funds payroll. Excessive or growing overbilling, however, can signal that you are borrowing from the future to cover today's overhead, or that cost estimates are understated. If the work slows, you may owe that cash back in effort without corresponding future billings.

Underbilling (costs and earnings in excess of billings) means you have earned more than you have billed:

Underbilling = Earned Revenue to Date − Total Billings to Date — positive result

Underbilling starves cash. It often means you are slow to invoice, missing change orders, or not capturing all field labor and subconsultant costs in your progress estimate. A small underbilling balance that clears on the next billing cycle is normal. A large, persistent underbilling balance across several projects means you have done the work and are financing your clients for free.

Worked example: Contract price $400,000. Costs incurred $120,000. Total estimated costs $240,000. Percent complete = 50%. Earned revenue = $200,000. If billings to date are $240,000, you are $40,000 overbilled. If billings are $160,000, you are $40,000 underbilled. Same earned revenue, very different cash positions.

Why Your Bank Balance Lies

Consider two firms with identical $180,000 bank balances:

  • Firm A is $95,000 overbilled across three projects. That cash is spoken for — it represents work not yet performed.
  • Firm B is $80,000 underbilled. It has earned $80,000 it has not yet invoiced, and its bank balance understates true progress.

Firm A looks flush and is actually leveraged. Firm B looks tight and is actually ahead on work. Without a WIP schedule, you cannot tell which one you are.

Banks and sureties know this. When you apply for a line of credit, they will request a WIP schedule specifically to adjust your balance sheet for over- and underbilling and to test whether your estimates have been reliable over time.

Job Costing That Actually Works

Percentage-of-completion and WIP are only as good as the costs feeding them. Job costing is the discipline of tagging every dollar to the project that consumed it — or explicitly marking it as overhead.

Costs to Track by Project

  • Direct labor. Engineer, designer, and technician hours charged to the project at loaded cost (base pay plus payroll taxes, benefits, and paid leave — not just the hourly wage). Timesheet hygiene is non-negotiable. Hours entered late or dumped to “general” destroy margin analysis.
  • Subconsultants and subcontractors. Outside specialists hired for a specific engagement. Collect a W-9 before first payment, track the 1099 threshold, and tie every invoice to a project code.
  • Direct materials and equipment. Supplies, printing, plotting, project-specific software licenses, and field gear purchased for that job.
  • Reimbursables and travel. Site visits, mileage, per diem, and client meetings tied to a project. Decide up front which are billable pass-throughs versus absorbed costs, and handle them consistently.
  • Other direct costs. Permits, agency fees, and testing that belong to one project.

Allocating Indirect Costs

Not every dollar belongs to a project. Rent, firm-wide insurance, marketing, and principal time spent on business development are overhead. The mistake is leaving overhead entirely unallocated and then wondering why project margins look generous while firm profit is thin.

A simple method is to allocate overhead by direct labor hours or direct labor dollars. Pick one base, document it, and use it for internal management reporting. You do not need perfect precision — you need consistency so months and projects are comparable. Keep GAAP financials clean and do allocation in management reports if you prefer.

Setting It Up in Your Accounting System

You do not need to abandon QuickBooks to get decent job costing, though larger firms often outgrow it and move to Deltek Vantagepoint, Deltek Ajera, Sage Intacct, or similar project-based platforms.

  • Create a project or job for every engagement, including small ones. “Miscellaneous small projects” is where margin goes to hide.
  • Use classes, projects, or jobs — whichever your edition supports — and require a project assignment on every timesheet line, expense, bill, and invoice.
  • Create a cost code structure you will actually use: labor, subconsultants, reimbursables, direct materials, and overhead as a minimum. More granularity helps only if your team will code to it.
  • Reconcile weekly. Waiting until month-end to code transactions guarantees guesswork.

Cash Flow Management for Project-Based Income

Accurate books and a clean WIP do not automatically fix cash flow. You need billing and reserve habits that match the rhythm of engineering work.

Bill on a Cadence, Not on Memory

  • Progress billing. Invoice at fixed intervals — biweekly or monthly — for work performed, not only at phase gates. If your contract is milestone-based, still track earned value internally so you know whether your invoices keep pace.
  • Phase-based milestones with teeth. When you do bill by milestone, define each milestone with an observable deliverable and tie a specific invoice amount to it. “Schematic design complete” should mean a dated submittal the client accepted, not a feeling.
  • Retainers and upfront deposits. Particularly for smaller or new-client work, collect a retainer before you start. Book it as a liability (client deposit) until earned, then apply it against progress invoices.

Mind the Change Order Gap

Few things create underbilling faster than performing extra work before the change order is signed. Adopt a simple rule: no work outside the original scope without a written authorization, even if it is a one-paragraph email estimate the client approves. Log pending change orders separately from approved contract value — never recognize revenue on a change order you have not yet secured.

Build and Guard a Reserve

Aim for three to six months of overhead in a separate operating reserve. Fund it deliberately from overbilling surpluses and strong months rather than treating every flush month as permission to add fixed costs. When a project is delayed or a client pays on net-90 terms, the reserve is what lets you make payroll without drawing on a credit line.

A 13-week rolling cash forecast — essentially a forward-looking WIP in cash terms — pairs well with the backward-looking WIP. Project your expected billings, collections, payroll, and subconsultant payments by week. The hard part is not the spreadsheet. It is updating cost-to-complete honestly so the forecast stays credible.

Billable Utilization: The Ratio That Prices Your Firm

Hours are your primary inventory. The billable utilization rate tells you how much of your capacity actually earns revenue.

Billable Utilization = Billable Hours / Total Available Hours

Total available hours is typically 40 per week per full-time employee minus holidays and approved leave — not 40 plus nights and weekends. Billable hours are hours that can be charged to a client project under the contract terms, whether hourly or credited against a fixed fee.

Benchmarks vary, but most engineering service firms target:

  • Billable technical staff: 70% to 80% utilization (28 to 32 billable hours per 40-hour week)
  • Project managers: 50% to 65%, reflecting time spent on supervision, proposals, and administration
  • Principals and directors: 35% to 50%, with the rest allocated to business development and firm leadership

Pushing for 100% is not the goal — it leaves no room for training, quality review, or selling the next project, and it burns out the team you are counting on. The leverage comes from trimming non-billable time that is actually leakage: late timesheets, uncaptured phone calls and site visits, and rework caused by unclear scope. Firms that tighten those leaks often find 5 to 10% more billable capacity without adding headcount.

Track utilization weekly by person and by project, and compare it to your WIP. A project that is consuming hours faster than it is earning revenue is worth a conversation before the next invoice, not after the budget is gone.

Financial Reports Every Engineering Firm Should Review Monthly

You do not need a dozen reports. You need five, reviewed on the same day every month, with the same people in the room.

1. Profit and Loss by Project

Your standard P&L sliced per engagement, including direct labor at loaded cost. Sort by margin percentage. The top of the list tells you what to sell more of. The bottom tells you what to price differently or stop chasing.

2. Work in Progress Schedule

The earned-versus-billed reconciliation described above. Flag any project where over- or underbilling exceeds roughly 10% of contract value, and any project where percent complete moved but billings did not.

3. Accounts Receivable Aging

Outstanding invoices grouped as current, 1–30 days, 31–60 days, and 61+ days past due. In engineering, slow pay on one invoice can cascade into a payroll crunch on the next project. Assign an owner to every balance over 30 days and follow up on a cadence the client can predict.

4. Accounts Payable Aging and Subconsultant Payables

What you owe and when it is due, with subconsultant invoices flagged by project. Paying subconsultants late to preserve cash burns relationships you will need on the next deadline. If cash is tight, be explicit with your team about which payables can wait and which cannot.

5. Cash Flow Statement and Backlog

Where cash came from and where it went — operating, investing, financing — plus a simple backlog figure: remaining contract value on signed work. Backlog divided by average monthly revenue is your runway in months. When it drops below three or four, business development is no longer optional.

Common Mistakes and How to Avoid Them

Estimating once and never revising. Total estimated cost is a living number. Re-estimate at every billing cycle with the project manager who owns the work. If the project is 60% complete but you have already spent 75% of the budget, percent complete computed from costs will be wrong until you raise the estimate — and revenue will be overstated in the meantime.

Coding everything to overhead. Payroll without project assignments, credit card charges left uncategorized, and “office supplies” dumped to one account make WIP and margin analysis fiction. Require a project code on every timesheet line and every expense. If something is truly overhead, label it as such explicitly.

Recognizing change-order revenue too early. Until the client signs, a change order is a hope, not a contract. Earned revenue should reflect only the approved contract value plus approved changes. Keep pending changes in a separate log and exclude them from percent complete.

Confusing billings with earnings. Invoicing $100,000 does not mean you earned $100,000. Overbilling without awareness leads to spending cash that is already committed to future work. Underbilling without awareness leads to surprise write-offs when you finally reconcile.

Ignoring non-billable scope creep. Small favors — an extra rendering, a re-run of the stormwater model, attendance at a community meeting you did not scope — consume billable capacity. Track scope-creep hours as a non-billable project task so you can see the pattern, then decide whether to absorb it or turn it into a change order next time.

Late timesheets. A WIP prepared on Friday from timesheets submitted the following Tuesday is already stale. Set a cutoff — for example, timesheets due Monday at 10 a.m. for the prior week — and enforce it.

Putting It Together

Strong engineering bookkeeping is less about accounting theory than about consistency. Estimate honestly, code transactions to projects in real time, bill on a rhythm, and reconcile earned versus billed every month on a single WIP page your leadership team can read together. Those habits turn your financial statements from a rearview mirror into a steering wheel.

Accurate, project-level books also make hard decisions easier. You can price the next proposal from recent actuals rather than optimism, spot the client relationship that always runs 15% over budget, and tell a lender or surety exactly where you stand without scrambling for answers.

Simplify Your Financial Management

As you tighten up percent-complete estimates, WIP reviews, and job costing habits, the underlying bookkeeping has to keep pace — every timesheet, vendor bill, and progress invoice tagged to the right project and period. Beancount.io gives you plain-text accounting that is transparent, version-controlled, and ready for the custom reports and automations engineering firms actually need — no black boxes, no vendor lock-in. Get started for free at https://beancount.io and bring the same rigor to your ledger that you bring to your designs.

Share this article