Spandrel
All guides

Budgeting · Coming soon

Setting Up Your First Project Budget and Connecting QuickBooks

Go from estimate to live budget with QuickBooks syncing costs automatically — set up correctly the first time.

From estimate to budget in Spandrel

A project budget in Spandrel is the live financial backbone of a job. Unlike a static spreadsheet, it updates in real time as subcontracts are signed, change orders are approved, invoices come in, and payments go out.

The fastest way to get a budget live is to start from your estimate.

Step 1: Create the project

From the Projects tab, click New Project. Enter the project name, owner/client, contract value, and start/end dates. At this point the project is in "Pre-budget" status.

Step 2: Add budget lines

Budget lines map to cost codes — the buckets you track spending against. Common cost codes follow CSI divisions (01 – General Requirements, 03 – Concrete, 05 – Metals, etc.) but you can customize them for your shop.

For each budget line you'll set:

  • Cost code (the category)
  • Budget amount (your estimated cost)
  • Contract type (lump sum, T&M, or unit price)

If you import your estimate from a spreadsheet, use the CSV import tool — Spandrel maps columns to cost codes automatically.

Step 3: Connect QuickBooks Online

Go to Settings → Integrations → QuickBooks Online and click Connect. You'll be redirected to Intuit to authorize the connection. Once connected, Spandrel imports your:

  • Chart of accounts (mapped to GL accounts)
  • Items / Products & Services (mapped to cost codes)
  • Existing vendor list
  • Any project-coded transactions from the last 90 days

The initial sync typically completes in 2–5 minutes depending on company size.

Step 4: Map your QBO sub-customers to Spandrel projects

For QBO costs to flow into a specific project's budget, QBO expenses need to be coded to the matching sub-customer (project entity) in QuickBooks. Spandrel reads the CustomerRef on each purchase line to determine which project to attribute the cost to.

If you already use sub-customers in QBO for job costing, the mapping is immediate. If not, this is a good time to set that up — it takes about 10 minutes per project.

How costs flow from QBO to Spandrel

Once connected, costs reach Spandrel three ways:

  1. Real-time webhooks — QBO notifies Spandrel the moment an expense is entered. Costs typically appear in your budget within 30 seconds.
  2. Scheduled pull — Every 5 minutes, Spandrel re-pulls to catch anything webhooks missed (common in QBO sandbox environments).
  3. Manual sync — Hit "Sync now" in Settings → Integrations if you want an immediate refresh.

Reading the budget grid

Once costs are flowing, the budget grid shows for each cost code:

  • Budget amount — your original estimate
  • Committed costs — signed subcontracts + approved change orders
  • Actual costs — invoices confirmed and posted
  • Remaining budget — budget minus actual and committed
  • % complete — based on actual vs. budget

Over-budget lines are flagged in red. Any QBO cost that hits a cost code with no corresponding budget line surfaces as an "Unbudgeted" row — amber-badged, read-only, and visible so nothing is silently missed.

Keep reading

More from the field guides

Practical guidance for your next pay run.

Your next pay run

See how Spandrel fits your team.

Walk through bills, ACH payments, and lien waivers with the Spandrel team.