You signed a SaaS ERP contract for $200,000 a year. Three years later the invoice exceeds $350,000 and nobody in the organisation can explain exactly why. This scenario is common: according to Gartner, 69% of companies experience cloud budget overruns, with average variances of 15 to 21% above initial forecasts (Gartner IT Budget Report).
The root cause is not cloud migration itself. It is the absence of financial governance adapted to the specific structure of a SaaS ERP: named-user licences, activated modules, test environments, third-party integrations. This is precisely what ERP FinOps addresses.
Why SaaS ERP Cloud Costs Can Double in Three Years Without Active Management
The Classic Drift: Inactive Users, Undeleted Snapshots, Dormant Modules
A SaaS ERP rarely charges for actual usage. It charges for allocated capacity. This gap creates invisible drift that compounds across multiple fiscal years.
The most common sources of overspend:
- Licences that were never deactivated: an employee who leaves the company often keeps their account active for several months. Multiplied by the annual turnover of a mid-sized enterprise with 300 employees, that can mean 15 to 30 permanently unused licences.
- Modules activated but never used: during implementation, certain modules are switched on “to avoid coming back later”. If they are not adopted within the first 12 months, they never will be.
- Undeleted backup snapshots: default retention policies often keep 30 to 90 days of daily snapshots. On an environment running several hundred gigabytes, the storage cost becomes significant.
- Non-production environments running 24/7: development, UAT, and sandbox environments run at full capacity over weekends and overnight, even though they are actually used for only 40 hours a week.
FinOps Is Not Reserved for Cloud-Native Workloads
The FinOps discipline has long been associated with AWS or Azure workloads: EC2 instances, Kubernetes clusters, object storage. But the reality of IT budgets has changed.
The FinOps Foundation, which maintains the framework, officially extended its scope in 2025 to explicitly include SaaS spend alongside public cloud and on-premises infrastructure (FinOps Foundation Framework 2025). Its 2025 State of FinOps report indicates that 65% of practitioners manage or plan to manage SaaS costs (State of FinOps 2025).
For many mid-market organisations, the SaaS ERP is the first or second largest software spend category. Managing it with the same rigour as cloud-native workloads is not over-engineering — it is a core IT governance priority.
The Three Cost Categories to Control in a SaaS ERP
User Licence Costs: Named Users, Concurrent Access, API Calls
The licensing model is the first lever for optimisation. SaaS ERP vendors typically offer multiple access tiers with very different price points per profile.
In Microsoft Dynamics 365, for example, the gap between a Full User (approximately $105 per month) and a Team Member ($8 per month) is substantial (Redress Compliance, Dynamics 365 Licensing 2026). A user who consults reports or enters simple data does not need Full User access. According to analyses from specialist advisory firms, most organisations can reclassify 20 to 40% of their seats to lower tiers with no functional impact.
Traps to watch for:
- Service accounts: technical credentials created for integrations or automations consume named licences if the naming policy is never reviewed.
- API calls: some vendors charge per call volume. A poorly dimensioned iPaaS integration can generate unexpected costs at scale.
- Multi-entity structures: in a group with several subsidiaries, licences can be consolidated — or inadvertently duplicated — depending on the contract structure.
Infrastructure Costs: Storage, Compute, Non-Production Environments
Non-production environments (development, UAT, sandbox) account for an average of 27% of total cloud costs according to the Flexera State of the Cloud report. For a SaaS ERP hosted in IaaS mode or in a vendor-managed private cloud, this figure is consistent.
Best practice is to automatically shut down these environments outside working hours: evenings, weekends, public holidays. This single measure can reduce non-production compute costs by 28% according to benchmarks published by cloud management specialists.
Other infrastructure levers:
- Review snapshot retention policies (reducing default from 90 days to 30 days)
- Archive or compress historical data older than 3 to 5 years
- Delete test environments created for completed projects that were never decommissioned
Hidden Costs: Third-Party Integrations, Data Exports, Premium Support, ISV Modules
The visible invoice is not the total invoice. A thorough ERP FinOps audit must identify secondary cost lines:
- ISV extensions (Independent Software Vendors): third-party modules purchased during the original project that have become redundant after a functional reorganisation.
- iPaaS connectors: integration platforms (Boomi, MuleSoft, Informatica) typically charge per transaction or per active connection. A mapping left running after a data migration continues to consume credits.
- Premium support: “Enterprise” or “Platinum” support tiers often cost 15 to 25% of the annual licence fee. It is worth verifying whether the contracted level actually matches the criticality of the incidents encountered.
- Data egress: in some cloud models, exporting data to an external BI tool generates transfer fees that need monitoring.
FinOps Methodology Applied to ERP: Three Phases
The FinOps Foundation structures its methodology around three iterative phases: Inform (visibility), Optimize (optimisation), Operate (governance). Applied to a SaaS ERP, this cycle must be adapted to the contractual specificities of the vendor.
Inform Phase: Map and Attribute Every Cost Line
The goal of this first phase is to build a complete, attributed view of spend: by module, by legal entity, by use case, by licence type.
Concrete actions:
- Extract the consumption report from the vendor portal (BTP Cockpit for SAP, Azure Cost Management for Dynamics 365, NetSuite admin portal).
- Cross-reference active licences against login logs for the last 90 days.
- Identify non-production environments and their actual cost.
- Inventory all ISV contracts and third-party connectors.
This mapping typically takes two to four weeks for a mid-market organisation with 200 to 500 users.
Optimize Phase: Rightsizing, Removing Dormant Resources, Compressing Data
Once visibility is established, optimisations can be pursued in parallel across multiple dimensions.
Licence rightsizing is generally the fastest lever to activate: identify accounts inactive for 60 days, reclassify or deactivate them with managerial sign-off, then renegotiate the contracted volume at renewal.
Deactivating unused modules requires prior business validation. A module that looks “inactive” in the logs may have hidden dependencies inside automated workflows.
Shutting down non-production environments outside business hours is a quick win whose technical implementation is simple, but which requires agreement from development and support teams.
Operate Phase: Monthly Dashboards, Threshold Alerts, Request Governance
Governance is the only way to avoid returning to square one in 18 months. Without continuous control processes, the optimisations achieved are gradually eroded by new, unmanaged additions.
The minimum to put in place:
- A monthly ERP FinOps dashboard: cost per active user, cost per processed transaction, storage cost per active gigabyte.
- Automatic alerts on CPEA consumption or cloud credit thresholds.
- A cross-functional CIO/CFO validation process for every addition of a module, user, or environment.
- A quarterly ERP FinOps committee involving CIO, CFO, and business unit leads.
Vendor-Specific Application
SAP RISE with SAP and BTP: Understanding CPEA Billing
SAP RISE with SAP bundles S/4HANA Cloud licences, managed infrastructure, and a BTP (Business Technology Platform) credit allocation into a single subscription. BTP billing typically operates under the CPEA model: Cloud Platform Enterprise Agreement.
CPEA works through an annual pre-paid commitment. The organisation commits to a credit volume, which is then consumed by the BTP services activated (integrations, extensions, analytics). Credits unused at the end of the contract year are forfeited.
SAP-specific watchpoints:
- CPEA consumption monitoring is available in the BTP Cockpit under Cost and Usage Management. Threshold alerts should be configured from day one of service activation.
- CPEA discounts range from 12% for commitments between $50,000 and $150,000 per year up to 26–28% for commitments above $5 million (SAP BTP Pricing 2026, Atonement Licensing). Commitment size therefore has a direct impact on the negotiable discount.
- SAP development and sandbox environments are billed separately from the RISE contract. Their volume can be significant when multiple customisation projects are running in parallel.
Microsoft Dynamics 365: Azure Cost Management and Licence Type Optimisation
Dynamics 365 runs on Azure. Infrastructure costs are therefore visible via Azure Cost Management, which makes attribution by resource, environment, and period straightforward.
Licence optimisation requires a systematic review of the rights types assigned. The gap between a Full User for Finance and Operations (approximately $105 per month) and a Team Member ($8 per month) makes rigorous analysis worthwhile: each user reclassified from Full to Team Member saves $97 per month — $1,164 per year (Redress Compliance, Dynamics 365 Licensing 2026).
For an organisation with 180 Finance and Operations licences of which 40 users are light-touch reviewers, the reclassification potential to Team Member represents annual savings of $45,000 to $60,000.
Oracle NetSuite: Module Control and Sandbox Environment Management
NetSuite charges per activated module and per named user. The model is relatively transparent, but drift tends to come from sandboxes and SuiteApps (partner extensions).
A Standard NetSuite sandbox represents approximately 10% of the annual subscription cost. A Premium sandbox can reach 20% depending on the contract configuration (Kimberlite Partners, NetSuite Sandbox Best Practices). Reviewing the number of active sandboxes and their actual usage frequency is one of the first actions in a NetSuite FinOps audit.
Reviewing active SuiteApps and their real utilisation rate (available in the transaction monitoring tool) rounds out this analysis.
Workday and Odoo.sh: Platform-Specific Mechanisms
Workday applies a billing model based on the number of workers managed in the system (headcount) rather than solely on users who log in. Any headcount increase therefore has a direct impact on the invoice, regardless of actual adoption. Governance must include a review of alignment between real headcount and the contracted scope.
Odoo.sh, Odoo’s managed cloud offering, charges per compute worker and per storage space. Development branches and test builds consume workers continuously if they are not shut down. Regular cleanup of inactive branches is the most immediately impactful optimisation measure.
Measured ROI: Results Seen in Practice
Cost reductions achieved through a structured ERP FinOps programme vary depending on the initial maturity of financial management.
On user licences, profile reclassifications and deactivation of inactive accounts typically generate savings of 10 to 20% of the annual licence cost within the first 90 days. This range is consistent with published data on SaaS licence waste: according to multiple analyses from 2024–2025, between 30 and 51% of SaaS licences go unused in organisations (Cafeto Software, Why 30% of SaaS Licenses Go Unused).
On infrastructure, the combination of shutting down non-production environments outside business hours, purging snapshots, and archiving cold data produces savings of 15 to 30% on the cloud infrastructure line.
FinOps KPIs to Track for an ERP
Three indicators allow ongoing value measurement:
- Cost per active user: total SaaS ERP cost divided by the number of users who completed at least one transaction in the month. This indicator immediately reveals the proportion of licences paid for but not used.
- Cost per processed transaction: relevant for high-volume modules (invoicing, payments, inventory movements). It enables efficiency benchmarking across fiscal years.
- Storage cost per active gigabyte: distinguishes current data storage from archival storage for historical data that is rarely consulted.
These three KPIs form the minimum dashboard for an ERP FinOps committee.
90-Day ERP FinOps Action Plan
Weeks 1 to 4 (Inform Phase): Extract consumption data from the vendor portal. Cross-reference active licences against login logs for the past 90 days. Identify and quantify the five largest sources of cost drift. Produce a full map of all environments and their costs.
Weeks 5 to 8 (Optimize Phase): Launch low-risk optimisations: deactivate accounts inactive for 60 days (with managerial sign-off), schedule automatic shutdown of non-production environments outside business hours, initiate review of dormant modules and SuiteApps/ISV extensions.
Weeks 9 to 12 (Operate Phase): Deploy the ERP FinOps dashboard (minimum 3 KPIs). Configure consumption alerts in the vendor portal. Define and document the validation process for every addition of a licence, module, or environment. Schedule the first quarterly ERP FinOps committee.
The optimal moment to start this programme: three to six months before contract renewal, so you have concrete data to leverage in negotiations with the vendor.
To go further on cost management after go-live, see our guide on post-go-live ERP cost optimisation, our methodology for auditing ERP licences and reducing costs without contractual risk and our guide on negotiating your ERP contract before signing.