Case study
From an Excel spreadsheet to an app that works with no signal.
An agricultural products company whose reps visit growers on the farm, walk through the fertilizer plan for a field, and show how the company's product changes the plan and its cost.
- Who
- An agricultural sales team
- Used
- In the field, offline
- Built
- Custom app
The problem
- The recommendation lived in a desktop spreadsheet with several tabs of inputs and formulas. It worked at a desk and was awkward on a phone in a field.
- The spreadsheet had quiet errors reps could not see. One tab checked against the wrong crop's limit after a copy and paste slip, so its advice line never changed. A blank entry gave a spreadsheet error instead of a message.
- Prices move with the market, and every copy of the spreadsheet had to be updated by hand.
- No signal on the farm, so anything that needed a connection failed where it was needed.
- Reps had nothing clean to leave with the grower.
What we noticed
We tested the fix on the client's own phone.
Reps saw the top bar of the app go blurry every time they opened it from the home screen. Our first fix was reasoned from the code, and the bug came back. So we put four candidate fixes on test builds, checked each on the client's own phone, ruled all four out, and found the real cause in one setting. The fix has a small visible cost, chosen on purpose, because a bar you cannot read on every launch is worse.
Built for a phone in a field.
Everything a rep needs is stored on the phone, so a dead zone changes nothing.
"Print" did nothing, so we built the PDF ourselves.
In a home-screen app on an iPhone the print button silently does nothing. A rep reported it from the field. The app now builds the summary itself and hands it to the phone's share sheet. That turned out better: the rep texts it to the grower before leaving.
The office sync moves numbers. The formulas stay in the app.
Automated tests check the app's math against the original spreadsheet, so a stray spreadsheet edit cannot change a recommendation. We matched the spreadsheet's results, and every place we differ on purpose, including the fix for its copy and paste slip, is written down and approved.
What we built
-
On the phone
- Installs to the phone's home screen and works fully offline.
- Updates itself when reopened.
- Light and dark themes. Access limited to company staff.
-
For the grower
- Saved visits kept on the phone. Grower details never leave the device.
- A one-page summary PDF the rep can text or email to the grower before leaving the field.
-
The math
- Crop calculators that recalculate on every keystroke, with the result and an at-a-glance verdict pinned to the bottom.
- A manure calculator whose result can be sent into a crop calculator, labelled and undoable.
- A cost comparison of the grower's current program and the recommended one, ending in a plain-English bottom line to read aloud.
-
From the office
- Prices and settings updated in the office's own spreadsheet. Every rep's app picks them up the next time it has signal, with no app update.
- Bad data is rejected, and the app keeps its last good numbers.
- A rep's own local price is never overwritten.
How a visit works now
Open the app. It opens from the home screen with or without signal, on the last field.
Enter the field. The rep types the field details and yield goal, and the recommendation updates with each keystroke.
Compare the cost. The rep reads the bottom line to the grower.
Save and share. Text the grower the one-page summary before driving off.
Back in signal. The app picks up new prices from the office on its own.
Where it stands
- In daily use by the company's sales team.
- We worked through several rounds of change requests with the client's sales leadership.
- We fixed the issues reps reported from the field.
What do you need built?
Start a project- Emailmatthew@klembarasolutions.com
- Phone(469) 999-7145