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:
Finds all work orders with COMPLETED status that don't have an invoice
Creates an invoice for each work order, copying line items and customer details
Updates each work order status to INVOICED
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.