Specira sample artefact. Rendered from the governed default template on a fictional company. Names, figures and dates are illustrative.All artefacts →
SAMPLE
seeded demo data · specira.ai
Specira Data Migration & Seeding: Governed Template Rendering
Governed template rendering reference: Data Migration & Seeding default v2 (draft) definition 3e4a512b…e766
Data Migration & Seeding · Project artifact SPECIRA

Data Migration & Seeding: Dispatch Modernization

Meridian Field Services: instructional example, not project evidence

Draft · watermark policy: draft_only template data_migration v2 · pack: specira_default_delivery the window is a measured number: the rehearsal's duration, never an estimate
§1

Migration Inventory

mandatory 1 decision1 evidence rule validators: every_entity_row_cites_classification_label · no_blank_inventory_cells · exclusions_carry_rationale_and_retention_answer

Source to target per entity, volumes, classes, owners; no blank cells. Exclusions carry rationale and a retention answer for what stays behind.

EntitySource → targetVolumeClassOwner
Job master Legacy dispatch job tables → Job[1] (status-code mapping per the closed set) 180 k rows (7 y) CONFIDENTIAL (labels[2]) R. Singh
Assignment history Legacy → Assignment[1] 640 k rows CONFIDENTIAL: clause 14's seven years drives inclusion (BR-06[3]) R. Singh
Technician roster NOT migrated: the HR directory remains authoritative (INT-5[4]); the board reads its sync; rationale recorded n/a
Legacy radio logs NOT migrated: no target entity, no retention obligation past the legacy system's own schedule (retention[2]); stays under enterprise IT's retention n/a
Positions Nothing to migrate: the feed is live-only and the 30-day purge outruns any backfill value; stated so the absence is a claim n/a

Freeze & delta: the nightly INT-3 sync keeps the target current to yesterday; the cutover window freezes legacy job WRITES; same-day deltas replay from the legacy change log; catch-up bound of 2 h of deltas at observed rates.

§2

Migration Approach & Seeding

mandatory 1 decision1 evidence rule validators: migration_approach_logged_with_alternatives · transitional_seam_retirement_cites_int_sunset · nonprod_seed_data_never_production_pii
Decision · phased, with a parallel-run proof

What: big-bang moves everything in one window; phased moves entity groups; parallel-run runs both systems live with comparison; trickle streams continuously. Why considered: the INT-3 nightly sync ALREADY IS a parallel-run in miniature (INT-3[5]): the target has carried the job master for weeks, reconciled nightly, comparison evidence big-bang lacks; full trickle engineering buys nothing a 2-hour delta replay does not. Who & how: E. Sandoval with R. Singh, walked against the seam design August 5 (migration approach[6]). Findings: phased wins. Assignments and jobs move in the cutover window; the roster never moves; INT-3 retires at cutover per its sunset (INT-3 sunset[4]).

EnvironmentSeedRule
dev Synthetic fleet: 300 vehicles, generated (the perf dataset's ancestor, datasets[7]) Production personal data in dev is prohibited: hard rule, no exception path
staging Masked production-shaped jobs and assignments: names and addresses masked per their labels (labels[2]); positions synthetic ALWAYS; RESTRICTED never leaves production even masked (the conservative read, decided with N. Duval)
§3

Validation & Reconciliation

mandatory 1 decision1 evidence rule validators: reconciliation_covers_count_checksum_and_sample · migration_window_from_timed_dry_run · rehearsal_includes_deliberate_rollback

Numbers, not vibes: every ladder level carries its criterion; the window is the rehearsal's measured duration.

LevelCheckCriterion
1Row counts + per-status aggregates exact match
2Record-level comparison on business keys 100% presence; mismatches bucketed
3Field-level SHA-256 over mapped columns; 5% random sample + every transformed row zero unexplained mismatches (the status-code mapping's expected diffs are pre-registered)

Dry-run: full rehearsal on the staging copy September 20, INCLUDING the deliberate rollback to source. Measured: migration 3 h 10 m, rollback 40 m; the runbook window is 4 h with the rehearsed buffer, not an estimate. Post-cutover: application-level checks (job counts on the board, assignment history renders, the response clock derives per BR-04[3]) instantiate as cutover checks[8].

§4

Rollback Plan & Cutover Runbook

mandatory 1 decision1 evidence rule validators: point_of_no_return_named_explicitly · go_no_go_gate_has_owner_and_numeric_threshold · cutover_step_has_owner_and_duration

The point of no return is a named step; a failed gate is an automatic no-go. The next window is pre-booked, so no-go costs a week, not a debate.

Point of no return: the write-authority transfer (the new system becomes the job master; legacy intake stops). Before it, rollback is restore-and-resync (40 rehearsed minutes). After it, forward-fix only, through the quarantine path (FLW-03 exception[9]). Fallback-to-source bounded: 24 h post-cutover; past it the delta volume makes restore worse than forward-fix, measured from the rehearsal.

GateCriterion (numeric)Owner
G1Reconciliation ladder all-green (§3 criteria) R. Singh
G2The DV cutover checks pass (checks[8]) Release owner
G3The 4-hour window holds against the rehearsed timeline E. Sandoval
TimeStepOwnerDuration (rehearsed)
02:00Freeze legacy writesR. Singh 10 m
02:10Final delta replayEngineer 30 m
02:40Reconciliation ladderR. Singh 45 m
03:25Gates G1 / G2Owners above 15 m
03:40 Write-authority transfer: THE POINT OF NO RETURN E. Sandoval10 m
03:50DV cutover checksRelease owner 30 m
04:20INT-3 retirement flag (sunset[4]) Engineer10 m
06:00Dispatch hours open; on-call doubled On-calln/a
§5

Open Questions

mandatory1 decision
QuestionOwnerAnswer byBlocks
Does the legacy change log retain deltas long enough if the cutover slips a week past the freeze rehearsal (retention on the legacy side is enterprise IT's)? R. SinghSep 12, 2026 The catch-up bound only
Refs

References & Package Contents

In the Specira workspace

specira [1] Data model: Job, Assignment entities app.specira.ai/projects/dispatch-modernization/artifacts/data-model
specira [2] Data classification: labels, retention rules app.specira.ai/projects/dispatch-modernization/artifacts/data-classification
specira [3] Business rules: BR-04 response clock, BR-06 retention app.specira.ai/projects/dispatch-modernization/artifacts/business-rules
specira [4] Integration inventory: INT-3 sunset, INT-5 roster authority app.specira.ai/projects/dispatch-modernization/artifacts/integration-inventory
specira [5] Architecture: the INT-3 transitional seam design app.specira.ai/projects/dispatch-modernization/artifacts/architecture#int-3
specira [6] Decision log: the migration-approach decision app.specira.ai/projects/dispatch-modernization/artifacts/decision-log
specira [7] Performance test scenarios: the synthetic dataset app.specira.ai/projects/dispatch-modernization/artifacts/performance-test-scenarios#datasets
specira [8] Deployment verification: the cutover checks app.specira.ai/projects/dispatch-modernization/artifacts/deployment-verification
specira [9] Process flows: FLW-03 quarantine exception path app.specira.ai/projects/dispatch-modernization/artifacts/process-flows#flw-03
Generated by Specira · template data_migration v2 (draft) · pack specira_default_delivery lineage 3e4a512b…e766 · page 1 of 5