One-off jobs and temporary services: how to plan, price and invoice them

Fixed contracts are the backbone of a cleaning company. But the one-off jobs decide the margin: the deep clean before summer, the window cleaning the client calls about in March, the move-out clean for a new customer, the floor treatment in reception. Each one is small. Together they are often 10 to 20 percent of revenue, and the part with the best margin, if you actually get it invoiced.
The problem is that one-off jobs rarely live where the fixed jobs live. They start as a text message or an email, get priced by gut feeling, end up in a spreadsheet or a calendar, and are forgotten when the invoice should be written. The cleaner turns up without a checklist, and nobody knows whether the job was done until the client calls.
This article walks through three kinds of one-off jobs, where they typically go wrong, and how to get them into the same system as your fixed contracts. We use CleanFlow as the example, because that is where we built the flow, but the principles hold whatever tool you use.
Three kinds of one-off jobs
Not all one-off jobs are alike. They come from three different places, and they need three different flows:
Kind | Example | Who starts it | What typically goes wrong |
|---|---|---|---|
Temporary service on a building you already clean | Deep cleaning, floor treatment, window cleaning, disinfection | You or the client, often as an add-on quote | Priced outside the estimate, no written agreement, invoiced late or never |
One-off job for a new customer | Move-out clean, post-construction clean, private home | A new customer calls | Lives in one person's calendar, nobody sees it in the plan, time is not logged |
Extra order from an existing client | Extra clean after an event, carpet cleaning in one room | The client | Emails back and forth about price and date, the order is forgotten or not invoiced |
The common thread is that a job needs four things to make money: a price, a date, a person to do it, and an invoice. Drop one of them and you lose either the job or the margin.
1. Temporary services on a building you already clean
This is the most common and most profitable kind. You know the building, you have the rooms and the square metres, and the client trusts you. The challenge is that deep cleaning and window cleaning do not fit into the fixed cleaning plan, which is built around daily and weekly frequencies.
In CleanFlow every building has its own tab, "Temporary services", next to the fixed plan. The flow is four steps:
Step 1: Configure the rooms. Pick a floor on the floor plan and tap the rooms that need work. For each room you set the service type (deep cleaning, floor treatment, window cleaning, move-out clean, carpet cleaning, disinfection), method, soiling level and number of visits per year. You do not set a date here. The frequency drives the price; the dates are chosen when the job is activated.

Step 2: Estimate and quote. "Estimate and quote" sums up the work and builds a one-off quote through the offer builder. The quote shows visits per year instead of a monthly price, and the client gets a single price, not a subscription. The client can sign digitally, just like an ordinary quote.

Step 3: Activate and set dates. Once the quote is signed, or straight away on a building that is already in operation, the building shows "Ready to activate". There you assign a team and choose the visit dates. The dates are spread evenly from the start date, but every visit can be moved to an exact day. A team is required, on purpose: without a team the job is invisible in the mobile app, and then it does not get done.
Step 4: Follow up and invoice. After activation the building shows that the jobs are in operation, with the number of jobs and the next visit date. The jobs themselves appear in the planner and in the mobile app on their dates, with the checklist for the service type. If a visit has to move, use "Change visit schedule"; visits already completed stay untouched. Temporary services are invoiced once, not monthly, and the agreement closes itself once the invoice is sent. No line that keeps running on next year's invoice.
2. A one-off job for a new customer
Move-out cleans and post-construction cleans often come from customers you do not have yet, and often from private individuals. Building a floor plan and a cleaning plan is too heavy for that. The job just needs to go on a date, to a person, with the right duration.
In CleanFlow you do that straight in the resource planner with the "New job" button. The customer is registered as a building with one room, which is selected automatically, and the task gets its date, start time and duration immediately. You do not wait for a recurring plan or the nightly generation. If you pick a person, the planner warns you when the time overlaps their break or falls outside their working window that day.
If nobody is free yet, leave the task unassigned. The "Upcoming unassigned" panel shows all of the team's unassigned tasks 30 days ahead, grouped by day with the count and total estimated time. From there you drag the task to whoever should have it. That is your backlog, and it is visible to every team leader, not just the person who took the call.

