How field records leave the spreadsheet
The most important records in a production company often live in one workbook on one person's PC, with shortcuts on the desktop and copies scattered elsewhere. We turn that workbook into one book inside the company HQ, prove that not a single total changed, and then open the doors into it: a form, the person's agent and, as the next step, the work orders themselves.
A look under the hood: finding where the data really lives, a converter that flags instead of fixing, the two proofs, and why every value is chosen from a register rather than typed.
The short version
First we find the real working file, not the copy, and read its formulas and distinct values. Then we design one model for the whole family of records: registers of parcels, crops, products and people; season plans; operations; treatments; yield. A converter reads the workbook into that model and never invents: anything it cannot map is flagged for a human, not fixed. Before anyone types a new row, the totals are proven against the sheet twice, once converter against sheet and once HQ against sheet, first into a disposable database and then into production. From then on nothing is typed free-hand: every value in the entry form is pre-selected from a register.
The whole season is loaded with each operation and treatment carrying the identity of the worker who did it. The workbook can be exported back out at any time, so nobody has to give up the shape they know.
The workbook leaves the PC and the numbers do not change. The converter flags what it cannot map; the book (green) is proven against the sheet before it goes live.
Find where the data really lives
The first job is not technical. Nine shortcuts pointed at one folder on one PC; only copies reached the cloud. The formulas in that workbook, and the distinct values people had actually typed over the years, are the real specification. We read those before designing anything, because a model built from the column headers alone would have been wrong in every place the person had quietly worked around the sheet.
Out of that reading comes one model for the whole family, not one table per tab. Arable and orchard records share the same registers and the same rules; they differ in the vocabulary of operations and treatments, which is itself a register.
A converter that never invents
The converter's job is to be honest, not helpful. A cell it cannot map to a register value is a finding, listed with the row it came from, not a best guess. Dates, quantities and money are carried exactly; nothing is rounded, cleaned or normalized on the way in. A season that does not reconcile does not load.
Then the proof. The converter's totals are compared to the sheet's own totals; the HQ's totals, read back through the app, are compared to the sheet again. Both must match to the last unit before the switch date is set. Computed values are never typed: the summary the manager sees is calculated from the records, so it cannot drift from them.
Three doors, one book. The form and the person's agent (green) write records through the same registers under the same validation; the work orders are the next door to open. There is no second place for a number to live.
Three doors into the same book
A record can enter through the web form, where every value is chosen from a register; through the person's agent, dictated in plain words and written by the same operation the form uses; and, as the next step, from a work order, when what a worker actually did on a parcel becomes a book entry. Each door goes through the same validation and lands in the same table with the same audit row.
The agent door is deliberately narrow: it can record an operation and record a treatment, and it can show the season summary or one table. It cannot delete, cannot redefine a register, cannot post anything outside its person's scope. Skill guards on the agent side repeat the same rules, so a mis-heard dictation is refused before it reaches the API.
What comes next is earned, not assumed
Once the book is trustworthy, the interesting joins become possible: operations against fuel and machine hours from the fleet, treatments against the weather window that day, yield against the plan. That is the road to the number this whole system exists to produce, a defensible cost per kilogram per parcel per season. We do not suggest before we can measure, and we do not automate before the suggestions have been right.
Trust burned by a confident wrong number is very hard to win back in a company that has run on feeling for decades. So the order is fixed: measure reliably, report clearly, then suggest, then automate the safe suggestions.
Prove it to the last unit, twice, before anyone types a new row. Then never let a number be typed that could have been computed.