Industries
Professional services
A professional services firm sells the time of its people. The margin is decided weeks before anyone books an hour, when people are put on the work, and it is kept or lost in every week that follows.
This page is for consulting firms and for the advisory side of real estate. We are one ourselves: Acunomic plans, records and bills its own projects the way this page describes, and in our implementations we have set up the same flow for other consultancies.
Our recommendation is a platform: Odoo or NetSuite. For a European footprint we increasingly recommend Odoo, because projects, planning, time, absence, purchasing, stock and accounting share one database. NetSuite keeps its place where a group already runs its finance on it, or where revenue must be allocated by standalone selling price.
The project is where the margin is made
Every hour, expense and invoice belongs to a project. The project carries the estimate from the offer, the hour budget per phase and the billing rules, and every later check measures against them.
Time and materials or a fixed fee changes what an hour means. Under time and materials an approved hour is revenue. Under a fixed fee the same hour is cost against a budget, and the margin depends on how far the work has come.
Changes come back to the practice lead. A new person on the team or a wider scope updates the budget and the tasks, and the practice lead approves it. Without that loop, scope growth shows only in the final margin.
Staffing decides the margin, and the team plans its own week
Project management searches people by skill and availability and requests them. When nobody is free, a placeholder holds the slot until the practice lead finds a person. A placeholder must not stay one.
Odoo Planning (Enterprise) does this top-down: shifts by role, open shifts as placeholders, and Auto Plan, which respects time off, working hours and contracts. Projects, timesheets and accounting share its database.
Oracle has changed where NetSuite's resource planning happens. On 25 January 2025 Oracle renamed OpenAir to SuiteProjects Pro and made it NetSuite's advanced professional services product: a separate application with its own login and documentation, connected to the ERP rather than part of it. Since the 2025.2 release, new resource management features such as the Resource Center arrive there. Inside NetSuite, the Resource Allocation Chart has not gained a feature since 2019, and Project Resource Management is no longer offered to new customers.
Top-down allocation and the team's own plans rarely meet. No platform documents people planning their own week; Odoo lets an employee only switch, take or give up a published shift. That is the gap our own app closes.
With TIMEperative, in early access and in use, people plan their own week and record what they actually did. Approved time goes to Odoo's timesheets. The plans stay in the app for now, so project management reconciles them with the allocation there.
Project time and absence are two different things
Project time lands on a task, billable or not, and project management approves it every week. Time on the wrong task, or marked non-billable by mistake, never reaches the invoice.
Leave and absence run apart. They have their own request, their own approval and their own balances, and they come off the availability that staffing works with. Put into the same box as project time, they distort both.
Odoo covers both in one database: Time Off (Community) books approved leave as timesheet lines on an internal project, and Planning respects it. NetSuite's Time-Off Management belongs to SuitePeople HR, a paid module Oracle does not list for Switzerland.
Time and materials includes the material
Freelancers and partner firms work under a framework agreement. Each order is placed on the project, so its cost is committed before the bill arrives, and the bill is booked on the project when it comes.
Material is the part most systems forget. Hardware, licences and supplies come from stock or are bought for the project, their cost has to land on it, and the client is billed for them.
| What the firm needs | Odoo | NetSuite |
|---|---|---|
| Subcontractor order with committed cost | Purchase orders on the project; profitability shows them as costs still to bill (Community) | Purchase to Project SuiteApp; committed cost for service items in the profitability report |
| Material from stock onto the project | Pickings carry the project and post the cost to it (Community) | Not standard; needs customisation |
| Material planned from the task or the backlog | From a task with Field Service (Enterprise) | Not documented |
| Delivered material rebilled | Through the sales order (Community) | Billable items on the invoice |
Travel and expenses follow the expense rules
A trip is approved before it is booked. On the way, people record expenses with their receipts and claim allowances for meals, per diem and mileage. Project management approves the report, and the payout runs through payables or with the salary.
Client entertainment, memberships in industry associations and personal IT hardware and software are recorded apart. They follow other rules for approval, VAT and tax than a trip does.
Odoo Expenses (Community) handles categories, mileage, per diem as a fixed-rate category, approval and rebilling to the client; reimbursement with the payslip and receipt scanning are Enterprise. NetSuite has expense reports and mileage in the core, but no per diem outside SuiteProjects Pro. Neither books travel.
Invoicing first, then the group
Before an invoice goes out, project management writes time down or marks it unbillable. Then approved time, expenses and material, milestones and fixed fees become invoices, and each one is checked before it reaches the client.
Payments on account are usually deducted in the final invoice; in our implementations that is how our clients settle them. VAT on an advance payment is due when you receive it, even if you account on agreed remuneration (MWSTG Art. 40).
In a group, a consultant employed by one company often works on another company's project, so the time is charged across. Management, admin and royalty fees follow every month, and the intercompany balances are netted.
Odoo's inter-company rules (Enterprise) create the matching order or bill in the other company, and recurring fees run as subscriptions. NetSuite OneWorld pairs intercompany transactions, cross-charges time and expenses, and nets the balances.
Work in progress at month end
Work done but not yet invoiced is an asset, not a gap in revenue. Each month project management updates the effort to complete, finance accrues unbilled time and expenses, and revenue on fixed fees follows the stage of completion.
| Framework | What it says for service engagements |
|---|---|
| OR Art. 960c | Services you have not yet invoiced are carried at cost, or at a lower realisable value. |
| Swiss GAAP FER 22 | A long-term service engagement is recognised by stage of completion when revenue, cost and progress can be estimated reliably; an expected loss is recognised at once. |
| IFRS 15 | Advice billed by time is usually revenue over time (15.35(a)); where the hourly rate reflects the value delivered, you may recognise what you have the right to invoice (B16). |
For a German entity, unfinished services are carried as unfertige Leistungen at production cost under HGB. Odoo books unbilled time and materials with its accrued revenue entry (Community); revenue by stage of completion on fixed fees comes from partner apps. NetSuite's Advanced Revenue Management, included in the SuiteSuccess Services editions, recognises revenue from the project's percent complete.
Real estate advisory
Advisory firms in real estate run their mandates on the same flow as any consultancy: staffing, time, expenses, invoicing and work in progress. Many of them also broker property or manage it, often for the same owners.
Odoo has industry modules for that side (all Enterprise): Real Estate Agency for listings, commissions and signing, Property Management for buildings, meters and leases, and Property Owner Association for owners, distribution keys and votes. They share the database with the advisory projects.
How we test it in an evaluation
We take one of your engagements through the platform you are considering, with your roles, rates and calendars:
- Quote it, open the project and staff it, with one placeholder that the practice lead replaces.
- Let two people plan their week, record a week of time and a day of leave, and approve both.
- Order a subcontractor and some material on the project, and book a trip with a per diem.
- Invoice a payment on account, write down an hour, close the month and settle the final invoice.
You see where each platform does it in the standard product, where it needs an add-on, and where it needs a workaround.
Professional services, from the first enquiry to the closed project
Choose a step of the value chain. Its subprocess opens underneath across the full width; choose an activity to see the business requirement and how the platforms score on it.
Core process
-
01Win the engagementQualify, estimate, quote
-
02Plan the projectStructure, budget, release
-
03Staff the projectSkills and availability
-
04Record time and absenceProject time, leave, approval
-
05Engage subcontractorsAgreement, order, bill
-
06Use material on the projectStock, purchase, rebill
-
07Travel and expensesTrip, allowances, payout
-
08InvoicingTime, milestones, fees
-
09Rebill within the groupTime, fees, netting
-
10Close the monthUtilisation, margin, work in progress
-
11Close the projectFinal invoice, margin, closure
Subprocess · 01 of 11
Win the engagement
The engagement is priced before anyone is staffed: effort by role, rates and the commercial model are agreed, and a likely deal opens a basic project.
Requirements in this step
Choose an activity with a gold dot to see its business requirement.
No specific system requirement at this activity.
-
Project structure with phases, tasks, hour budgets and change controlOdoo3 · StandardNetSuite3 · Standard
-
Invoicing by time and materials, milestone, fixed fee and payments on account, with time written down or marked unbillableOdoo3 · StandardNetSuite3 · Standard
How the platforms score
Axes this step touches are in bold; the gold point is the selected requirement.
Subprocess · 02 of 11
Plan the project
The project gets its phases, tasks, hour budget and billing rules, and the practice lead releases it for kick-off. A change of scope later comes back here.
Requirements in this step
Choose an activity with a gold dot to see its business requirement.
No specific system requirement at this activity.
-
Project structure with phases, tasks, hour budgets and change controlOdoo3 · StandardNetSuite3 · Standard
-
Invoicing by time and materials, milestone, fixed fee and payments on account, with time written down or marked unbillableOdoo3 · StandardNetSuite3 · Standard
How the platforms score
Axes this step touches are in bold; the gold point is the selected requirement.
Subprocess · 03 of 11
Staff the project
People are put on the work by skill and availability, which decides the margin weeks before the first hour is booked. Then the team plans its own week.
-
3.1Search people by skill and availabilityProject management
-
3.2Request an allocation or hold a placeholderProject management
-
3.3Approve, or replace the placeholder with a personPractice lead
-
3.4Plan their own weekProject team
-
3.5Reconcile the team's plans with the allocationProject management
-
3.6Approve changes to the staffingPractice lead
Requirements in this step
Choose an activity with a gold dot to see its business requirement.
No specific system requirement at this activity.
-
Top-down staffing: people allocated by role, skill and availability, with request and approvalOdoo3 · StandardNetSuite2 · Add-on
-
Bottom-up planning: the team plans its own week, and the plan meets the allocationOdoo2 · Add-onNetSuite0 · Not offered
How the platforms score
Axes this step touches are in bold; the gold point is the selected requirement.
Subprocess · 04 of 11
Record time and absence
Project time lands on the task it belongs to and is approved every week. Leave and absence run apart, with their own approval, and come off the availability.
Requirements in this step
Choose an activity with a gold dot to see its business requirement.
No specific system requirement at this activity.
-
Project time per task, billable or not, with weekly approvalOdoo3 · StandardNetSuite3 · Standard
-
Utilisation and chargeability per person, and margin per project, from the same hoursOdoo3 · StandardNetSuite3 · Standard
-
Leave and absence requested and approved on their own, and taken off the availabilityOdoo3 · StandardNetSuite1 · Workaround
How the platforms score
Axes this step touches are in bold; the gold point is the selected requirement.
Subprocess · 05 of 11
Engage subcontractors
Freelancers and partner firms work under a framework agreement. Each order is placed on the project, so its cost is committed before the bill arrives.
Requirements in this step
Choose an activity with a gold dot to see its business requirement.
No specific system requirement at this activity.
-
Subcontractors under framework agreements, orders with committed cost, and their bills on the projectOdoo3 · StandardNetSuite2 · Add-on
How the platforms score
Axes this step touches are in bold; the gold point is the selected requirement.
Subprocess · 06 of 11
Use material on the project
Time and materials means material too: hardware, licences and supplies come from stock or are bought for the project, their cost lands on it, and the client is billed.
Requirements in this step
Choose an activity with a gold dot to see its business requirement.
No specific system requirement at this activity.
-
Material from stock or purchase, issued to the project and rebilledOdoo3 · StandardNetSuite1 · Workaround
How the platforms score
Axes this step touches are in bold; the gold point is the selected requirement.
Subprocess · 07 of 11
Travel and expenses
A trip is approved before it is booked. Expenses are recorded on the way with their receipts, allowances follow the expense rules, and the payout runs through payables or the salary.
-
7.1Request the tripProject team
-
7.2Approve the tripProject management
-
7.3Book and record expenses on the way, with receiptsProject team
-
7.4Claim allowances: meals, per diem, mileageProject team
-
7.5Record client entertainment, memberships and personal IT apartProject team
-
7.6Approve the expense reportProject management
-
7.7Reimburse with the salary or through payablesPayroll
Requirements in this step
Choose an activity with a gold dot to see its business requirement.
No specific system requirement at this activity.
-
Travel and expenses: trip approval, allowances, receipts, approval, reimbursement and rebillingOdoo3 · StandardNetSuite2 · Add-on
How the platforms score
Axes this step touches are in bold; the gold point is the selected requirement.
Subprocess · 08 of 11
Invoicing
Approved time, expenses, material, milestones and fixed fees become invoices. Time is written down or marked unbillable first, and each invoice is checked before it reaches the client.
-
8.1Invoice payments on accountFinance
-
8.2Write down time or mark it unbillableProject management
-
8.3Invoice approved time, expenses and materialFinance
-
8.4Invoice milestones and fixed feesFinance
-
8.5Check the invoice before it is sentProject management
-
8.6Send the invoice and watch the paymentFinance
Requirements in this step
Choose an activity with a gold dot to see its business requirement.
No specific system requirement at this activity.
-
Invoicing by time and materials, milestone, fixed fee and payments on account, with time written down or marked unbillableOdoo3 · StandardNetSuite3 · Standard
How the platforms score
Axes this step touches are in bold; the gold point is the selected requirement.
Subprocess · 09 of 11
Rebill within the group
A consultant employed by one group company works on another company's project, so the time is charged across. Management, admin and royalty fees follow every month, and the balances are netted.
Requirements in this step
Choose an activity with a gold dot to see its business requirement.
No specific system requirement at this activity.
-
Intercompany rebilling of time and of management, admin and royalty fees, with nettingOdoo3 · StandardNetSuite3 · Standard
How the platforms score
Axes this step touches are in bold; the gold point is the selected requirement.
Subprocess · 10 of 11
Close the month
Each month shows how well capacity was used and what each project earns, then values the work done but not yet billed and recognises revenue on fixed fees by stage of completion.
-
10.1Update the effort to completeProject management
-
10.2Review utilisation and chargeabilityPractice lead
-
10.3Review the margin of each projectPractice lead
-
10.4Accrue unbilled time and expensesFinance
-
10.5Recognise revenue on fixed fees by stage of completionFinance
-
10.6Reconcile work in progress with invoices and payments on accountFinance
Requirements in this step
Choose an activity with a gold dot to see its business requirement.
No specific system requirement at this activity.
-
Work in progress valued at month end, with accruals and revenue by stage of completionOdoo2 · Add-onNetSuite3 · Standard
-
Utilisation and chargeability per person, and margin per project, from the same hoursOdoo3 · StandardNetSuite3 · Standard
How the platforms score
Axes this step touches are in bold; the gold point is the selected requirement.
Subprocess · 11 of 11
Close the project
The final invoice settles the payments on account, the margin shows whether the estimate held, and the people return to the pool.
Requirements in this step
Choose an activity with a gold dot to see its business requirement.
No specific system requirement at this activity.
-
Invoicing by time and materials, milestone, fixed fee and payments on account, with time written down or marked unbillableOdoo3 · StandardNetSuite3 · Standard
-
Utilisation and chargeability per person, and margin per project, from the same hoursOdoo3 · StandardNetSuite3 · Standard
How the platforms score
Axes this step touches are in bold; the gold point is the selected requirement.
How the platforms compare for professional services
Both systems run projects, time and invoicing. They differ in planning, in absence, in material on the project and in what needs an extra module.
Meets 11 of 13
Meets 7 of 13
| Requirement | Needed | Odoo | NetSuite |
|---|---|---|---|
| Project structure with phases, tasks, hour budgets and change control | 3 | 3 · Standard | 3 · Standard |
| Top-down staffing: people allocated by role, skill and availability, with request and approval | 3 | 3 · Standard | 2 · Add-on |
| Bottom-up planning: the team plans its own week, and the plan meets the allocation | 3 | 2 · Add-on | 0 · Not offered |
| Project time per task, billable or not, with weekly approval | 3 | 3 · Standard | 3 · Standard |
| Leave and absence requested and approved on their own, and taken off the availability | 3 | 3 · Standard | 1 · Workaround |
| Subcontractors under framework agreements, orders with committed cost, and their bills on the project | 3 | 3 · Standard | 2 · Add-on |
| Material from stock or purchase, issued to the project and rebilled | 2 | 3 · Standard | 1 · Workaround |
| Travel and expenses: trip approval, allowances, receipts, approval, reimbursement and rebilling | 3 | 3 · Standard | 2 · Add-on |
| Invoicing by time and materials, milestone, fixed fee and payments on account, with time written down or marked unbillable | 3 | 3 · Standard | 3 · Standard |
| Intercompany rebilling of time and of management, admin and royalty fees, with netting | 2 | 3 · Standard | 3 · Standard |
| Utilisation and chargeability per person, and margin per project, from the same hours | 3 | 3 · Standard | 3 · Standard |
| Work in progress valued at month end, with accruals and revenue by stage of completion | 3 | 2 · Add-on | 3 · Standard |
| A current web interface for daily work, with mobile apps for time, expenses and dashboards | 3 | 3 · Standard | 3 · Standard |
Scores are our assessment of each platform as named here: Odoo 19 Enterprise, and NetSuite OneWorld on the SuiteSuccess Services Premium edition, which includes SuiteProjects and Revenue Management. 3 included, 2 add-on module, SuiteApp, a partner's app listed for the current version or Acunomic's own app, 1 workaround, 0 not offered. The dashed outline is what a professional services firm needs, in our assessment; hatching marks the gap.
Odoo: staffing to work in progress in one database
Planning, timesheets, time off, purchasing, stock, expenses, invoicing and accounting share one database and one web client, which also runs as an app on phones. Material and subcontractors reach the project's profitability in Community. Two gaps remain: people planning their own week, which our app TIMEperative covers in early access, and revenue on fixed fees by stage of completion, which comes from partner apps.
NetSuite: strong finance, planning moved out
Invoicing, revenue by percent complete, utilisation and the intercompany flows of a group are mature in OneWorld with the Services editions. New resource planning ships in SuiteProjects Pro, a separate application. Time off needs SuitePeople HR, which Oracle does not list for Switzerland, there is no per diem in the core, and material on a project needs customisation.
Where to go next
Walk us through one of your engagements.
From the offer to the final invoice, or from the week your team plans to the month you close. We will show you where an integrated system changes the margin, and where it does not.