Skip to Content

Odoo: Time-and-Materials Service Companies

Clear processes that help you stay in control (Fictional case study: Stafforia Services and Clientis Group are imaginary companies.)
September 8, 2025 by
Odoo: Time-and-Materials Service Companies
ANOR, Cyrille de LAMBERT

Auguria News

Selling time-and-materials means dancing to three tempos at once: finding assignments, recruiting the right profiles, and invoicing efficiently, without losing sight of the margin and the satisfaction of clients and consultants. Good news: Odoo does not do magic, it does better than that... it puts order into real life, so your teams can see clearly and decide quickly and well.

A — What Odoo offers: features & settings

1) CRM & account development

  • Structured accounts/contacts, multi-site, multiple contacts.
  • “Assignment” opportunities + sub-opportunities (extension, transfer, new team) to map the account.
  • Follow-up meetings (client & consultant) that can directly create opportunities in the CRM (traceable upselling).
  • Alerts on assignment end (D-60, D-30) to anticipate renewal.

2) Recruitment linked to the need

  • Recruitment pipeline attached to the opportunity: daily rate (TJM), skills, start date.
  • Matching by tags/skills, centralized interviews and ratings.
  • Assignment contract generated (eSignature) once the candidate is chosen.

3) Contracts, activity reports & invoicing: the heart of the reactor

  • Commercial contract on the client side (invoicing terms, due dates, validations).
  • Assignment contract on the consultant side (daily rate, duration, manager, analytic account).
  • Monthly activity reports: consultant entry → signature → client validation → manager validation → automatic creation of the draft invoice.
  • Key account case: if the contract is not yet signed, the invoice waits; Odoo still records the revenue earned as work in progress (unbilled revenue), then unlocks the invoice upon signature.

4) Finance & margin per assignment

  • Analytics per assignment: revenue (invoices from activity reports), costs (loaded salary, expense reports, bench time).
  • Real-time margin in € and %.
  • BM variable pay calculated on revenue or margin (configurable rules) → export of variables to OpenPaie → payroll journal entries re-imported.

5) HR (excluding payroll), compliance & ease of use

  • Leave/absences integrated into the schedule → automatic impact on activity reports.
  • Appraisals (progress, objectives) linked to the assignment/manager.
  • Expense reports: validation, re-invoicing to the client if applicable.
  • Portal for quick signatures (consultant and client).

6) Executive dashboard: real-time KPIs

  • Utilization (occupancy rate), average daily rate, pipeline (days covered), recruitment time-to-fill.
  • Renewal rate, upsell per account, activity reports signed on time.
  • Margin per assignment/account/BM, forecast margin at 90 days.
  • Average payment time, working capital in real time, without making the financial controller work all night.

B — The textbook case: business concepts

1) The model

  • Stafforia Services places time-and-materials consultants at Clientis Group (and other key accounts).
  • Business Managers (BMs) lead the hunt for assignments and the recruitment of suitable profiles.
  • They renew contracts, upsell with the help of consultants (develop the account) and hold follow-up meetings on both the client side and the consultant side.
  • Activity reports (CRA) are signed every month by the consultant, validated by the client and the manager, and trigger invoicing.
  • Key account: if the contract is not yet signed, we wait for the contract to invoice... but we still account for the revenue earned (as unbilled revenue / work in progress).
  • The margin per assignment is tracked closely; depending on company policy, margin or revenue is the basis for the BMs' variable pay.
  • HR in Odoo (leave, appraisals, expense reports); outsourced payroll (e.g. OpenPaie): Odoo sends the variables and retrieves the payroll journal entries.

2) A typical day

9:02 — “Hot request”

Clientis opens a Data Engineer assignment at a €600 daily rate, starting D+10. The BM creates the “Assignment — Data Eng” opportunity and launches the linked recruitment job in one click (skills, daily rate, date).

10:17 — “Smart upselling”

