Charge on completion: what happens the moment a job closes
Last updated August 21, 2026
LakeOps has no invoicing subsystem: completing a job prices it from your price list and emails the customer a link to a page showing exactly what was done and what it costs, and any payment is recorded straight against that job.
Most field service software grows an accounting department inside it. LakeOps does not. The constraint is still blunt: no invoice objects, no invoice numbers, no accounting sync. Not issuing invoices was never meant to mean not collecting, though — so LakeOps does have an aging report, statements, an optional reminder schedule and optional late fees. What it does not have is a document with a number on it.
What completing a job actually does
- Stops any timer still running against it, stamped at the completion time.
- Marks the job complete, by a named person, at a recorded time.
- Prices it from your price list and snapshots the number — see how a job gets priced.
- Records the completion in the activity log.
- Emails the customer a link, if completion emails are on.
The email fires exactly once. A completion arriving twice off a boat that was out of range still sends one email — the job itself remembers that it has been sent.
When only half of it got done
The fork barge sets the dock in the morning and the crane barge is not coming until Thursday. That job is not finished, and LakeOps will not let you complete it while a piece is still open — completing prices the work and mails the customer a total, and half a dock is not a bill. A piece that genuinely will not be done gets skipped with a reason instead, which is not billed and leaves the reason on the record. Skip the last open one and the job closes and bills on the spot.
The customer still hears about the half that is in the water. When the day is closed out, anybody whose work was started and not finished gets a short email saying what went in, what is still to come, and that there is nothing to pay yet. It carries no figure at all — the moment a number appears in a progress note it becomes a bill in the reader’s head, and the real one then looks like a second charge.
It is sent only when something new was actually finished. A day the crew did not get back to that property sends nothing, so a job sitting part-done for three weeks does not mail the same news three weeks running.
What the customer sees
If you have filled in your remit-to details under Settings → Payments, that page and the email also say who to make a check payable to and where to mail it — under the pay button, not instead of it. Taking cards was never a reason to stop taking the check somebody has written every spring for twenty years. See LakeOps Payments.
A page showing their property, every item that was done, what the work came to, and what is still outstanding. There is no login and there never will be — the link in the email is the credential, and it opens that one job and nothing else. Your customers are not going to maintain a password for a dock company, and asking them to is how a payment does not get made.
If LakeOps Payments is switched on and working, that page also carries a pay button. If it is not, the page is still exactly what a customer wants: a plain statement of what was done and what it costs.
Turning the email off
Some shops want to look at the work before the customer does, especially in a first season. Completion emails can be switched off for your whole account: untick Tell customers when their job is done in Settings, under When a job is done. Jobs still complete and still price; nothing goes out to customers, and you work off the completed-work report instead.
Collecting
Two ways, and plenty of shops use both:
- The customer pays online from the completion page, and the money lands in your bank. See LakeOps Payments.
- You get a check, cash or a card at your own terminal and record it against the job. See recording a payment by hand.
Either way it is the same payment record, and the job’s balance, the customer’s page and the reports all read it the same way. Nothing in LakeOps asks which one produced it.
Chasing what is outstanding
The completed-work report filters to unpaid work in a date range, and every customer page shows what they have been billed, what they have paid and what is outstanding. When you want that aged rather than listed, the balances report is the one that puts a number on how long it has been sitting there.
If you want conventional invoices for a commercial customer who demands one, export the completed-work report as a PDF for that customer and date range.
The argument for building it this way is on getting paid.
Still stuck? Ask us — or go back to the help center.