How it works · 90-day migration

Migration to an ERP you own. Ninety days. Fixed price.

Your NetSuite stays live the entire time. If we miss the bar at cutover, you stay on NetSuite. The price is the price, we eat overruns, not you.

90 days

to cutover

Fixed price

no overruns

Parallel-run

no business interruption

Per-step rollback

tested before cutover

PostgreSQL export

available at any phase

The traditional way vs ours

The same migration, run two ways. Traditional migrations are safe only because they are slow. We keep the safety and remove the slow.

Timeline

Traditional ERP migration

4-9 months

Del AI

90 days, fixed

The switch

Traditional ERP migration

Big-bang cutover weekend, hope it holds

Del AI

4-week parallel run, both systems live, cut over only when they match exactly

If a step breaks

Traditional ERP migration

Re-migrate, billed by the hour

Del AI

Per-step rollback, auto-armed; NetSuite stays your fallback through a 7-day failover window

Who does the work

Traditional ERP migration

Consultants billing all 130 tasks by the hour

Del AI

Software pipelines do the migration, verified at every step. AI runs discovery, mapping, and scheduling; you approve the 22 decisions that are irreversible

Proof your books survived

Traditional ERP migration

“Trust us”

Del AI

Signed reconciliation report: row counts, balances, and edge cases all match to the cent

Price

Traditional ERP migration

67% run over budget

Del AI

Fixed, one-time, funded by the SaaS spend you delete

Three phases. Ninety days. One business that stays running.

Each phase has a defined output, an exit checkpoint, and a rollback path. You see the work, your auditor sees the work, your team practices on the work, before any cutover.

Phase 1

Weeks 1-4

Map your stack onto Odoo

We pull a read-only export of your NetSuite production data: chart of accounts, customers, vendors, items, open invoices, custom fields, SuiteScript logic, roles and permissions, and the last 7 years of transactions (or your retention policy, whichever is longer). Everything gets mapped to the corresponding Odoo schema, cleaned of NetSuite-specific cruft, and reviewed line-by-line against your real-world business rules. Custom SuiteScript becomes Odoo Python modules, we translate the logic, you sign off on every change. End-of-phase checkpoint: your controller signs off on the schema map. Your auditor reviews the mapping before we touch anything in production. If something doesn't match, we keep iterating in this phase, no clock running on you.

  • · Read-only on NetSuite (we never write back)
  • · Auditor walkthrough before phase 2
  • · You see the mapping document, line by line

Phase 2

Weeks 5-10

Odoo stands up alongside NetSuite

We deploy your Odoo environment on AWS. Same chart of accounts, same customers, same open transactions as your live NetSuite. Daily sync pulls fresh data, every invoice, every payment, every adjustment that hits NetSuite also lands in Odoo. Your team logs in and practices on real data. They issue invoices, post journals, run reports, and compare them to NetSuite's output. If a report is different, we trace why and fix it before cutover. The day-1 AI agents stand up on the Odoo side during this phase. You see them produce real output on your real numbers, against the answer NetSuite is producing in parallel. By week 8, you've watched the close cycle run on Odoo before you ever bet your books on it. End-of-phase checkpoint: your team certifies the parallel system matches NetSuite output. If parity isn't there, we extend phase 2.

  • · Same data, both systems, side-by-side
  • · Your team practices for 6 weeks
  • · Agents prove themselves against NetSuite's output
  • · You decide when parity is good enough

Phase 3

Weekend, week 11

One weekend. Books close on NetSuite Friday, open on Odoo Monday.

Friday EOD: NetSuite books close. Final sync runs overnight. Saturday: we cut DNS, switch users to Odoo, run smoke tests on every workflow. Sunday: full reconciliation review with your controller. Monday morning: your team logs into Odoo for the new week. Every step has a documented rollback. We tested the rollback in week 8, if anything goes wrong Monday morning, you're back on NetSuite by Tuesday afternoon with zero data loss. NetSuite license stays paid through end of month so the rollback path is always live. By week 12 (one week post-cutover), the post-mortem is done, your auditor has signed off on the transition, the parallel NetSuite environment can be archived, and you're running on a system you own.

  • · One weekend window
  • · Rollback tested in week 8, not improvised on Monday
  • · NetSuite license stays paid through month-end (safety net)
  • · Post-cutover reconciliation before NetSuite is fully decommissioned

