Industries
Software
Acunomic has long been a partner to software vendors and to the partners who sell and implement their products. Our speciality is digital transformation and operational excellence along the software value chain, from development project accounting to revenue recognition under IFRS 15 and ASC 606.
We have delivered projects for several dozen software companies, with consultants who have worked in the industry for many years. We are just as much at home where software is sold with hardware, and stock, shipping and returns join the subscription.
We deliver complete operations platforms as well as best-of-breed systems, and we have integrated them with each other many times. We work with Salesforce, HubSpot, Chargebee, NetSuite, Odoo, PayPal and Checkout.com, among others.
Our recommendation is a platform: NetSuite or Odoo, depending on your global footprint and your service model. For a European footprint we increasingly recommend Odoo, because NetSuite, born in the US, falls further behind on European localisation. In Europe it keeps its place in finance-only projects, in software and in eCommerce. We also recommend it wherever contracts need revenue allocated by standalone selling price, which NetSuite calls fair value.
What we deliver along the software value chain
We set up each step of the software value chain and connect the steps that share data:
- Development project accounting: hours and overhead by deliverable, with the directly attributable cost split into what is capitalised and what is expensed
- Pricing: price lists, plans, bundles, discounts and price increases at renewal
- Sales channels: direct sales, resellers and distributors, with partner prices, margins and commissions
- Subscription billing: renewals, upgrades, aligned end dates, proration and usage
- Payments: cards and wallets, refunds, disputes and chargebacks, matched to open invoices and provider fees
- Revenue recognition: under each framework you report under, whether IFRS 15, ASC 606, Swiss GAAP FER or the Swiss Code of Obligations
Where software ships with hardware, the chain grows: stock, serial numbers, shipping and returns join the contract, and revenue has to be split between the device and the subscription.
Development, run as a project business
We set up software development the way engineering firms and consultancies run their projects: every deliverable has a budget, and every hour and every share of overhead is booked to one.
Your largest cost is the time your developers spend on the product. In our experience, software companies have yet to manage and account for that time the way engineering and consulting firms do. We bring the controls those firms use: hours at cost, a budget per deliverable and a monthly forecast to finish.
Our approach is project-centric. We tie your development method, Scrum or another agile method, to measurable deliverables, the epics in that language. Then we track time and overhead expenses against each one:
- Each epic is a project with a budget of its own; a small epic can be a parent task, which carries hours and their cost but no budget or overhead share of its own
- Developers book their hours to the epic's tasks, costed at each employee's hourly cost
- Overhead expenses, such as tools, licences and office space, reach each epic at a rate we agree with you
- Overhead counts in the epic's cost, but only directly attributable cost is capitalised (IAS 38.67), and rent stays out of the figures for an IP box
- Every month, the cost of each epic against its budget, and the remaining hours at cost
With enough of that data you can track efficiency, see what each deliverable is expected to earn, and allocate and reallocate people faster. With agentic AI and in the age of disposable software, that speed has become crucial.
Neither Odoo nor NetSuite has a record of its own for sprints or epics, so we map each epic to a project. Where your teams plan in Jira, we deliver the integration with a partner's connector, so epics and hours reach the ERP.
In Odoo, projects, tasks, milestones, timesheets and project profitability are in Community, and budgets need Enterprise. Overhead reaches a project through an analytic distribution at a fixed percentage. NetSuite sets cost budgets per project task and month, and moves overhead to projects with allocation schedules. In both systems the overhead share sits on the project, not on a task.
Software IP is an asset the CFO manages
We set up the books so that software IP is managed like any other asset: cost per product, legal entity and year, from the first timesheet.
A real-estate CFO carries buildings under construction and decides which company holds them, for value and tax. A software CFO does the same with code. Software under development is the CFO's work in progress: it collects cost before it earns anything.
Under IFRS, development cost becomes part of an intangible asset only from the date all six criteria of IAS 38.57 are met; before that it is an expense. Until the software is available for use, the asset is tested for impairment every year (IAS 36.10). Amortisation starts when it is available for use, in the same words IAS 16 uses for buildings and equipment (IAS 38.97, IAS 16.55).
The difference: an investment property may be shown at fair value (IAS 40), while software in practice stays at cost (IAS 38.75). Its value shows in tax, and in the prices group companies charge each other for it. Whether development becomes an asset depends on the framework:
| Framework | Self-developed software |
|---|---|
| IFRS (IAS 38) | Research is expensed. Development must be capitalised once all six criteria of IAS 38.57 are met, including technical feasibility and reliable measurement of the cost. |
| Swiss GAAP FER 10 | Self-created intangible assets may be capitalised if they are identifiable and controlled, bring a measurable benefit over several years, have separately measurable costs and the resources to complete them are available. |
| Swiss Code of Obligations (OR) | Art. 959 (2) OR requires an asset to be recognised where it is controlled, an inflow of funds is probable and its value can be reliably estimated. For self-created software these conditions leave room for judgement, and in practice it is often not capitalised. General research is not capitalised. |
| German Commercial Code (HGB) | An option under § 248 (2) HGB. Only development costs qualify (§ 255 (2a) HGB); if research and development cannot be separated, nothing is capitalised. Profits equal to the capitalised amount, net of deferred tax, may not be distributed (§ 268 (8) HGB). |
| German tax balance sheet (EStG) | Only purchased intangible fixed assets are carried (§ 5 (2) EStG). |
| Austrian Commercial Code (UGB) | Self-created intangible fixed assets may not be capitalised (§ 197 (2) UGB). |
Every row of that table depends on the same records: hours by development project, kept apart from research, maintenance and customer work, and costed at the right rate. They must be right by the period close, because an amount once expensed cannot be capitalised later (IAS 38.71).
Where the IP sits, and what the ERP must cover
We set up the ERP for the countries you grow into, so that the CFO has the figures to decide, with the tax advisers, where the IP sits. The return follows the company that does and controls the development, not the one that only holds the rights (OECD Transfer Pricing Guidelines 6.42, 6.56). The books must therefore show where that work is done.
Several countries reduce the tax on profit from software, where the conditions are met:
| Country | What it offers, where the conditions are met |
|---|---|
| Switzerland | The cantonal patent box reduces taxable profit from patents by up to 90 %, but software counts only if it is patented. For other software, most cantons allow an extra deduction of up to 50 % on Swiss R&D cost, where the work counts as research or science-based innovation (tax period 2025). |
| Ireland | The Knowledge Development Box taxes qualifying profit from copyrighted software at an effective 10 %, for accounting periods starting before 1 January 2027. The R&D tax credit is 30 % of qualifying spend, and in general 35 % for accounting periods ending on 31 December 2026 or later (Finance Act 2025). |
| Netherlands | The innovation box taxes qualifying benefits from self-developed software at an effective 9 % (2026). Each asset needs an R&D declaration under the WBSO scheme. |
| Luxembourg | 80 % of net income from qualifying IP, copyrighted software included, is exempt: an overall rate of 4.774 % in Luxembourg City (2025). |
Germany and Austria reward research and development itself, where the work qualifies. The Forschungszulage grants 25 % of eligible R&D wages (2026), more for small and medium-sized companies. The Forschungsprämie grants 14 % of qualifying R&D spend and needs an annual opinion of the FFG.
These IP boxes follow the OECD nexus rule: the benefit follows the share of qualifying spend in total development spend, measured per IP asset, product or product family. Under the OECD standard, development bought from related companies and acquired IP do not count as qualifying spend; Switzerland also counts R&D done by Swiss group companies. For groups with consolidated revenue of EUR 750 million or more in at least two of the four preceding years, the global minimum tax tops up the effective rate in a country to 15 % where it falls below.
That makes it an ERP question as well as a tax question. The ERP has to cover each region: the local books and tax of each entity, and group reporting under IFRS, US GAAP or Swiss GAAP FER. It also has to carry licence fees between group companies, with the withholding tax of each route, and development cost per IP asset, kept for years.
Contracts, subscriptions and usage, as you sell them
We set up billing for the contracts you actually sell. First we decide with you where the contract lives: in the ERP, in a CRM such as Salesforce or HubSpot, or in a billing system such as Chargebee. The other systems then read it from there.
Contract shapes vary, and many companies sell more than one:
- Subscriptions bought online and paid by card, monthly or yearly
- Subscriptions with a start date, a term, a billing period and a renewal rule
- One-off items such as licences, set-up fees and training days
- Implementation work at a fixed price, by milestone or on time and materials
- Usage priced per transaction, per API call or per active user
For each shape we set the rules for changes: whether added users are billed at once or at renewal, how a second contract is aligned to the first end date, and what a cancellation does.
Usage is measured in your product. We agree with you how the quantities reach the invoice, by import or by interface, and who checks them before it goes out.
Monthly and annual recurring revenue (MRR and ARR), churn and expansion then come from the contract records and reconcile to the ledger, instead of a spreadsheet that is rebuilt every month.
Revenue recognition depends on what you sold and where you report
We set up revenue recognition per legal entity and framework. On NetSuite with Advanced Revenue Management, the revenue schedule follows the contract's performance obligations. On Odoo, it follows each invoice line, which is enough where every line is invoiced in advance with its own price and period. What each framework requires:
| Framework | What the rule says | What the ERP has to do |
|---|---|---|
| IFRS 15 | The contract is split into distinct performance obligations and the price is allocated by standalone selling price (IFRS 15.27, 15.73 to 80). A licence is a right to access, recognised over time, or a right to use, recognised at a point in time (IFRS 15.B56, B58). Hosted software without a licence is usually a service recognised over time. Sales commissions that are incremental costs of obtaining a contract are capitalised; where they would be amortised within a year, they may be expensed instead (IFRS 15.91 to 94). | Performance obligations per contract, an allocation by standalone selling price, a revenue schedule per obligation and an asset for capitalised commissions |
| Swiss GAAP FER | Since 1 January 2016 the framework, FER 3 and FER 6 require the components of a multiple-element arrangement to be recognised separately. There is no separate revenue standard. | Separate lines per component, each with its own recognition date or schedule |
| Swiss Code of Obligations (OR) | Income and expense are recognised in the period they relate to (Art. 958b OR). A subscription paid in advance sits in deferred income (passive Rechnungsabgrenzung, Art. 959a OR) until the period it covers. | Deferred revenue per invoice line, released month by month |
A Swiss subsidiary often reports under OR or Swiss GAAP FER while the group reports under IFRS, or under US GAAP. There ASC 606 applies, the counterpart of IFRS 15, issued together with it in May 2014. The system then has to keep both views of the same contract.
Where contracts need an allocation by standalone selling price, which NetSuite calls fair value, we set it up in NetSuite with Advanced Revenue Management and its Revenue Allocation add-on. Odoo's standard product does not reallocate between invoice lines; partner apps for Odoo 19 add the allocation on contract records of their own.
Implementation projects and support
Where you sell implementation, integration, training or support, we set them up as projects with budgets, milestones and hours, on the same timesheets your developers use for the product. Each hour then lands on a customer project or on a development epic, never on both.
- Fixed-price, milestone and time-and-materials billing from the same timesheets
- Project margin with actual hours at cost, not at list price
- A helpdesk with service levels tied to the customer's contract
- Renewal and upsell opportunities that reach sales from the support history
A platform first, specialist systems where they earn their place
We set up a platform first, because the links matter. The contract and its invoices set the revenue schedule, the timesheet sets project margin, cost per epic and capitalised development, and support feeds the renewal. Split across systems that are not connected, each link becomes an export.
A specialist system still earns its place where it does one job better, and many software companies should keep the ones they run. We decide with you which system owns which record, and connect them so that you still get:
- One contract record shared by sales, billing, finance and support
- A revenue schedule per contract line, released under the rules of each framework you report under
- Recurring revenue figures that reconcile to the ledger
- Development hours that can be capitalised without a separate spreadsheet
- Cost per epic and per IP asset, for each legal entity
How we test it in an evaluation
In our evaluations, each shortlisted system has to run one of your contracts and one of your epics from end to end, with your data. Every vendor can show a recurring invoice; what matters is what happens when something changes:
- One of your contracts, as you sell it
- An upgrade in the fifth month and a renewal at a new price
- A month of usage imported and invoiced
- A period close with deferred revenue in each set of books you report, and the recurring revenue figures reconciled to it
- A month of development hours and overhead on two epics, with the directly attributable cost split into what is capitalised and what is expensed
- A licence fee charged between two group companies in different currencies
Not slides. Transactions.
Software, from plans and prices to the monthly close
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. The customer type switch marks what applies to businesses, consumers or the public sector.
Customer type
Core process
-
01Plans and pricesItems, plans, prices
-
02Quote and contractQualify, quote, sign
-
03Set up and activateOrder split, subscription, start
-
04ImplementProject, hours, milestones
-
05Bill and collectMeter, invoice, collect
-
06Support customersTickets, service levels
-
07Change and renewUpsell, downsell, renew
-
08Close the periodEvery month
Subprocess · 01 of 08
Plans and prices
Items, plans and price lists are set up once as templates, so every quotation, invoice and revenue plan draws on the same definitions.
No activity of this step applies to this customer type.
Requirements in this step
Choose an activity with a gold dot to see its business requirement.
No specific system requirement at this activity.
-
Deferred revenue released on scheduleOdoo3 · StandardNetSuite3 · Standard
-
Subscriptions, renewals, mid-term changes and recurring revenue reportingOdoo3 · StandardNetSuite2 · Add-on
-
Performance obligations and allocation by standalone selling priceOdoo2 · Add-onNetSuite2 · Add-on
How the platforms score
Axes this step touches are in bold; the gold point is the selected requirement.
Subprocess · 02 of 08
Quote and contract
One quotation carries the subscription, licence, implementation and support, with the tax calculated when it is made. Consumers sign up online and pay by card instead.
No activity of this step applies to this customer type.
Requirements in this step
Choose an activity with a gold dot to see its business requirement.
No specific system requirement at this activity.
-
CRM, quotations and customer support with service levelsOdoo3 · StandardNetSuite3 · Standard
-
Subscriptions, renewals, mid-term changes and recurring revenue reportingOdoo3 · StandardNetSuite2 · Add-on
How the platforms score
Axes this step touches are in bold; the gold point is the selected requirement.
Subprocess · 03 of 08
Set up and activate
The order splits: software becomes an active subscription, other items go to delivery. The price is split by obligation, and revenue is planned from the start of the service period, together with the forecast.
-
3.1Split the order: software to the contract, the rest to deliveryBilling
-
3.2Create the customer and billing accountBilling
-
3.3Set up the subscription, prepaid or by usageBilling
-
3.4Activate on the service start dateBilling
-
3.5Split the price by performance obligationFinance
-
3.6Plan revenue from the service start, with the forecastFinance
No activity of this step applies to this customer type.
Requirements in this step
Choose an activity with a gold dot to see its business requirement.
No specific system requirement at this activity.
-
Subscriptions, renewals, mid-term changes and recurring revenue reportingOdoo3 · StandardNetSuite2 · Add-on
-
Usage-based billing from metered quantitiesOdoo2 · Add-onNetSuite2 · Add-on
-
Performance obligations and allocation by standalone selling priceOdoo2 · Add-onNetSuite2 · Add-on
-
Deferred revenue released on scheduleOdoo3 · StandardNetSuite3 · Standard
How the platforms score
Axes this step touches are in bold; the gold point is the selected requirement.
Subprocess · 04 of 08
Implement
The implementation runs as a project with a budget and milestones, and the hours booked to it set both the invoice and the project margin. Consumers who use the software as it is need none.
-
4.1Plan the project, budget and milestonesProfessional ServicesB2B · B2G
-
4.2Assign the team to project tasksProfessional ServicesB2B · B2G
-
4.3Record billable and non-billable hoursProfessional ServicesB2B · B2G
-
4.4Invoice by milestone or time and materialsBillingB2B · B2G
-
4.5Review the margin against budgetProfessional ServicesB2B · B2G
No activity of this step applies to this customer type.
Requirements in this step
Choose an activity with a gold dot to see its business requirement.
No specific system requirement at this activity.
-
Projects, timesheets and project billingOdoo3 · StandardNetSuite3 · Standard
How the platforms score
Axes this step touches are in bold; the gold point is the selected requirement.
Subprocess · 05 of 08
Bill and collect
Each billing run turns subscriptions and checked usage into invoices, posts what is billed in advance as deferred revenue and follows every invoice to payment. A consumer's card is charged each period.
No activity of this step applies to this customer type.
Requirements in this step
Choose an activity with a gold dot to see its business requirement.
No specific system requirement at this activity.
-
Usage-based billing from metered quantitiesOdoo2 · Add-onNetSuite2 · Add-on
-
Subscriptions, renewals, mid-term changes and recurring revenue reportingOdoo3 · StandardNetSuite2 · Add-on
-
Deferred revenue released on scheduleOdoo3 · StandardNetSuite3 · Standard
How the platforms score
Axes this step touches are in bold; the gold point is the selected requirement.
Subprocess · 06 of 08
Support customers
Support works from the customer's contract: each ticket carries its service level, defects reach development, and the support history reaches sales before the renewal.
No activity of this step applies to this customer type.
Requirements in this step
Choose an activity with a gold dot to see its business requirement.
No specific system requirement at this activity.
-
CRM, quotations and customer support with service levelsOdoo3 · StandardNetSuite3 · Standard
How the platforms score
Axes this step touches are in bold; the gold point is the selected requirement.
Subprocess · 07 of 08
Change and renew
Upsells, downsells and renewals change the running contract: each change is priced for the rest of the term, billed without a manual credit note and reflected in the revenue split. A renewal is quoted like a new contract.
No activity of this step applies to this customer type.
Requirements in this step
Choose an activity with a gold dot to see its business requirement.
No specific system requirement at this activity.
-
Subscriptions, renewals, mid-term changes and recurring revenue reportingOdoo3 · StandardNetSuite2 · Add-on
-
Performance obligations and allocation by standalone selling priceOdoo2 · Add-onNetSuite2 · Add-on
How the platforms score
Axes this step touches are in bold; the gold point is the selected requirement.
Subprocess · 08 of 08
Close the period
Each period end releases deferred revenue, reconciles recognised and recurring revenue to what was billed, capitalises qualifying development, and closes with the bank reconciliation and the VAT return.
No activity of this step applies to this customer type.
Requirements in this step
Choose an activity with a gold dot to see its business requirement.
No specific system requirement at this activity.
-
Budgets and overhead costs per epic or deliverableOdoo3 · StandardNetSuite2 · Add-on
-
Deferred revenue released on scheduleOdoo3 · StandardNetSuite3 · Standard
-
Subscriptions, renewals, mid-term changes and recurring revenue reportingOdoo3 · StandardNetSuite2 · Add-on
-
Development hours capitalised as an assetOdoo1 · WorkaroundNetSuite1 · Workaround
How the platforms score
Axes this step touches are in bold; the gold point is the selected requirement.
How the platforms compare for software companies
Both systems bill subscriptions and run projects. They differ in where the revenue rules live, what needs an extra module, and how overhead reaches a project.
Meets 8 of 9
Meets 7 of 9
| Requirement | Needed | Odoo | NetSuite |
|---|---|---|---|
| Subscriptions, renewals, mid-term changes and recurring revenue reporting | 3 | 3 · Standard | 2 · Add-on |
| Usage-based billing from metered quantities | 2 | 2 · Add-on | 2 · Add-on |
| Deferred revenue released on schedule | 3 | 3 · Standard | 3 · Standard |
| Performance obligations and allocation by standalone selling price | 2 | 2 · Add-on | 2 · Add-on |
| Development hours capitalised as an asset | 2 | 1 · Workaround | 1 · Workaround |
| Budgets and overhead costs per epic or deliverable | 2 | 3 · Standard | 2 · Add-on |
| Projects, timesheets and project billing | 3 | 3 · Standard | 3 · Standard |
| CRM, quotations and customer support with service levels | 3 | 3 · Standard | 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 on its SuiteSuccess Software edition with SuiteProjects. 3 included, 2 add-on module, SuiteApp or a partner's app listed for the current version, 1 workaround, 0 not offered. The dashed outline is what a software group that reports under IFRS needs, in our assessment; hatching marks the gap.
Odoo: contract to cash in one database
Subscriptions with MRR and churn reports, deferred revenue, budgets and the helpdesk with service levels (all Odoo Enterprise), projects, timesheets, project profitability and CRM share one database and one web client, which also runs as an app on phones. Odoo's standard product does not allocate a contract price by standalone selling price (what NetSuite calls fair value): it defers each invoice line on its own. Partner apps for Odoo 19 add the allocation on contract records of their own, kept apart from orders and invoices. Where the allocation has to run on the sales transactions themselves, NetSuite comes in: Advanced Revenue Management with Revenue Allocation. Each epic is a project with its own budget, and distribution models post overhead to it at fixed shares, which we keep up to date as epics open and close. Metered usage is billed by a partner's app, apart from Odoo Subscriptions and its MRR reports. Capitalised development is a period-end entry from timesheet costs.
NetSuite: mature, module by module
Revenue Management (Advanced Revenue Management Essentials) comes with the SuiteSuccess Software edition and releases deferred revenue by rule. SuiteBilling covers subscriptions, change orders and usage, and the Revenue Allocation add-on splits a contract price by standalone selling price, which NetSuite calls fair value. Both are provisioned on request, and recurring revenue metrics come from a separate SuiteApp. Project tasks, milestones and project billing need a separate module, Project Management or SuiteProjects; SuiteProjects includes Job Costing and Project Budgeting, which sets cost budgets per task and month. Allocation schedules move overhead to projects. CRM and case management with escalation rules are native. Capitalised development is a period-end journal from project time to an asset account, from which the Fixed Assets Management SuiteApp (Premium edition) creates the asset with its project. The free NetSuite for Mobile app covers time, expenses, dashboards and records.
Walk us through one of your contracts.
From the quotation to the first renewal, or from the first timesheet to the capitalised asset. We will show you where an integrated system changes the result, and where it does not.