Six years of livestock records. Fourteen Excel files. Inconsistent tag numbering across three different formats. Vaccination dates recorded in at least four different date formats. Milk records in kilograms for some years and litres for others.
This was the starting point when a 500-head commercial dairy operation in Mbarara approached us about migrating to Farm MGT. It's a fairly typical picture for established farms that have grown organically — the records exist, but they're distributed, inconsistent, and inaccessible as a whole.
Phase 1: Data Audit (Week 1)
Before writing a single migration script, we spent three days with the farm manager going through every file. The goal was to establish a canonical animal registry — a definitive list of every animal currently on the farm, with its correct tag number, date of birth, dam, and sire where known.
Of the 500 animals, we could build complete records for 387. For the remaining 113, we had partial information — typically age group, breed, and current lactation status, but missing specific birth dates or parentage. These were imported as partial records with flags for the farm manager to complete over time.
Phase 2: Historical Import (Weeks 2–3)
We built a custom import pipeline using pandas to normalise and load the historical data:
- Tag numbers standardised to a single format and cross-referenced against the canonical registry
- Dates normalised to ISO 8601 across all records
- Milk records converted uniformly to litres
- Vaccination records deduped (the same event appeared in multiple files in several cases)
- Financial records imported as historical transactions with the original dates preserved
The import ran against a staging Farm MGT instance first. The farm manager reviewed a 10% random sample before we signed off on the full production import.
Phase 3: Go-Live and Training (Week 4)
Go-live was a Monday morning. By Tuesday afternoon, the farm manager had recorded the day's milk production, two veterinary treatments, and a feed delivery — all via the mobile app, offline, from different parts of the farm.
The Android app training took two hours for the senior farm worker. He described the interface as "simpler than WhatsApp".
What Changed in 90 Days
Three months in, the farm manager shared some numbers that stood out:
- Time spent on monthly milk production reporting: down from 4 hours to 20 minutes
- Vaccination compliance: 100% for the quarter (first time in the farm's recorded history)
- Feed cost per litre of milk: tracked accurately for the first time, revealing one feed supplier was 18% more expensive per unit of milk produced than an alternative
- Two animals identified as candidates for culling based on 90-day lactation performance data — decision previously made by intuition alone
The blockchain passport module was activated at month two. The first animal passport QR code was scanned by a buyer at Kampala's main livestock market — and the sale price was 12% higher than the farm's previous average for comparable animals, attributed by the buyer to the verifiable health and vaccination record.