b j britannia:jahco
b j britannia:jahco
Data migration Demo 16 years, object by object
ISO 9001 · LRQA Sun 9 Aug 2026
Data migration

Fifteen years of trading, from 2011 to 2026. Every object in the current system is listed below with its record count, the years it spans and the module it lands in. Loading rows is the easy half; the half that matters is the dry run underneath, which recomputes the derived figures — invoiced totals, direct and indirect hours, on-time delivery — and compares them against the source before anything is switched off.

Years of history
16
2011 to 2026
Records
1,257,167
28 source objects
Mapped
88.3%
1,110,416 records mapped straight through
Needs a decision
4
Listed by name, not left to be found
Reconciliation
11 of 12
1 does not agree — see below
Records by year
Nothing is cut off at a date. The first job on file stays on file.
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
The tall years are the busy ones. Every bar is loaded — there is no cut-off date and no archive tier where the old jobs stop being searchable.
Every object in the current system
Largest first
SourceWhat it isRecordsYearsLands inState
TIMELINE Time card lines (bookings) 402,884 2011–2026 Labour bookings Mapped
STOCKTRN Stock transactions 194,552 2011–2026 Materials → movements Mapped
TIMECARD Time card headers The largest object. Fifteen years of shop hours. 148,226 2011–2026 Timesheets Mapped
DOCLINK Attached documents & drawings Files sit on the vendor's server. Needs a bulk export before cutover — the one item with an external dependency. 88,412 2011–2026 Job → documents Decision needed
PURCHLIN Purchase order lines 78,119 2011–2026 Purchasing → lines Mapped
QUOTELIN Quotation lines 61,408 2011–2026 Quotations → lines Mapped
PAYLINE Pay run lines 57,884 2011–2026 Payroll → history Decision needed
SALEINVL Customer invoice lines 54,007 2011–2026 Invoices → lines Mapped
ITPSIGN ITP sign-offs & hold points 41,338 2012–2026 Test & inspection → points Mapped
SUPPINV Supplier invoices 26,884 2011–2026 Supplier bills Mapped
PURCHHDR Purchase order headers 22,471 2011–2026 Purchasing Mapped
SALEINV Customer invoices 19,338 2011–2026 Invoices Mapped
JOBOPS Job operations & quoted hours Collapses to the two direct buckets, Manufacturing and Testing, exactly as configured today. 14,902 2011–2026 Jobs → quoted hours Mapped
QUOTEHDR Quotation headers 8,742 2011–2026 Quotations Mapped
JOBHDR Job headers (JN numbers) JN numbering is continuous from JN 167xxx. Sequence preserved, not renumbered. 6,918 2011–2026 Jobs Mapped
DELPERF Delivery performance history Derived in the current system. Recomputed here from promised and despatched dates and reconciled against it. 6,918 2011–2026 Reports → on-time delivery Mapped
ITPMAST Inspection & test plans 5,412 2012–2026 Test & inspection Mapped
MDRPACK Manufacturer's data reports 4,902 2011–2026 Test & inspection → data reports Mapped
STOCKMAS Material master 4,611 2011–2026 Materials Mapped
CUSTCONT Customer contacts 3,119 2011–2026 Customers → contacts Mapped
NCRREG Non-conformance register Custom-built in the current system. Dispositions, causes and corrective actions all carry across. 2,884 2012–2026 Non-conformances Mapped
CUSTOMER Customers & delivery addresses 1,284 2011–2026 Customers Mapped
SUPPLIER Suppliers 942 2011–2026 Suppliers Mapped
PAYRUN Pay runs Comes across as history in full. Whether pay runs are PROCESSED here or in the accounting package is the open question — see the panel below. 391 2011–2026 Payroll Decision needed
WELDQUAL Welder qualifications (ASME IX) 386 2011–2026 Test & inspection → welders Mapped
EMPLOYEE Employees 148 2011–2026 Team Mapped
CUSTREP Custom report definitions Rebuilt rather than lifted. Each one is listed by name so nothing is discovered missing after cutover. 64 2013–2026 Reports Decision needed
LABCAT Labour category master Direct and indirect flags come across as configured. Nothing is re-derived. 21 2011–2026 Settings → labour categories Mapped
Total 1,257,167
The labour category master comes across as configured, direct and indirect flags included. The job operations collapse into the same two direct buckets they are already collapsed into — nothing is re-derived and nothing is re-interpreted.
Dry run — reconciliation
Each measure recomputed from the loaded rows and compared against what the current system reports
11 of 12 agree
MeasureScopeCurrent systemLoaded
Job count FY2012 – FY2026 6,918 6,918 Agrees
Invoiced ex-GST FY2012 – FY2026 $188,442,918.14 $188,442,918.14 Agrees
Direct labour hours FY2012 – FY2026 1,284,662.5 1,284,662.5 Agrees
Indirect labour hours FY2012 – FY2026 318,904.0 318,904.0 Agrees
Direct / indirect split FY2026 to date 79.8% / 20.2% 79.8% / 20.2% Agrees
Purchase commitments FY2012 – FY2026 $71,338,204.88 $71,338,204.88 Agrees
Non-conformances raised FY2013 – FY2026 2,884 2,884 Agrees
On-time delivery FY2026 to date 84.6% 84.6% Agrees
Supplier on-time FY2026 to date 92% 92% Agrees
Quotation value $1,337.47 apart across 8,742 quotes. Traced to 31 quotes raised between March and July 2014 where a line was edited after the header total was stored, so the source header and its own lines disagree. The loaded figure is the sum of the lines. Listed by quote number in the exception log. FY2012 – FY2026 $641,882,447.02 $641,881,109.55 Difference
Stock on hand value Matches on a stocktake-date basis. Transactions before the 2016 store reorganisation carry no location, so they load with location UNASSIGNED rather than being dropped. As at cutover $1,884,229.40 $1,884,229.40 Agrees
Pay run gross Loaded as history regardless of where pay is processed after cutover. FY2012 – FY2026 $44,118,662.30 $44,118,662.30 Agrees
The one difference is named rather than rounded away. Thirty-one quotations raised between March and July 2014 have a stored header total that disagrees with their own lines, because a line was edited after the header was written. The loaded figure is the sum of the lines. Every one of the thirty-one is listed by quotation number in the exception log, so it is a decision rather than a surprise.
Payroll
Open, and better decided than assumed

