Skip to main content

Unbilled Jobs — never lose track of work that's ready to invoice

Completed jobs were silently going unbilled because office staff had no single place to see them. Unbilled Jobs fixes that with a dedicated queue, smart per-job controls, and visibility on every job page.

What's new

📋 The Unbilled Jobs queue — a new page at Jobs → Unbilled (also a sidebar item with a live count badge). Lists every job in a "ready to bill" status that doesn't yet have a finalized invoice. Each row gives you the right next action in one click: Create Invoice, Add Products, or Review Draft.

⚙️ You decide what "ready to bill" means — a new Billing tab in Settings lets you flag any job status as a billable trigger (e.g. Completed, Signed Off, Ready to Invoice). Toggle on and the queue picks up matching jobs immediately. Toggle off any time.

🚫 Mark jobs as Not Billable, with a reason — some completed work shouldn't be invoiced: warranty calls, service-plan visits, internal or comp work, jobs bundled into a parent. From any unbilled row, click the ⋯ menu and pick a reason — the job leaves the queue but stays auditable.

Reasons supported: Warranty, Service Plan, Internal, Bundled (parent), Other. Reversible from the Job page.

🏷️ Default reason per Job Type — if you have a dedicated Warranty Callback or Internal Maintenance Job Type, set its Default Non-Billable Reason once. New jobs of that type are pre-marked so they never land in the queue by mistake.

💰 Billing summary on every Job page — a new panel shows Invoiced / Paid / Outstanding at a glance, with a per-invoice breakdown when there's more than one. Backed by Paylines so split payments attribute correctly.

Why it matters

  • No more silent leakage. If it's signed off and not billed, it's on the queue.

  • One screen, multiple trades. Per-tenant status configuration means HVAC, fire safety, plumbing, electrical, cleaning, and facilities operators can each define "done" their own way.

  • Office workflow, not field admin. Marking a job non-billable is a one-click reason picker.

  • Per-job clarity. Every Job page now shows what's been invoiced and what's still outstanding — without leaving the record.

Getting started

  1. Go to Settings → Billing and turn on the job statuses that mean "ready to bill" for your business.

  2. (Optional) Open Settings → Job Types and set a Default Non-Billable Reason for any types that should be excluded automatically.

  3. Open Jobs → Unbilled in the sidebar — your queue is live.

Available now on all plans where Jobs and Invoices are enabled.

2 comments