What we migrate

Honest version. What moves, what gets re-implemented, what we tell you to drop.

Migrates as-is

  • · Chart of accounts
  • · Customers + contacts + history
  • · Vendors + payment terms + bank info
  • · Open AR / AP / unpaid invoices
  • · Closed transactions (configurable retention, default 7 years)
  • · Items, SKUs, pricing tiers
  • · Tax codes + tax jurisdictions
  • · Roles and permissions
  • · Saved searches to Odoo filters

Translates to Odoo modules

  • · SuiteScript user event scripts to Odoo automation rules + Python actions
  • · SuiteScript scheduled scripts to Odoo cron jobs
  • · Workflow rules to Odoo automated actions
  • · Custom fields to Odoo studio fields + model extensions
  • · Saved reports to Odoo BI views or Metabase
  • · Bundled SuiteApp integrations to Odoo connector or rebuild

About 80% of typical SuiteScript translates cleanly. The remaining 20% we evaluate up front in phase 1: rebuild in Odoo, drop the workflow, or stay on NetSuite. Honest call before you sign.

We'll tell you to drop

  • · Customizations nobody uses anymore (we audit usage in phase 1)
  • · Workflows that exist because NetSuite forced you to (Odoo doesn't need them)
  • · Reports nobody runs
  • · SuiteApps that solved problems Odoo's native modules already cover

Migration is the cleanest moment to audit your stack. We tell you what to drop and the savings stack up.

Five things that make this safe

A standard ERP migration is "trust us." Ours is mechanical.

01

Fixed price

The number we sign is the number you pay. If phase 2 takes three extra weeks because your SuiteScript is complex, that's our problem, not yours. We eat overruns. The contract has no change-order clause.

02

Parallel run, not big-bang

NetSuite stays live until cutover weekend. Your business runs on it for 10 of the 11 weeks. Your team practices on Odoo on the side. Nothing depends on Odoo until you've already watched it work.

03

Per-step rollback, tested

Every cutover step has a documented rollback. We run the rollback drill in week 8, two weeks before you'd ever need it. Monday morning incident? You're back on NetSuite by Tuesday with zero data loss.

04

Audit trail preserved

Year-1 audit cycle still signs off on NetSuite. Year-2 is the first on Odoo, we walk your auditor through the mapping before cutover. Full transaction history migrates with provenance intact.

05

PostgreSQL export, any time

Odoo runs on PostgreSQL. You get a full SQL export at any phase, in standard formats. If you ever fire us, your data goes with you. There's no proprietary lock, that's the entire reason we built on open source.

The agents that ship with your migration

Two agents standing up in phase 2, running against your real data weeks before cutover. Two more available from the library in months 4-6.

Month-end close

Drops your close cycle from 12 days to 5. Variance commentary drafted automatically, journal entries proposed, exception queue for your controller. Runs on day 1 of migration phase 2.

FP&A draft + variance

Pulls the prior-period actuals, generates the variance narrative, flags the lines that matter. Your analyst spends time on the explanation, not the data assembly.

Sales ops (CRM to NS sync)

Pipeline and invoice reconciled nightly. Sales ops stops chasing missing data; revenue forecasts match billing.

AP triage + reconciliation

90% of bills auto-coded, exceptions queued for human review. Stops the AP clerk grind on routine invoices.

What's yours on Monday morning of week 12

The codebase, the data, the agents, and a maintenance plan that doesn't compound.

Your codebase

LGPL Odoo on your repo. Your team commits, your team reviews. Claude Code extends workflows in natural language. No SuiteApp procurement, no consultant SOW for every change.

Your data

PostgreSQL. Standard SQL. Export at any time. Run it yourself if you ever want to. The lock is gone.

Your agents

Two production agents on day 1. Library expands with the platform, month 4, month 6, month 9 add new SKUs you can turn on. Your team builds custom agents with Claude Code on your repo.

Your maintenance plan

Hosted runtime continues at a flat rate. Maintenance retainer roughly $20k/yr, covers CVE patches, version upgrades, AWS infrastructure. No annual hike. No escalator clause.

What your CFO will ask, before you book the call

Working capital, do we pay $X upfront and wait 90 days for value?
The contract structures payments around milestones: a deposit at signing, a portion at end of phase 2 (parallel-run parity certified), the balance at cutover. You never pay ahead of work delivered.
What if NetSuite cuts our renewal 30% to keep us?
Then take it, your math improves either way. But ask whether the discount is one renewal cycle or locked-in for the contract term, whether your escalator clause stays, and what happens when you ask NetSuite for cross-system AI capability. The discount doesn't change those answers.
What if our auditor refuses to sign off on the cutover?
Phase 1 includes an auditor walkthrough before any production touch. We've structured the mapping documentation to match what audit firms expect to see. If your auditor flags something in the walkthrough, we adjust in phase 1, that's what phase 1 is for. We have not yet hit a hard auditor rejection in any planning session.
What does the "fixed price" actually cover?
Migration of every system in the SOW, standup of hosted Odoo, day-1 agents specified in the SOW, phase 2 parallel-run, cutover, post-cutover reconciliation. Out of scope: new systems added mid-engagement, new agents not on the SOW, your team's training time. We list these explicitly in the SOW so there's no surprise.
Multi-currency? Multi-entity? Multi-warehouse?
Multi-currency: yes, native Odoo. Multi-warehouse: yes, native Odoo. Multi-entity at the OneWorld level (transfer pricing, statutory per-jurisdiction reporting, eliminations): not yet, we hard-exclude OneWorld customers from the founding cohort, revisit annually.
What does year 1 actually cost, all-in?
We scope to your specific stack in the ROI call. Most founding customers are net cash-positive within 12 months of cutover (migration cost offset by deleted SaaS and consultant lines). We show you the math in the call, against your actual numbers, not against a generic template.

More on the migration

How much of our SuiteScript actually translates?
About 80% of typical SuiteScript translates cleanly to Odoo modules. The remaining 20% we evaluate up front in phase 1: rebuild in Odoo (most common), drop the workflow (if usage data shows it's stale), or stay on NetSuite for that specific workflow (rare, usually means we're not the right fit).
How many years of historical transactions do you migrate?
Default 7 years (covers most US tax retention). Configurable up to your full history if your retention policy is longer. Older history stays archived in read-only NetSuite if you decide to decommission that license entirely.
What about our integrations, Avalara, Stripe, ShipStation, Salesforce, the iPaaS layer?
Each integration evaluated in phase 1. Native Odoo connectors exist for most of the common ones (Stripe, Shopify, Salesforce direct). Avalara: Odoo's native tax computation covers most US use cases; if you need Avalara specifically, we maintain the integration. iPaaS layer (Celigo, Boomi): most of what they're doing becomes unnecessary once Odoo's APIs are open and your team can write directly.
What about our SuiteApps, FloQast, Tipalti, Celigo, BlackLine?
Phase 2 SKU library covers many of these natively. FloQast (close management) → month-end close agent + Odoo's close module. Tipalti (AP automation) → AP triage agent + Odoo accounting. Celigo (iPaaS) → mostly unnecessary post-migration. BlackLine (reconciliation) → reconciliation agent + Odoo's matching engine. We tell you which SuiteApps to drop and which to keep, with the math.
What if we're growing fast, does the system scale?
Odoo at our hosted tier handles up to ~$500M revenue scale on a single-tenant configuration. Past that we re-architect; not our founding-cohort problem. AWS hosting scales horizontally without re-platforming.
What's the actual hardware / infrastructure?
AWS, single-tenant Odoo per customer on managed Kubernetes. Daily snapshot backups, point-in-time recovery, encryption at rest and in transit. SOC 2 Type I in progress, Type II on the post-C#5 roadmap.
Can we self-host instead of using your hosted runtime?
Yes. The code is LGPL, you run it on your own AWS / GCP / on-prem. We charge a smaller services retainer in that arrangement instead of the hosted runtime. Most founding customers prefer hosted because we handle CVE patches, version upgrades, and infrastructure scaling. Self-host is the safety valve, not the default.
What if we want to add a workflow your team has never built before?
Two paths. (1) Your team builds it with Claude Code against your own repo, same day, no consultant. (2) We add it to the library for everyone via our roadmap, usually within a release cycle. You choose based on urgency and whether you want the IP private or contributed.

An ROI call costs 30 minutes.

We map your stack, name what's replaceable, scope the migration, and show you the day-1 agent shortlist for your workflows. You walk away with the number, whether you migrate or not.