Open source ERP for SaaS companies: why subscription finance is different
For a finance leader at a subscription business, the question is rarely whether Odoo or ERPNext can post an invoice. It is whether the ledger, recurring invoicing and billing feeds can be defended in front of an IPO auditor or an enterprise customer's security questionnaire. Odoo or ERPNext can run the ledger and recurring invoicing well, provided change control, access control and billing integration are designed from the start to produce evidence. The typical situation looks like this: contracts renew on different dates, seat counts or usage change mid-term, a billing system and a CRM each push data toward the general ledger, and an audit window is months away. Each of those handoffs is a place where a control can fail or go unproven.
The regulatory frame is different from a bank's. SEC Rule 17a-4(b) on record retention applies to broker-dealers, so it will not drive most SaaS finance designs. The drivers for a SaaS company are usually contractual and assurance-based. Enterprise buyers ask for a SOC 2 report, which is built on the AICPA 2017 Trust Services Criteria and whose common criteria CC1 to CC9 apply to every SOC 2. When the company handles customer personal data as a processor, GDPR Article 28(3) requires documented instructions and security measures in the processor contract, and the finance and billing data that links to those customers falls under the same discipline. Confirm with counsel which of these apply to your company before scoping.
A SOX auditor will test the controls around the system, not the software brand. Expect questions about who can change pricing tables, tax settings, revenue schedules and chart of accounts mappings in Odoo or ERPNext, how those changes are approved and tested, and whether user access is reviewed and segregated. The integration points with billing and CRM need their own evidence, such as reconciliation of invoice batches to the ledger. DeployOpen plans, configures and documents these systems and prepares the evidence for an assessment, but it does not issue audit reports or attestations. Your independent auditor decides what is sufficient, so agree the control list with them early.
Which requirements shape a SaaS finance build
This table maps the rules most likely to shape a subscription company's ERP finance build to their source and to the concrete design choice they force. Read it by first checking the Applies to column, since FTC Safeguards and penetration testing duties only bind companies that are financial institutions, while SOC 2, GDPR and the Data Act reach most SaaS vendors. The main takeaway is that change control, access design and version control of custom code matter more to the build than any single feature.
| Requirement | Source and what it asks for | Applies to | What it means for the build |
|---|---|---|---|
| SOX-style change approval and testing | Management and auditors expect documented approval and testing before production changes to financial configuration and code (SOX ITGC practice, not a supplied regulation text) | Public companies or companies preparing for an IPO | Keep custom modules and configuration in version control, test upgrades in a separate database, and retain approval evidence for each release |
| Access and segregation of duties in the ERP | SOX-style access reviews expect no single user to both create and approve journal entries or vendor payments (SOX ITGC practice) | Public companies or companies preparing for an IPO | Define roles for billing, revenue and close, run quarterly access reviews, and document any exceptions with compensating controls |
| MFA and activity logging | FTC Safeguards Rule at 16 CFR 314.4 requires multi-factor authentication and logging of authorized user activity | Financial institutions only (companies holding customer funds or extending credit) | Enforce MFA through the identity provider and forward ERP audit logs to central storage; use the Safeguards wording as a benchmark for other SaaS buyers |
| SOC 2 Trust Services Criteria and CC1 to CC9 | AICPA 2017 Trust Services Criteria; the security common criteria CC1 to CC9 apply to every SOC 2 report | Most SaaS vendors selling to enterprises, optional for others | Map finance system controls to CC1 to CC9, assign owners to each, and collect evidence from the ERP, identity provider and change tickets |
| GDPR Article 28(3) processor instructions | Regulation (EU) 2016/679 requires processor contracts to limit processing to documented instructions and to apply Article 32 security measures | Companies processing EU customer or billing data on their behalf or as controllers | Document which customer and billing fields the ERP processes, restrict exports and integrations to those instructions, and review sub-processors such as hosting or billing tools |
| EU Data Act switching rights | Regulation (EU) 2023/2854 requires data processing providers to allow customers to switch providers or move on-premises, with a two-month maximum notice and 30-day transition period | SaaS vendors offering data processing services to EU customers | Keep customer-facing data exportable in documented formats and plan switching support; from 12 January 2027 switching charges may not be imposed |
| Annual penetration testing and vulnerability assessment | 16 CFR 314.4(d)(2) requires annual penetration testing and vulnerability assessments at least every six months absent effective continuous monitoring | Financial institutions only; a useful benchmark for other SaaS buyers | Schedule penetration tests covering the ERP, its integrations and its public endpoints, and track remediation of findings in the change process |
| Restricted code execution in ERP customization | Frappe documentation states Server Scripts are disabled by default from version 15 and must be enabled by a setting | All ERPNext users adding custom logic | Decide early whether custom logic runs in server scripts or in reviewed app code, since hosted shared benches may not allow server scripts |
Odoo or ERPNext for a subscription business: which fits which situation
Odoo's Custom plan is the only tier that the pricing page lists as hosted on Odoo.sh or on-premise, and it is the only tier that includes multi-company, Odoo Studio, external API access and custom modules. A subscription business that runs several legal entities, needs billing or CRM systems to call the ERP through its API, or expects custom revenue logic has to look at this plan first, regardless of how the core accounting modules are used.
- Multi-company: Entities, intercompany flows and currencies are only available on the Custom plan, so confirm the entity count before pricing.
- External API access: Connections to billing, CRM and data warehouse tools depend on this tier, so list every integration.
- Hosting choice: On-premise or Odoo.sh hosting is only offered on Custom, which matters for data residency and audit evidence.
- Custom modules: Revenue schedules or deferral logic built as modules must be kept upgradable across major versions.
- Studio: Configuration through Studio is included, but its changes still need change control under the same review as code.
Confirm the plan, hosting option and module list in writing with Odoo or a partner before the design phase starts.
Odoo's support windows are measured from each major release, and the upgrade path depends on the deployment model. Odoo 20.0 was released in September 2026 with standard support planned until September 2029, and Odoo 19.0 (September 2025) has standard support until September 2028. Standard support covers Odoo Online, Odoo.sh and on-premise, including security updates and bug fixes, while paid extended support afterwards is limited to Odoo.sh for select versions and on-premise.
- Support window: Odoo 20.0 standard support runs to September 2029 and Odoo 19.0 to September 2028.
- Mandatory upgrades: On Odoo Online and Odoo.sh, major version upgrades are mandatory every two years.
- On-premise activation: Enterprise databases are activated with the subscription code, and the upgrade service requires an Enterprise subscription.
- Community edition: Community has no access to the upgrade service, so upgrades are a self-managed project.
- Test first: The upgrade service produces an upgraded test database that should be tested before production.
Ask for the support end date of the version you plan to run and budget an upgrade test cycle before each major release.
ERPNext is licensed under GPL-3.0 and is free to self-host, which makes it attractive to subscription finance teams that want full control of the database, integrations and hosting. It can be installed with Docker Compose, with the bench command line tool, or on Frappe Cloud. Production deployments commonly use the frappe_docker images and Compose files, which include services for MariaDB, Redis, background workers, the scheduler, Socket.io and Nginx.
- Free self-hosting: The software license costs nothing, so the cost sits in hosting, configuration, integration and support.
- Install methods: Docker Compose, bench or Frappe Cloud are the documented routes.
- Production images: frappe_docker is the production-oriented starting point, while its single-file demo setup is for short-lived evaluation only.
- Version support: Version 15 is planned to be supported until the end of 2027 and version 16 until the end of 2029, and version 14 reached end of life on January 31, 2026.
- Vendor warranty: Warranty coverage from Frappe requires a listed version and a matching Frappe Cloud support plan.
Confirm which version your team will standardize on and whether vendor warranty is required by your audit or insurance terms.
Platforms that fit a SaaS finance stack
A subscription business usually needs an ERP for the general ledger and close, plus a billing engine and a CRM that feed it. The cards below separate the ERP options from the adjacent tools, so each can be checked against recurring invoicing, revenue reporting and the change and access controls an IPO readiness review will test.
Odoo Enterprise, self-hosted
Odoo Enterprise is the paid edition built on the LGPL-3.0 Community core, and it is the only Odoo edition that can run on-premise or on Odoo.sh with the Custom plan. Multi-company, Studio, external API access and custom modules sit in that plan, so a SaaS group with several entities or custom revenue logic should confirm the plan and subscription count before design. Confirm the support window for your release, since standard support covers the first three years after a major release and SaaS versions cannot use extended support.
Odoo Community, self-managed
Odoo Community is the open source core under LGPL-3.0 and carries no license fee, but the Community edition has no access to Odoo's upgrade service. Every major version move, including the mandatory two-year upgrades on Odoo Online and Odoo.sh, must be rebuilt and tested by your own team or partner. For a SaaS finance team, that means budgeting for revenue module changes and custom code to be re-validated at each upgrade, and confirming who owns the change record for each release.
ERPNext on Frappe
ERPNext is GPL-3.0 licensed and runs on the MIT-licensed Frappe Framework, covering accounting, subscriptions and project-based revenue in one codebase. Version 14 reached end of life on January 31, 2026, so new deployments should target a supported major version. Server Scripts are disabled by default from version 15, which affects custom revenue rules, and Frappe Cloud shared benches do not allow them. Confirm which version your warranty depends on and whether your team can maintain the Python customizations.
Kill Bill for subscription billing
Kill Bill is an Apache-2.0 subscription billing and payments platform that handles plans, invoices and payment retries, which the ERP then consumes as ledger entries. It is the component that most often decides how recurring invoicing and deferred revenue are split between systems. The latest release is killbill-0.24.22, published September 29, 2026. Confirm which system owns the invoice, how credit notes and proration are posted to the ledger, and how the billing-to-ERP interface is tested before go-live.
SuiteCRM for account and pipeline data
SuiteCRM is an AGPL-3.0 CRM that holds accounts, opportunities and contract details that finance uses for bookings and renewals. AGPL-3.0 obliges you to publish source changes if you offer a modified version to users over a network, which should be checked with counsel before custom connectors are built. The latest tagged release is v7.15.2, published July 31, 2026. Confirm how opportunity stages map to billing plans, and who approves changes to the CRM-to-ERP sync.
EspoCRM for lighter sales operations
EspoCRM is AGPL-3.0 and suits a smaller go-to-market team that needs leads, accounts and renewal tracking without a heavy configuration effort. Its main limit for a finance stack is the depth of contract and subscription objects, which may need custom entities to match billing plans. The latest release is 10.0.10, published October 14, 2026. Confirm whether the field and workflow changes are tracked in your change management system, since they affect revenue data that auditors will sample.
Twenty with commercial Enterprise files
Twenty is positioned as an open alternative to Salesforce and is mostly AGPL-3.0, but files marked as Enterprise are under a commercial license. Before you commit, confirm which features your revenue workflows depend on and whether they sit in the Enterprise files, since that changes both license cost and the audit trail for those components. The latest tagged version is v2.9.0. Confirm the license terms in writing and how upgrades to Enterprise files are handled in your change process.
Integration points and deployment pattern for SaaS finance
A subscription finance stack depends on a few hand-offs: invoices leaving billing, customer records moving from CRM, staff signing in through central identity, and changes moving through separate environments. Each hand-off needs a named owner, a control and a test before the ERP goes live.
Billing-to-ERP invoice sync and idempotency
Subscription invoices, credit notes and payment events flow from the billing platform into the ERP ledger. Retries after a timeout must not create duplicate invoices or double-post payments, so each message needs a stable external identifier that the ERP checks before writing. Confirm with the billing vendor whether events are delivered at least once, how they are replayed, and who reconciles the ERP ledger to billing totals at each period close. Test this with a reconciliation report before the first live cycle.
CRM-to-ERP customer master data ownership
Customer names, legal entities, tax IDs and billing contacts are created in the CRM and then needed in the ERP for invoicing. The team must decide which system is the system of record for each field, because two systems editing the same customer produce mismatched invoices. A common pattern is to let sales own contact and pipeline fields, while finance owns legal name, tax identifiers, payment terms and credit limits. Document this split in the integration design and check the sync rules against the CRM vendor's API documentation.
Identity integration through LDAP and social login
Finance staff should sign in with the same directory accounts used elsewhere, so joiners and leavers are handled once. Odoo documents LDAP authentication for its users, and ERPNext documents LDAP integration and social login keys. Confirm which method your identity provider supports, how group membership maps to ERP roles, and whether local fallback accounts exist for emergencies. Access reviews for the finance roles should draw from the same directory, and the team should test a leaver scenario before go-live.
Environment separation and database neutralization
Production, a test copy and an upgrade test database should be separate environments with separate credentials. Odoo documents database duplication with neutralization for test copies, which keeps test environments from sending real invoices or emails. Confirm that neutralization disables outbound payment and email integrations in the copy, and that the copy is refreshed under a documented procedure. Changes should be promoted through test before production, and the promotion record becomes change evidence for later audits.
Self-hosting location versus SaaS hosting
The ERP can run in the company's own cloud account, a data center, or a vendor-hosted service. Odoo's on-premise and Odoo.sh options are available on the Custom plan, while ERPNext can be self-hosted at no license cost or run on Frappe Cloud. Hosting location affects data residency, who patches the platform, and how logs are retained for auditors. Ask each hosting provider where backups and logs are stored, who holds administrative access, and how the contract handles exit and data return.
Rollout phases and the output of each
The sequence moves from agreed revenue design to controls, integration, data load, a parallel close and a SOX dry run, so the finance team reaches go-live with evidence that each control worked before it was relied on.
Fit-gap revenue recognition and recurring invoicing
The partner and the finance lead map how contracts, subscription plans, amendments, credits and usage charges flow from the billing platform into the ledger. The team tests each revenue scenario, including ramp deals, mid-term upgrades and cancellations, against the chosen Odoo or ERPNext configuration. Output: an approved revenue design document signed by the controller, listing what is configured and what is custom. Done when every in-scope revenue scenario has a documented treatment and an owner.
Design change, access and reconciliation controls
Before configuration is locked, the team defines the controls auditors will test: change approval and testing for code and configuration, role-based access and segregation of duties, and reconciliation of billing, CRM and ledger balances. Each control gets an owner, a frequency and the evidence it produces. Output: a control matrix reviewed by internal audit or the external auditor's readiness contact. Done when every control maps to a risk and to a named system artifact.
Build and test billing and CRM integrations
Engineers build the interfaces that carry customer, subscription, invoice and payment data between the billing system, the CRM and the ERP, including error queues and retry behavior. Custom server logic is kept in version-controlled modules and tested in a non-production environment. Output: a tested integration with recorded test cases, reconciled sample transactions and a list of known exceptions. Done when failed records are visible to finance and the integration is covered by the change process.
Load master data and history in batches
The team loads customers, products, price lists, chart of accounts and opening balances first, then open invoices and open items, and archives older history where the auditors agree. ERPNext's Data Import tool is documented for a few thousand records at a time, so large sets are split into batches. Odoo migration tooling depends on the partner's method. Output: a load log per batch with row counts and rejected records. Done when each batch reconciles to its source before the next one starts.
Run parallel close and reconcile results
Finance closes one or more periods in the new system while the legacy process continues, then compares revenue, deferred revenue, receivables and tax outputs line by line. Differences are logged with a root cause and a decision on whether the new system or the legacy treatment is correct. Output: a reconciliation pack signed by the controller and the CFO's delegate. Done when all differences are explained and no unexplained variance remains above the agreed threshold.
Execute SOX dry run and collect evidence
The team walks through each control in the matrix as the auditor would, pulling change tickets, access reviews, approval records and reconciliation sign-offs from the system and the ticketing tools. Gaps are logged and fixed, and the controls are retested. Output: an evidence pack indexed by control ID, with the dry-run results. Done when every control has at least one complete, retrievable evidence set. Confirm with your auditor how many samples and periods they will expect.
Go live with a supervised test period
After the dry run, the company cuts over at an agreed period boundary and runs a defined test period in which every close step, control and integration is watched by the finance and IT owners. Hypercare issues are triaged against the control matrix so that any change is logged and approved. Output: a go-live sign-off that records the cutover checklist, open issues and the owner for each. Done when the test period closes without unapproved changes and the evidence pack is filed.
Evidence auditors ask for and what produces it
This table maps the evidence a SOX-style or SOC 2 reviewer typically requests for a subscription finance stack on Odoo or ERPNext to the system or record that produces it. Read each row as a question the auditor will ask and the artifact that answers it. Auditors decide whether the evidence is sufficient; DeployOpen prepares the systems, controls and records but does not issue audit reports or attestations.
| Evidence requested | What produces it | Where it usually fails |
|---|---|---|
| Change tickets with approvals and test results | Ticketing workflow linking each Odoo or ERPNext customization, configuration change or upgrade to an approver, a test record and a release date | Config changes made directly in production with no ticket, or approvals recorded after deployment |
| Version control for custom modules | Git history for custom Odoo modules or ERPNext apps, with tagged releases matching what runs in each environment | Custom code edited on the server, so the running version cannot be tied to a reviewed commit |
| User access reviews and role matrices | Exported role and permission matrix from the ERP, reviewed periodically by the process owner and signed off with the date and reviewer | Users keep roles after a job change, or the review checks a list with no evidence of decisions |
| Segregation of duties conflicts | Matrix showing which roles can create vendors, post journals, approve invoices and change billing plans, with documented exceptions | Administrators who can both change configuration and post financial transactions |
| Group membership from the identity provider | LDAP or identity provider group exports that map to ERP roles, showing who can log in and which groups grant access | Local ERP accounts that bypass the directory, so the identity source does not match the ERP user list |
| MFA enforcement and login logs | Identity provider policy showing MFA is required for ERP and admin access, plus sign-in logs with success and failure events | MFA applied to the portal but not to direct database, admin or API access paths |
| Audit logs of configuration and data changes | ERP change logs for sensitive documents and settings, plus server and database logs retained in a central store | Logs kept only on the application host, short retention, or settings changed without a logged actor |
| Reconciliation of billing to the general ledger | Dated reconciliation of subscription billing totals, deferred revenue schedules and GL balances, signed by the preparer and reviewer | Gaps between the billing platform and ERP caused by failed syncs, manual journal adjustments or unposted invoices |
| Upgrade test records | Test database results, regression scripts, sign-off and the production change ticket for each Odoo or ERPNext version move | Upgrades applied to production without a tested copy, or test results that are not retained |
| Backup and restore tests | Scheduled backup jobs with logs, plus restore exercises on a separate environment with documented results and timings | Backups that run but have never been restored, or restore tests that do not cover the database and files together |
What to ask an implementation partner before a SOX-ready build
Start by asking how the partner maps each SOX control to a specific ERP setting, workflow or role. Ask for the control matrix draft before any configuration begins, and ask which Odoo or ERPNext features each control relies on: approval workflows, user roles, document locking, period closing and audit trails. A credible partner will show which controls are enforced by configuration, which by process, and which by a combination of both. Also ask how they keep the matrix current when the business adds a legal entity or a new billing plan. Confirm that the matrix is written in terms your external auditors have already reviewed, since SOX examinations and SOC 2 examinations use different criteria and different evidence.
Next, ask how custom modules and Server Scripts are versioned, tested and promoted. In ERPNext, Server Scripts are disabled by default from version 15 and must be enabled through server_script_enabled, so ask who controls that setting and how it is logged. In Odoo, ask whether custom work is delivered as versioned modules, how it is tested against the upgraded test database before production, and what happens to each customization when the company moves between major versions. Ask for their change ticket template, their separation between development, test and production environments, and the list of people who can deploy. Request a sample of a recent change record, including test evidence and approval, so you can judge the quality before you sign.
On the Odoo side, ask the partner to justify the edition choice in writing. Only the Custom plan can be hosted on Odoo.sh or on-premise, and only Custom includes multi-company, Studio, external API access and custom modules, so the choice shapes which controls you can build. Ask how they will plan around the upgrade calendar, including the three-year standard support window after each major release and the mandatory two-year major upgrades on Odoo Online and Odoo.sh. For billing reconciliation, ask how billing events reach the ledger, which tool performs the match, how exceptions are investigated, and who signs off the reconciliation each period. Finally, ask who owns the control matrix after go-live, and whether they have worked with SOC 2 or SOX-style evidence before. Ask what they need from your auditors, such as sample sizes, evidence formats and the period for testing, before the design is frozen.
What SaaS finance teams ask before hiring help
What drives the cost of an open source ERP implementation for a SaaS company?
The biggest drivers are the platform edition or plan, the number of legal entities and currencies, how many billing and CRM integrations must be built, the volume of history to migrate, how many custom modules are needed, and how much control design work the finance team requires. Software licenses or subscriptions are only one line. Self-hosting Odoo Community or ERPNext removes the license fee, but you still pay for infrastructure, implementation, integration work, testing, training and yearly upgrades. Odoo's pricing page indicates that multi-company, Studio and custom modules sit only on the Custom plan, so confirm that tier early. DeployOpen does not publish prices. A quote follows from a written scope that lists these drivers.
How long does an open source ERP build for a subscription business take?
Duration depends on the written scope, not on a standard timeline. The main variables are the number of entities, the recurring invoicing and revenue recognition rules to configure, the billing and CRM systems to connect, the opening balances and history to load, and the change approval steps your auditors expect to see in place before go-live. Most engagements are fixed-scope, so scope, deliverables and timelines are agreed in writing before work starts. Ask any partner to show the phases, the dependencies on your billing system, and the testing window for a parallel close before you accept a date.
What does our finance team need to provide during an ERP implementation?
Your team needs named process owners for revenue, AR, AP, close and tax, who can make decisions on chart of accounts, revenue schedules and approval limits without delay. You also need access to the billing and CRM data, a list of reports the board and lenders use, and time for user acceptance testing and reconciliation sign-off. If you are preparing for an IPO, involve your external auditor early, since they will tell you which change management, access and reconciliation evidence they expect. Plan for these people to spend recurring hours during the build, not only at kickoff.
Can our own engineers install and run Odoo Community or ERPNext without a partner?
A small team with strong Linux, PostgreSQL or MariaDB, and Python or Frappe skills can install and run either platform. ERPNext can be installed with Docker Compose or the bench command line tool, and Odoo Community can be installed from source. The harder part is discipline: change approvals, test environments, database backups, security patching, and upgrades that follow each version's support window. Odoo's upgrade service requires an Enterprise subscription for on-premise use, and Community has no access to it. Frappe warranty coverage depends on a matching Frappe Cloud support plan. Decide who owns each of these before you commit to self-running.
Who supports the ERP after go-live, and what does a retainer cover?
After go-live, someone must handle security updates, bug fixes, version upgrades, backups, monitoring, user changes and evidence collection. DeployOpen offers ongoing support, upgrades and continuous testing as retainers, and these can be scoped to the systems you run. Odoo standard support covers the first three years after a major release, and Odoo SaaS versions are released every two to three months, so the upgrade cadence needs to be planned as a recurring cost. Ask any provider which release lines they support, how they test an upgrade in a non-production copy first, and what response commitments appear in the written agreement.
Will implementing an open source ERP give us SOC 2 or SOX certification?
No. DeployOpen prepares systems, controls and evidence for compliance assessments, but it does not issue audit reports, attestations or certifications. A SOC 2 report is issued by an independent CPA firm, and SOX compliance is assessed by your external auditor and reviewed by management. A Type 1 report covers control design at a point in time, while a Type 2 report adds an opinion on operating effectiveness over a period, so the operating evidence must exist for months before the audit window. Ask your auditor which controls and evidence they will test before the build starts.
What controls must be in place for SOX-style change and access in the ERP?
At minimum, you need documented approval for every configuration and code change, separate development, test and production environments, and evidence that testing happened before release. You also need role-based access with segregation of duties, such as preventing the same person from creating and approving vendor payments, plus logging of administrative activity. Document who can change parameters and when, and keep records of periodic access reviews. The FTC Safeguards Rule uses similar expectations for change management and activity logging, which can help if your organization is also in scope. Your auditor should confirm the exact control set before you design the workflow.
How DeployOpen scopes and supports SaaS ERP
DeployOpen is a Chainscore Labs company that plans, implements, integrates, hardens, backs up, upgrades, documents and supports self-hosted open-source platforms inside the client's own infrastructure, including their cloud accounts, data centers or air-gapped networks. For a subscription business running finance on Odoo or ERPNext, that means the ERP, its connection to billing and CRM, its backups and its upgrade path are all deployed and operated in an environment the company controls. Most engagements are fixed-scope, so the systems in scope, the deliverables and the timelines are agreed in writing before work starts. Before signing, ask the partner to list which Odoo or ERPNext modules, billing and CRM connectors, and environments are included, and which are explicitly excluded.
On the compliance side, DeployOpen prepares systems, controls and evidence for assessments such as a SOC 2 examination, but it does not issue audit reports, attestations or certifications. Those come from an independent auditor. In practice, that means configuring change approval workflows, role-based access, logging and retention so that the auditor can test them, and documenting how each control operates. Confirm with your auditor which periods and control activities they will sample before the scope is written, because evidence gaps discovered late are costly to close. The scope should name the evidence package DeployOpen will produce and who on your side signs off on each item.
Ongoing support, upgrades and continuous testing run on retainers rather than inside the initial fixed scope. This matters for a SaaS finance stack because Odoo and ERPNext both ship frequent releases and require planned major upgrades, so the upgrade cadence and the owner of each test cycle should be decided up front. DeployOpen does not publish a price list. A quote follows from the written scope, so ask for the cost of the implementation, the retainer, and any upgrade or testing work separately, and ask which items recur each year and what drives them up. Request a clear statement of what the retainer covers during an audit period.

