Odoma.app · guide

How to tell if a site is profitable

Short answer: a site is profitable if the paid revenue is greater than all of its costs — materials, travel and wages. Below: the formula, a worked example and seven places where the calculation usually lies.

For teams of 1–10 people who work on sites: construction, renovation, electrical, plumbing, cleaning, installation. Checked 13.09.2026.

formula

Margin, profit and the price of an hour

Site margin = revenue site expenses Site profit = margin labour cost Margin per hour = margin ÷ hours on site
Revenue
The paid part of your invoices for the site. An issued invoice is not money yet: until it is paid, the site costs the company money rather than bringing it in.
Expenses
Everything that went into this site. Materials and subcontractors — by receipts and supplier invoices. Travel — in personal cars it is compensation by the trip log, 0.50 €/km; in a company car — fuel and maintenance by receipts.
Hours
Time present on site from arrival to departure, for everyone on the team.
Labour cost
Hours on site × the cost of an employee's hour including taxes. Wages per site are coming to Odoma.app.

How to read margin per hour. That is what an hour on site brings in after materials and travel. The employee's hour, taxes included, is paid out of it. If margin per hour is below the cost of that hour — the site is losing money, even when the margin is positive.

example

A margin of 4 220 € is 24 € an hour. Minus 730 € — before wages

sites, Augustscrolls sideways →
SiteMargin€/hrevenue · marginRevenueExpensesHours
Ussilaka tee 12+4 220 €42 € revenue per hour, margin 24 €7 400 €3 180 €176
Ehitajate 83b−730 €42 € revenue per hour, margin −14 €2 250 €2 980 €54

Ussilaka tee 12

Paid 7 400 €, expenses 3 180 € — margin 4 220 €. 176 hours on site: margin 24 € per hour.

Looks like a good site. But the employee's hour, taxes included, still has to be paid out of those 24 €.

Ehitajate 83b

Paid 2 250 €. Expenses 2 980 €: materials 2 340 € by receipts and invoices, travel 640 € — 31 visits, 1 280 km by the log. Margin −730 €.

Minus 14 € for each of the 54 hours — and that is before paying for them. The price of the job did not cover travel and materials.

The €/h column is as in the dashboard: revenue per hour on top, margin per hour underneath. The numbers are made up, the calculation is real. The same screen is built in the dashboard from trips, receipts and invoices.

calculate my site

Put in your own numbers

Travel, 0.50 €/km400 €
Margin before wages3 400 €
Margin per hour57 €

The employee's hour, taxes included, is paid out of margin per hour; wages per site are coming to Odoma.app. Calculated in the browser, sent nowhere.

where the calculation lies

Seven mistakes that make a loss-making site look profitable

  1. Counting issued invoices, not paid ones. An unpaid invoice is credit to the client, not revenue.
  2. Forgetting the road. 31 visits to Ehitajate 83b is 1 280 km and 640 € of travel that was not in the price of the job.
  3. Not deducting wages. A margin of 4 220 € over 176 hours is 24 € an hour. If the employee's hour with taxes costs more, the site is losing money even though the report shows a plus.
  4. Not allocating overheads. Fuel, tools and consumables without a site are a separate line. If it is missing, the sites look more profitable than the company.
  5. Counting hours on site only. An hour on the road costs the company as much as an hour on site. For a site 40 km from base the real rate is lower than margin per hour by hours of presence shows — compare sites with a similar drive or add the hours on the road.
  6. Mixing VAT. Revenue with tax against expenses without it inflates the margin by the whole VAT on the revenue. Count everything net.
  7. Looking at the end of the year. A loss on a site that is running now can be fixed by pricing extra work or turning it down. A loss in the annual report is history.
from practice

What people do with these two numbers

“Sometimes a client offers extra work on the site. Exact numbers — how long I have already worked on the site and what my effective hourly rate is — help me decide whether to take the extra work or not.”
Ingrid · painter
“If I see the margin dropping in some week, I adjust when I make new price offers for similar sites.”
Paavo · apartment renovations

The first decision is about the current site: whether to take extra work at this rate. The second is about the next one: what price to quote for a similar site. The first is only possible while the site is still running.

short answers

What people ask most often

What counts as a site's revenue?

The paid part of the invoices for the site. An invoice issued but not yet paid is not revenue yet.

Are wages part of a site's expenses?

In the profit calculation — yes: hours × the cost of an employee's hour including taxes. In Odoma.app margin is for now counted before wages; per-site wages are coming.

How do I count travel in a personal car?

By the trip log: kilometres × 0.50 €/km. Without a log the compensation is taxed as salary.

without manual entry

Same formula. The numbers arrive on their own

Trips and hours on site — from the phone. Expenses — receipts by photo and invoices by forwarding an email. Revenue — the paid part of your invoices. The sites screen builds itself — before the site is closed.

Compensation rate 0.50 €/km by trip log — EMTA, Estonia, 2026. The other numbers on this page are a made-up example.