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.
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.
| Site | Margin | €/hrevenue · margin | Revenue | Expenses | Hours |
|---|---|---|---|---|---|
| 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 |
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 €.
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.
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.
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.
The paid part of the invoices for the site. An invoice issued but not yet paid is not revenue yet.
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.
By the trip log: kilometres × 0.50 €/km. Without a log the compensation is taxed as salary.
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.