Go to Estimator, select a Service Area, and click + Add Item to build your service quote.
Set Service Start and Duration in Settings to see the timeline.
Enter actual costs in the Estimator "Actual ($)" column to see job costing analysis here.
| AreaService Area — which part of the pool system this item applies to (e.g. SA 02 = Filtration, SA 06 = Water Chemistry). Controls how items are grouped and reported. | DescriptionA clear label for this line item (e.g. "Variable Speed Pump Replacement"). This is the only column visible to the client on the Service Agreement. | QtyQuantity of the unit being estimated. For example: 12 weekly visits, 5 lb of chlorine, or 1 pump. Used to multiply against Chemical/Supply Cost. | UnitUnit of measurement: visit, hr, lb, gal, ea (each), ls (lump sum), sqft, lf (linear feet), etc. | Mat. Cost ($)Chemical/supply cost per unit — what you pay your distributor per lb, per gallon, per pump, etc. Sales tax is applied to this column only (set in Settings). | Service HrsService labor hours PER UNIT. Multiplied by Qty × Labor Rate. Example: 4 visits × 1 hr = 4 hrs billed. Leave at 0 for chemical-only items. | Labor Rate ($/hr)Your fully-loaded service labor cost per hour for this item. Defaults to the rate set in Settings. You can override per row for specialty work (electrical, plumbing). | Markup %Profit markup applied to this line item. In Markup mode: Price = Cost × (1 + %). In Margin mode: Price = Cost ÷ (1 − %). Switch modes in Settings. Rows below your minimum margin threshold turn red. | Line TotalFinal client-facing price for this row. Formula: (Mat. Cost × Qty + Service Hrs × Qty × Labor Rate) × (1 + Markup%) or ÷ (1 − Margin%). This is the number shown on your Service Agreement. | Actual ($)Internal-only field for tracking actual cost after job completion. Compared against estimate in the Job Costing dashboard. Never shown to clients. | ★Save to Library — stores this item's rates and markup so you can add it to future quotes in one click. | ⬇Duplicate Row — creates an identical copy directly below. | ↑Move Up — shifts this row one position up within its Service Area. | ↓Move Down — shifts this row one position down within its Service Area. | ✕Delete — permanently removes this row. A confirmation dialog will appear first. |
|---|
| CO # | Description | Reason | Cost ($) | Days ± | Status |
|---|
This view hides your internal labor rates and markups. Click "Save as PDF" to export a clean client copy.
Pre-loaded with 45+ common pool service chemicals, equipment, and labor items. Click ★ on any Estimator row to add custom items. Search below to filter.
| Description | Area | Mat. Cost | Service Hrs | Rate/hr | Markup % | Unit |
|---|
Snapshots capture your full quote at a point in time. Click Preview to review a snapshot's contents before deciding to restore it.
No snapshots yet. Use "Save Snapshot" in the sidebar.
No actions yet.
A professional pool service estimator, service agreement, and invoicing tool built for pool maintenance contractors. Runs entirely in your browser — no subscription, no account required. All data is stored locally on your device. Export JSON backups regularly to protect your work.
Enter your pool service company info and upload your logo. Set Chemical Tax % (8.5% default), Profit Margin % (20% default), Default Deposit % (25%), and Overhead % (10%). Enter the property's pool type, shape, volume in gallons, dimensions, surface, filter type, sanitizer, and water test results. Choose Simple or Loaded labor rate (defaults to $75/hr loaded). Select Markup or Margin pricing mode. Pick a service agreement template.
Go to Estimator. Select a Service Area (Filtration, Pump & Motor, Water Chemistry, etc.) and click "+ Add Item" — or use Quick Add from Library to drop in pre-priced chlorine, pumps, filters, etc. Fill in Description, Qty, Mat. Cost, and Service Hours. The line total calculates automatically. Save custom items to the Library (★) for one-click reuse. Duplicate rows (⬇) or reorder (↑↓). Red rows = margin below your warning threshold.
Real-time stats: Service Quote Total, Total Cost, Net Profit, Profit per Hour (which accounts are worth your time), and approved Change Orders. The Schedule chart shows cost-weighted Service Area timelines.
Before sending a service agreement, save a snapshot. If the client asks for revisions, restore the original from the Snapshots tab. Never lose a previous version again.
The Service Agreement tab auto-hides your internal rates and markups. It shows only what the client needs to see. Click "Save as PDF" to export a professional document.
Log every scope change (broken pump, equipment upgrade, additional service). Approved COs auto-sync to the Invoice. Schedule impacts feed the timeline. Pending COs are tracked separately.
The Invoice auto-fills from your quote and approved COs. Add payment milestones (Deposit, Monthly Recurring, etc.) and mark them Paid to subtract from Balance Due. Set Invoice Status (Draft → Sent → Partial → Paid). Deposits are tracked separately.
Data saves in this browser only using IndexedDB (virtually unlimited storage). The storage bar in the sidebar shows usage. Always Export Project as a JSON backup.
Service quotes are opinions of possible costs and do not constitute a guaranteed quotation or contract. Users must obtain independent supplier quotes for chemicals and equipment. The developer accepts no liability for financial losses.
• Always export Service Agreement and Invoice as PDF — never send the raw HTML to a client.
• Use Margin mode to guarantee your profit target; 30% Markup only equals ~23% actual margin.
• The Loaded Rate calculator prevents undercharging by including payroll tax, GL, Workers Comp, and vehicle/fuel.
• Track water chemistry on every visit — pre-existing imbalances are NOT your liability under the standard agreement clause.
• Photograph equipment condition on first visit — it's protection against "you broke my pump" claims.
• Chemical Tax applies only to chemicals/supplies — service labor is non-taxable in most US jurisdictions.
• Save a Snapshot before every client meeting. It takes 2 seconds and saves hours.
• On the Service Agreement tab, click Copy Email to generate a ready-to-send outreach email in one click.
• Enter actual costs in the Estimator "Actual ($)" column after job completion to track estimating accuracy.
• Use the Pool Service Library — 45+ pre-priced chemicals, equipment, and labor items load on first launch.