Finance

Billing Dashboard

The Billing Dashboard is your central hub for managing invoices, tracking payments, and monitoring revenue across your pool service business. From the billing page at /billing, you can generate invoices from completed work orders, create manual invoices, view payment history, and track your accounts receivable aging.

Billing Dashboard Overview

The billing page displays a summary of your financial status with four key metrics at the top:

  • Outstanding — Total amount due across all unpaid invoices, with the count of outstanding invoices

  • Overdue — Total amount past due and the number of overdue invoices

  • MRR — Monthly recurring revenue from active service plans

  • Collected this month — Total payments received in the current month

Accounts Receivable Aging

The aging breakdown shows how long outstanding invoices have been unpaid, organized into five buckets:

  • Current — Not yet due

  • 1–30 days — Past due up to 30 days

  • 31–60 days — Past due 31 to 60 days

  • 61–90 days — Past due 61 to 90 days

  • 90+ days — Past due more than 90 days

The aging bar provides a visual representation with amounts for each bucket. If you have no outstanding invoices, the component displays "No outstanding invoices."

Invoice Management

The invoice list shows all your invoices with key details at a glance. Each row displays the invoice number, status badge, customer name, issued date, due date, and total amount. If an invoice has a partial payment, the amount due appears alongside the total.

Invoice Status Badges

Each invoice displays a status badge indicating its current state:

  • Draft — Created but not yet sent to the customer

  • Sent — Delivered to the customer, awaiting response

  • Viewed — Customer has opened the invoice

  • Paid — Fully paid

  • Partial — Partially paid, with remaining balance due

  • Overdue — Past the due date with unpaid balance

  • Void — Cancelled and no longer valid

  • Disputed — Customer has disputed the charges

Invoices that are past due but not yet marked as Overdue display an additional Past due badge. Invoices with payment plans show a violet Plan badge.

Filtering Invoices

Use the filters above the invoice list to narrow your view:

  • Status filter — Filter by All statuses, Draft, Sent, Viewed, Partial, Overdue, Paid, or Void

  • Payment plan filter — Show All invoices, only invoices with payment plans, or only invoices without payment plans

The invoice list is paginated with 15 invoices per page. Use the Previous and Next buttons to navigate, or see the page indicator for your current position.

Generating Invoices from Completed Work

The Generate invoices button creates invoices from completed work orders that haven't yet been invoiced. When you click this button, Chisel Tide:

  1. Finds all work orders with COMPLETED status that don't have an invoice

  2. Creates an invoice for each work order, copying line items and customer details

  3. Updates each work order status to INVOICED

  4. Links the invoice to the work order

While generation is running, the button label changes to Generating... and the icon spins. Once complete, the invoice list and billing summary refresh to show the newly created invoices.

You must complete Stripe setup in Settings before you can generate invoices. If Stripe is not ready, the Generate invoices button is disabled with a tooltip: "Complete Stripe setup in Settings to generate invoices."

Creating a Manual Invoice

To create an invoice manually instead of generating from work orders, click the New invoice button. This opens the invoice creation form where you can:

  • Select the customer

  • Add line items with descriptions, quantities, and unit prices

  • Set tax rate and discount amount

  • Specify issue date and due date

  • Define the service period (start and end dates)

  • Add notes for the customer

Line items can reference service plans and service visits to maintain the connection between your service delivery and billing.

Invoice Details View

Click any invoice in the list to open its detail view at /billing/[id]. This page shows the complete invoice information and provides status-based actions.

Invoice Header

The header shows the invoice number, status badge, and customer name (linked to the customer record). The customer email appears inline when available.

Financial Summary

A summary row displays the invoice totals:

  • Total — Full invoice amount

  • Paid — Amount received so far

  • Amount due — Remaining balance (highlighted if overdue)

  • Due date — Payment deadline (highlighted if overdue)

Line Items

The Line items section shows a table with columns for Description, Qty, Unit price, and Total. Each line item displays a category label beneath the description:

  • Service

  • Chemical

  • Repair

  • Equipment

  • Other

Beneath the table, you'll see the calculated totals: Subtotal, Tax, Discount, Total, Paid (if applicable), and Balance due.

Payment History

If the invoice has received payments, the Payment history section shows each payment with:

  • Payment method (Card, ACH, Cash, Check, or Other)

  • Transaction ID (when available)

  • Processed date

  • Status badge (Completed, Failed, or Cancelled)

  • Payment amount

Invoice Details

The Details card contains metadata about the invoice:

  • Type — Invoice type classification

  • Collections status — Current collections state

  • Service period — Date range for services rendered

  • Paid date — When full payment was received

  • Notes — Any notes added to the invoice

Invoice Actions

Available actions depend on the invoice status:

  • Send invoice — Available for Draft invoices only. Delivers the invoice to the customer via email. The button changes to "Sending..." while processing.

  • Edit — Available for Draft, Sent, Viewed, or Overdue invoices that haven't been paid and don't have a payment plan. Opens the invoice editor to modify details, line items, tax, and discounts.

  • Record payment — Available for any invoice that isn't Void or Paid and has an outstanding balance. Opens a payment entry panel to log a received payment.

  • Create payment plan — Available for eligible invoices. Opens a modal to set up installment payments with frequency and start date.

  • Void — Available for any invoice that isn't already Void or Paid. Cancels the invoice permanently.

Once an invoice has a payment plan or has received any payment, you can no longer edit it. Make all changes before recording payments or creating a plan.

Payment Tracking

The Recent payments sidebar on the billing dashboard shows the latest payments received across all invoices. Each entry displays:

  • Customer name

  • Invoice number

  • Payment method (Card, ACH, Cash, Check, or Other)

  • Payment amount

  • Relative time since processing (e.g., "2 hours ago")

If no payments have been recorded yet, the sidebar shows "No payments yet."

Stripe Setup Requirement

To send invoices and accept online payments through Chisel Tide, you must connect a Stripe account. A warning banner appears on the billing dashboard when Stripe is not ready, with a link to complete setup in Settings.

Without Stripe connected:

  • The Generate invoices button is disabled

  • You cannot send invoices to customers

  • Customers cannot pay online (though you can still record offline payments manually)

How Invoices Connect to Work Orders and Customers

Invoices maintain connections to both customers and work orders:

  • Customer link — Each invoice references the customer record. The invoice list shows the customer name, and the invoice detail page links directly to the customer profile at /customers/[id].

  • Work order link — When you generate an invoice from a completed work order, the system stores the invoice ID on the work order record. This link is maintained for future reference.

This connection lets you trace any invoice back to the work that was performed and the customer who received the service.

Was this helpful?