3. The client orders it themselves
The third kind is the one you want more of: extra orders from clients you already have. The problem is the transaction cost. The client sends an email, you reply with a price, they ask about a date, you check with the team, and after four emails the job is agreed. Or not.
In CleanFlow the client can order directly in the client portal. You set it up once per building: open the building, go to Client portal and the Orders tab, switch orders on, and define the orderable services with price, unit and lead time. The price is calculated from your cost estimate, with the same markup as the rest of the quote, so you do not price each order by hand.

The client picks rooms and a service in the portal and sees the price right away. The order lands with you for approval: approve with a planned date, or reject with a reason. Team leaders are notified, and a red counter on the Operations menu shows how many orders are waiting. Once the job is completed, the order is invoiced directly from the ordered services and their prices.

It is a sales tool too. The client sees what you offer, with prices, every time they open the portal. The carpet cleaning they did not know you did gets ordered because it was there.
How to price a one-off job
The principle is the same as in the cleaning cost estimate: time per room times true hourly cost, plus margin. The difference is that the productivity rates are completely different from daily cleaning. Deep cleaning takes three to four times as long per square metre as maintenance cleaning, and move-out cleaning far more.
These are the default rates built into CleanFlow, per service type. Adjust them to your own measured figures:
Service type | m² per hour |
|---|---|
Disinfection | 150 |
Deep cleaning | 80 |
Floor treatment | 70 |
Window cleaning | 60 |
Carpet cleaning | 60 |
Post-construction clean | 38 |
Move-out clean | 30 |
On top of the base time come soiling level (a room after renovation takes longer than an office cleaned every quarter), setup time per visit, and any machines and chemicals for the service type. A worked example: deep cleaning 400 m² of office at 80 m² per hour gives 5 hours, plus 30 minutes of setup. With a true hourly cost of NOK 334 and a 20 percent margin the job lands at roughly NOK 2,200 excluding VAT. Lower the rate to 60 m² per hour because the space is densely furnished, and the price goes to around NOK 2,900. That is a 30 percent difference, and it should be a deliberate choice, not an accident.
One-off jobs also carry a higher margin than fixed contracts. The client is not comparing four quotes for a window clean, and you carry the risk of a job with no repeat. 20 to 30 percent is common, against 10 to 15 on fixed agreements.
Checklist: five things every one-off job needs
- A written price before the job. A quote from the estimate, not a number in a text message. It also documents what was agreed if the client disagrees afterwards.
- A date and a person. A job without a team or a person is not planned, it is just remembered. It should be visible in the same planner as the fixed jobs.
- A checklist for the service type. Deep cleaning has different items than daily cleaning. The cleaner should see them in the app, not hear them in passing.
- An invoice the same week. One-off jobs invoiced the month after get forgotten. The invoice basis should be built from what was actually done.
- Ask whether it can become recurring. Quarterly window cleaning or twice-yearly floor treatment is a one-off job that repeats. Set it up with visits per year and it comes back by itself.
Frequently asked questions
What is the difference between temporary services and one-off jobs in CleanFlow? Temporary services are room-by-room work on a building, with a service type, a price per room and a visit schedule, and they start with a quote. One-off jobs are a single task on a single date, registered straight in the planner, typically for a private home or a new customer without a floor plan.
Are temporary services invoiced monthly? No. Temporary quotes are invoiced once, and the agreement closes automatically after invoicing. Ordinary cleaning contracts are invoiced monthly.
Can the client order extra cleaning themselves? Yes, in the client portal, if you have switched orders on for the building and defined which services can be ordered. The order goes to you for approval before it is scheduled.
How do I price a move-out clean? Area divided by 30 m² per hour gives the base time. Add setup and window cleaning if included, multiply by the true hourly cost, and add margin. A 70 m² flat then comes to a little over 2 hours plus setup. See the cleaning cost estimate for the hourly cost.
Want to see one-off jobs in the same flow as your fixed contracts? See how CleanFlow handles temporary services, or try it free for 14 days.