The netsuite migration best practices that separate projects that cut over on time and on budget from the ones that blow up in week 24. SuiteScript classification, OneWorld enterprise structure mapping, ASC 606 obligation continuity, multi-book reconciliation, parallel-run discipline. Distilled from dozens of NetSuite to Fusion migrations.
Most NetSuite to Oracle Fusion migration failures don't fail at the load — they fail at the design choices made in week three. Get the five core practices right and your project lands. Get them wrong and you're explaining variances to the audit committee in week 28.
Across dozens of NetSuite to Fusion engagements, the failure modes cluster tightly. One: designing the Fusion enterprise structure (Ledger/LE/BU) before inventorying the OneWorld subsidiary tree and the elimination rules. The structure looks right on paper, then fails when 14 inter-company combinations don't reconcile in parallel-run. Two: declaring SuiteScript inventory done after a sample walkthrough rather than a complete SCRIPTDEPLOYMENT catalog — and discovering 47 'dead' scripts that are actually doing critical validation in week 18. Three: rebuilding every Saved Search by default rather than classifying and retiring duplicates — and burning 14 weeks of OTBI engineering on reports nobody reads. Four: assuming ASC 606 will 'work out in reconciliation' — and explaining a £2.3M deferred revenue variance to the auditor on day two. Five: skipping parallel-run because 'we're confident in the data' — and discovering on day five that OneWorld elimination subsidiaries didn't map.
Every one of these is preventable with the right netsuite migration best practices applied at the right phase. The practices are not exotic — they're discipline. The patterns repeat across customers because the failure modes repeat. Syntra ETL's value isn't just the platform (extractors, converters, emitters, reconciliation engine) — it's the practice library that ships alongside the platform: assessment templates, classification rubrics, validation checklists, sign-off pack templates, parallel-run cadence templates.
This page distills the highest-leverage practices into a coherent playbook. Read it before you scope, before you design, before you build. The hour you spend internalizing the practices saves you weeks of recovery effort later.
The technical practices, organized by phase. Each has saved a real project from a real failure mode.
Walk the full SCRIPTDEPLOYMENT and CUSTOMSCRIPT catalog via SuiteAnalytics Connect. Capture execution context, last-run-date, status, dependencies. Classify by purpose. Never sample — complete inventory or nothing.
Walk CUSTOMRECORD metadata, map parent-child relationships, identify referential dependencies to standard records. Migration order respects the dependency graph — referenced records before referencing.
Subsidiary tree, base currencies per sub, elimination subs, inter-company partner matrix, consolidation hierarchy — all extracted from production NetSuite before drawing the Fusion target structure.
Every active arrangement → elements → obligations → recognition events → remaining deferred revenue. Pre-cutover synthetic recognition run validates opening balance cent-for-cent.
Each NetSuite book extracted separately, transformed separately, loaded to the corresponding Fusion ledger (Primary or Secondary) separately. No commingling. Per-book reconciliation evidence.
Cluster 400–800 Saved Searches by semantic similarity (column overlap, criteria overlap, source record overlap). Cluster duplicates retire. Surviving 30–40% prioritized by run-frequency for rebuild.
Daily delta capture via SuiteTalk modified-since watermarks per record type. Daily replay to Fusion via REST APIs and FBDI mini-loads. Daily reconciliation report distributed to stakeholders.
Trial balance, AR aging, AP aging, inventory valuation, ASC 606 deferred revenue — NetSuite vs Fusion to the cent. Internal audit signs the pack. No sign-off, no cutover.
The right practice at the right phase. Apply too early and you burn time on detail you don't need yet. Apply too late and you're recovering from a failure mode you should have prevented.
Apply: complete inventory practices (SCRIPTDEPLOYMENT, CUSTOMRECORD, SAVEDSEARCH, OneWorld subsidiary tree, multi-book setup, ASC 606 portfolio). Output: customization catalog, risk register, sized scope. Defer: design decisions until inventory complete.
Apply: classification practices (each customization gets retire/rebuild/route decision), OneWorld → enterprise structure design from evidence, COA crosswalk design. Sign-off on design before any extraction work. Defer: extraction until design signed.
Apply: governance-respecting SuiteTalk extraction, parallel SuiteAnalytics Connect bulk pulls, partition-by-subsidiary-and-period staging. Defer: transformation until extract reconciles row-count and hash-match with source.
Apply: per-book separation, per-subsidiary segmentation, ASC 606 synthetic recognition validation, Saved Search auto-conversion for simple cases, manual rebuild for medium. Defer: complex rebuilds (BI Publisher pixel-perfect) until post-load.
Apply: dependency-ordered load (foundation → master → opening balances → open transactions → historical), per-book reconciliation, per-subsidiary reconciliation, per-period reconciliation. Sign-off pack per subsidiary per book.
Apply: 1–2 month-end cycles in parallel, daily delta replay, daily reconciliation, stakeholder sign-off per subsidiary per book per period. Cutover only after final successful parallel month. Hyper-care war room for first 2 weeks post-cutover.
The failure modes that recur. Recognize the smell, course-correct early.
'We looked at the main scripts.' Three months later, 47 'dead' scripts turn out to be critical. Always: complete SCRIPTDEPLOYMENT catalog via SuiteAnalytics Connect.
Drawing the Fusion enterprise structure from org-chart slides rather than NetSuite SUBSIDIARY tree. Always: extract production OneWorld tree first, design from evidence.
400 Saved Searches × £2k = £800k of OTBI work, 60% of it on reports nobody reads. Always: classify by run-frequency, retire duplicates, prioritize critical path.
'We'll reconcile after go-live.' Day two: £2.3M deferred revenue variance, auditor on the phone. Always: synthetic recognition run pre-cutover, cent-level zero-variance sign-off.
Multi-book customers need per-book reconciliation. Aggregate-only TB reconciliation hides £M of IFRS Adjustment book variance. Always: per book per subsidiary per period.
'We're confident in the data.' Day five: OneWorld elimination subs didn't map, consolidated reporting broken. Always: minimum 1 parallel month-end, ideally 2.
Five practices that matter more than anything else. First: inventory before you design. Catalog every Custom Record, SuiteScript, SuiteFlow workflow, Saved Search and OneWorld subsidiary in week one — designing the Fusion enterprise structure without that catalog is the #1 source of cost overruns. Second: classify before you migrate. Each Custom Record/SuiteScript/Saved Search gets a retire/rebuild/route decision; 35–60% typically retire as redundant under Fusion natives. Third: validate ASC 606 obligation continuity cent-for-cent pre-cutover, never on day one. Fourth: reconcile per subsidiary per book per period — multi-book accounting demands book-by-book validation. Fifth: parallel-run for 1–2 month-end cycles before cutover. These five netsuite migration best practices alone cut overrun rate from ~45% to under 8%.
SuiteScript handling follows a disciplined classification workflow. Step one: inventory every active SuiteScript deployment via the SCRIPTDEPLOYMENT table in SuiteAnalytics Connect — script ID, deployment ID, execution context (User Event, Client Script, Scheduled, MapReduce, RESTlet, Suitelet, Workflow Action), associated record type, last-run-date, current status. Step two: classify by purpose: validation/UI enhancement, integration glue, business logic, batch processing, analytical/reporting. Step three: map each class to a Fusion equivalent: validation → Fusion validation framework or App Composer Groovy; integration → OIC integration flows; business logic → AMX workflows or App Composer; batch → ESS scheduled processes; analytical → OTBI. Step four: execute retire/rebuild decisions. Typically 50–65% of SuiteScripts retire — most were thin glue that Fusion handles natively.
OneWorld to Fusion enterprise structure is the highest-stakes design decision in any netsuite migration — get it wrong and every downstream component (COA, consolidation, reporting, security) is wrong too. Best practices: (1) Document the existing subsidiary tree completely — including elimination subsidiaries, inactive subs and historical-only subs. (2) Identify base currency per subsidiary and group by currency — each base currency becomes a Fusion Primary Ledger candidate. (3) Identify legal-entity-equivalence per subsidiary — each legal entity becomes a Fusion Legal Entity. (4) Identify operational segregation needs — each operational unit becomes a Fusion Business Unit. (5) Map inter-company partner relationships — Fusion AGIS rules rebuilt from NetSuite inter-company. (6) Plan consolidation: Fusion Financial Reporting Studio or Hyperion ARCS for management consolidation.
ASC 606 continuity is the single highest-stakes data validation in a NetSuite migration — and the practice is unambiguous: zero tolerance for opening-balance variance. Process: (1) Extract every active Advanced Revenue Management arrangement from NetSuite, including arrangement, elements, obligations, recognition events and remaining deferred revenue per obligation. (2) Convert each arrangement to Fusion Revenue Management's equivalent structure (Contract → Performance Obligations → Revenue Schedule). (3) Calculate expected remaining recognition per obligation across the recognition calendar. (4) Load to Fusion and validate opening balance per obligation against NetSuite closing balance to the cent. (5) Run a synthetic month-end recognition event on Fusion and compare against NetSuite's actual prior-period recognition — variances investigated to root cause. Zero variance is the only acceptable outcome before cutover.
Saved Search rebuild is where projects most often blow timeline — finance teams accumulate hundreds over years, and the consultant-led default is to rebuild every one. Best practices invert this. (1) Inventory all Saved Searches via SAVEDSEARCH metadata table in SuiteAnalytics Connect. (2) Classify by last-run-date and run-frequency — Saved Searches not executed in 12+ months retire automatically. (3) Cluster by semantic similarity — 400 Saved Searches typically cluster to 80–120 unique reports; duplicates retire. (4) For the surviving 30–40%, classify by complexity: simple (auto-convert to OTBI logical SQL), medium (manual rebuild in OTBI), complex (rebuild in BI Publisher with pixel-perfect PDF). (5) Critical-path reports rebuilt and validated before go-live. (6) Long-tail reports rebuilt post-cutover on demand.
Multi-book accounting (Primary book + Adjustment books for IFRS, tax book, management book) maps cleanly to Fusion Primary + Secondary Ledger structure — but the practice demands per-book reconciliation. (1) Identify every active book in NetSuite (Primary, plus any of IFRS Adjustment, US Tax, Local Tax, Management). (2) Map each NetSuite book to a Fusion ledger: Primary book → Primary Ledger; each Adjustment book → Secondary Ledger with appropriate accounting representation rule. (3) Extract postings per book separately — no commingling. (4) Convert and load per book separately, with FBDI Journal Import targeting the correct ledger. (5) Reconcile per book per period — Primary trial balance NetSuite vs Fusion, IFRS Adjustment trial balance NetSuite vs Fusion, etc. (6) Sign off pack includes per-book reconciliation evidence.
Parallel-run is the single most important risk-reduction practice. (1) Plan 1–2 full month-end cycles in parallel — both NetSuite and Fusion processing the same transactions for the period. (2) Capture NetSuite deltas via SuiteTalk modified-since watermarks on each record type, replay into Fusion via REST APIs and FBDI mini-loads daily. (3) At each period-end, run full reconciliation: trial balance, AR aging, AP aging, inventory valuation, ASC 606 deferred revenue, multi-book trial balance per book — NetSuite vs Fusion to the cent per subsidiary per book. (4) Investigate every variance to root cause; fix in process or in data. (5) Stakeholder sign-off per subsidiary per book per period before cutover. (6) Cutover after the last successful parallel month — never on the same day as the last NetSuite period close.
Three practices cut hyper-care defects by 60–80%. (1) Pre-cutover UAT against Fusion using real production-volume data, not sample data — 80% of hyper-care defects trace back to UAT data being unrepresentative. (2) Reconciliation evidence pack signed off per data domain per subsidiary before cutover — if it's not signed it's not done. (3) Read-only NetSuite kept live for the hyper-care window (typically 4–8 weeks post-cutover) so users can cross-reference when investigating any reported defect. Bonus practice: dedicated hyper-care war room for the first 2 weeks post-cutover with technical, functional and Syntra ETL on-call — defects triaged within 2 hours, root-cause documented within 24 hours, fixed within 72 hours. Beats the consultant-led 'we'll get back to you next sprint' loop.
Book a 30-minute discovery call. We'll walk through your current migration plan (whoever's running it), identify the anti-pattern risks, and propose the best-practice retrofits — even if you're not engaging Syntra ETL for delivery. Best-practice advice is free; the cost of skipping it isn't.