Follow-up meeting at the same client: the domain manager mentions a future DataViz project. In Odoo, the meeting note triggers a “DataViz” child opportunity (no good ideas lost in a notebook).

11:30 — “Recruiting with peace of mind”

Two shortlisted candidates: interviews scheduled from Odoo, evaluations centralized. The client approves Camille. The assignment contract goes out for electronic signature (consultant); on the client contract side, the buyer is dragging their feet a bit...

16:05 — “Producing without invoicing (yet)”

Camille starts on time. The activity reports are entered each month, signed, validated.

Except that... the client contract is not yet signed (key account). So we wait to invoice, but in Odoo it is possible to record the revenue earned as unbilled revenue (invoices to be issued): management still sees the economic reality. The day the signed contract arrives, it is possible to invoice taking into account the accounting entries already posted. No painful catch-up, no air pocket.

18:08 — “Margin, variable pay, peace of mind”

The assignment is running, expenses (travel, meals) are categorized and re-invoiced if applicable.

The assignment's margin updates live; the BM's variable pay is calculated according to the company rule and exported to OpenPaie.

On the management side, the dashboards display utilization, daily rate, renewals at risk, late activity reports, working capital... with no smoking Excel files.

D — End-to-end journey (in 12 useful steps)

  1. Client need → “Assignment” opportunity (daily rate, dates, BM).
  2. Linked recruitment → skills, interviews, validations.
  3. Contracts → eSignature (consultant) + commercial contract (client).
  4. Allocation → assignment created (analytic account).
  5. Follow-up → client/consultant meetings, notes that can create opportunities (upselling).
  6. Activity reports → consultant entry → signature → client validation → manager validation.
  7. Invoicing → drafts generated according to the contract.
  8. Key account (contract pending) → invoice on hold, revenue earned as work in progress (unbilled revenue); automatic issuance once signature is received.
  9. Collections → follow-ups, reconciliation, DSO.
  10. Renewal → D-60/D-30 reminders, amendments.
  11. Upselling → child opportunities per account.
  12. Variable pay & payroll → BM calculation → variables export → payroll journal entries import.

E — Recommended configuration (hands-on checklist)

Modules: CRM, Sales, Recruitment, Employees, Time Off, Appraisals, Expenses, Project, Timesheets, Accounting, Sign.

Service products: “Service day” (unit: day/half-day), invoicing based on timesheets/activity reports.

Analytics: 1 analytic account per assignment (client, BM, consultant).

Rules:

  • Activity report workflow: consultant → client → manager (mandatory).
  • Invoicing lock if the contract is not signed (key account) + WIP/unbilled revenue.
  • Payroll variables (BM margin/revenue, bonuses, absences): export → OpenPaie; payroll journal entries: import.

Automations: assignment-end reminders, recurring meetings, renewal & upselling tasks.

F — Common risks & countermeasures

  • Late activity reports → automatic reminders + signature portal.
  • Invoice without contract (key account) → lock + work in progress so as not to lose sight of revenue.
  • Blurry margin (forgotten expenses, bench time) → strict analytics + re-invoicing policy.
  • Lost opportunities (unfollowed notes) → creation of opportunities from every meeting.
  • Fragmented management view → shared real-time KPIs (utilization, daily rate, renewal, DSO, margin).

Conclusion — Service well run... and well seen

With Odoo, time-and-materials stops being an obstacle course: sales upsell, recruitment moves forward, activity reports are produced in real time, invoicing is clean, and even when you have to wait for a key account's contract, the reality of the revenue earned remains visible (work in progress) and the margin is managed without fog.

Result: clear processes, calm decisions, and teams that save time for what matters: relationships, trust, the long term.

Want to see this journey applied to your assignments, your clients, your variable pay? Let's talk: we will show you how to implement it, simply and cleanly.

in Blog
Odoo: Time-and-Materials Service Companies
ANOR, Cyrille de LAMBERT September 8, 2025
Share this post
Tags
Our blogs

Updated on 04/01/2026

A question about your project? Talk to a consultant.

Book 30 minutes