The current system runs pay, and it runs it because that was worked out in-house rather than bought. The history above loads either way. What has not been decided is where pay is PROCESSED after cutover: in here, keeping time card to pay run as one step, or in the accounting package with approved hours pushed across. Both are built the same way up to the point the hours are approved.

Processed here
Time card → award interpretation → pay run → STP lodgement in one place, the way it works now. No second system, no export step.
Processed in the accounting package
Hours approved here and pushed across. Payroll compliance, STP and superannuation stay where the accounts are kept.
Either way the 57,884 historical pay lines load, so the history is not what is at stake — only where the next pay run is processed. Payroll
The items that need a decision
Not blockers. Things somebody has to choose, listed before cutover rather than after.
PAYRUN
Pay runs
Comes across as history in full. Whether pay runs are PROCESSED here or in the accounting package is the open question — see the panel below.
391 records
PAYLINE
Pay run lines
57,884 records
DOCLINK
Attached documents & drawings
Files sit on the vendor's server. Needs a bulk export before cutover — the one item with an external dependency.
88,412 records
CUSTREP
Custom report definitions
Rebuilt rather than lifted. Each one is listed by name so nothing is discovered missing after cutover.
64 records
The document store is the only item with an outside dependency: the files sit on the current vendor's server and need a bulk export before cutover. That is worth knowing on day one rather than in the last week.