Guides

Budgeting·7 min

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.