Disclaimer: Independent product concept by Kaushal Khodifad. Not a live commercial product.return to portfolio
Disclaimer: Independent product concept by Kaushal Khodifad.
Traverse · User journey

The Day

One technician, one Club, one trip, at the Sowing stage. No signal from the moment they leave the house until the moment they get back to a road head. The reconciliation argument is worth nothing if the round does not close inside a working day, so this tab puts the day on a clock and shows the arithmetic instead of asserting it.

1Multi-stage capture is not extra workIt is the error-reduction mechanism. Six observations of one boundary, weighted by each capture's own sigma, beat any single walk. The day has to make room for one of those six.
2The constraint is minutes, not motivationBoundary-walk time scales with perimeter, so a club's anchor holding costs several times a half-acre plot. The stop budget is arithmetic, and it either closes or it does not.
3Offline is the normal caseNot an error state. 43 captures across this fleet are still sitting on handsets, the oldest for 43 days. A design that treats the network as present loses that work.

What is real here, and what is not. The stop order, the leg distances and the arrival clock are computed by the routing engine at render. The per-stop facts are the fixture's own records: measured area, walk duration, fix quality, satellite count, vertex count, method. The tolerance band each variance is judged against is computed from plot size, device class and capture method at render. Battery is the one stated model on the page and every constant in it is exposed. The world itself is synthetic and every GNSS capture in it is simulated. SYNTHETIC DATA. Every company, village, club, farmer, plot boundary, capture, contract, rate and settlement in this file is fabricated for a product study. No real person, holding or agreement is represented. District and state names are real Indian administrative names used only to anchor the belt; village centroids are approximate synthetic points inside it and do not correspond to any actual settlement.

Nagulapalle Stream SideNagulapalle Thanda, Warangal, TelanganaSowing
TechnicianRamulu M.8 months, 9 h training, basic with the phone
HandsetEntry Android (2020 class)L1 single frequency, sigma 5.6 m
ConnectivityNone at the fieldnone at field, none at hamlet
Sky1.14x obstructionundulating, scattered tamarind and neem windbreaks
Stops21 plots, 20 farmers50.0 contracted acres
Roadfair-weather trackclub meets on the 9 and 27 of the month
05:30clock1/31step0captured0skipped0queued ops0.00 kmwalked95%batteryRs 0unexplained

Hand-rolled SVG from each plot's own ring in local metres, north up. Click a plot to jump the timeline to that farmer. Stop order and leg distances come from planRoute at render: nearest neighbour, then 3 improving 2-opt swaps.

05:30HomeWi-Fi95%
Synchome broadband
Operations in queue0
Payload0 KB
Batch size50 ops
Conflicts0
Retries0
Drain order

By sequence number, never by timestamp. Field handset clocks drift, and a log that reorders itself is a log that cannot be replayed.

Fixture sync session, not a live upload

The same instant on the handset. The full flow lives on the Field App tab; this is the one screen that is in front of the technician right now.

05:30Morning sync, at homeBefore the field · 4.6 min
Ramulu M.'s house, Nagulapalle Thanda
What the technician sees

The queue screen from last night, still showing whatever did not go up. One tap on Sync, then a list draining top to bottom.

What the system does

Drains the write-ahead queue in seq order. Each op carries its own id, so a batch that half-uploaded last night is deduplicated rather than written twice. Mean session for this handset: 275 s across 14 completed sessions in the record.

What could go wrong

The drain reports source "offline" because the upload never completed. Nothing is lost, but the technician leaves with yesterday still on the phone.

The recovery

Every op rolls back to pending and its attempt counter increments. The day proceeds; the backlog is a supervisor signal, not a blocker.

Loading the capture records. The route, the clock and the budget are already complete because they come from world.json; walk duration, fix quality, vertex count and method arrive with the separate capture chunk.

Part 01The time budgetTwenty farmers is the constraint. This is the arithmetic that has to close.
Where the working day goesNagulapalle Stream Side · 21 stops
LineMinutesWhere the number comes from
Morning sync at home4.6Mean of this handset's 14 completed sync sessions
Pre-load and route check12.0Stated assumption
Route computation0.2Engine, at render
Travel, village centre and 21 legs13.1planRoute, 2,619 m at 12 km/h
Capture and conversation, 21 stops335.3serviceMinutes: fixed admin plus the boundary walk, weighted for Sowing
Lunch35.0Stated assumption
Sync attempt at the road head5.2Fixture session SYN-086, 310 s on 2G, retried
Evening drain, after hours3.2Fixture session SYN-083, 192 s
Handover and notes5.0Stated assumption
Planned day413.6against a 480 minute day, leaving +66 min
The capture fits
19.1Minutes a stop gets. 480 minus everything that is not a stop, divided by 21.
16.0Minutes a stop needs, averaged over this club. Fixed admin plus the boundary walk at 1.1 m/s, weighted for Sowing.
1.16Clubs this technician clears in a day at this plan quality.
13Working days a month the round costs, at a stated caseload of 152 farmers visited twice a month.

A stop has 19.1 minutes and the plan needs 16.0, so the round closes with 1h 06m of slack. That slack is not comfort. It is exactly what the day's exceptions eat. A re-walk under the tree line costs a stop's worth of minutes on its own, and the capture records for this club are still loading. The number that moves this most is not effort. It is plot size: the boundary walk is proportional to perimeter, so the anchor holding in this club costs several times what a half-acre plot costs.

How the design buys the minutes back
Order the stops instead of walking the farmer list+8.9 min

planRoute: 4,393 m in roster order against 2,619 m after 3 2-opt swaps, at 12 km/h.

Limit. Great-circle legs. There is no road graph in this model, and inventing one would be a fiction. The ORDER is robust to that; the absolute metres are not.

Confirm against local storage, never against a servernot measurable

Zero network operations between the pre-load at 05:35 and the road head at the end of the round. The queue is where a capture becomes durable, so the confirm screen returns in the time a local write takes rather than in the time a 2G round trip would take if there were one.

Limit. The minutes saved cannot be measured from this fixture, because no online-required variant of the day exists in it. What the fixture does show is the cost of assuming connectivity: 43 captures across the fleet are still on handsets, the oldest for over a month.

Part 02What goes on the phone before the network disappearsThe pre-load is the last decision with connectivity. Every line is priced.
Pre-load manifestmeasured at render
Plot records and boundariesrequired30.4 KB

Buys. The boundary to walk against, the contracted area, the survey number, the crop mix.

Cost of leaving it out. Nothing to capture against. The trip cannot happen.

Farmer and club rosterrequired4.3 KB

Buys. Names, tenure, which plots belong to whom, who the club lead is.

Cost of leaving it out. The technician cannot tell which plot in the block is whose.

Shared-edge index for the block4.4 KB

Buys. Which vertices two neighbours hold in common. It is the constraint that makes six captures worth more than six times one capture, and it is what lets an overlap be caught in the field rather than in a settlement meeting.

Cost of leaving it out. Overlaps and gaps are only found back at the office, after the technician has left the village and the farmer has gone home.

Earlier lifecycle capturesnot shipped

Buys. Last stage's boundary drawn under the live trace, so a technician walking the wrong field sees it immediately.

Why not. Stage-jump errors survive the whole season. Six of them are already in this world.

Stages, crops, device profile, villagerequired1.8 KB

Buys. Stage definitions, crop rates, the handset's own sigma, the local origin.

Cost of leaving it out. No tolerance band can be computed on the device.

Satellite basemap tilesnot shipped

Buys. Nothing this stage needs. At 10 m a sub-half-hectare boundary is not separable, so a basemap cannot verify what the walk measures.

Why not. Deliberate. Shipping tiles would add tens of megabytes to buy a picture that cannot settle a boundary question.

On the handset when the technician leaves40.9 KB

The whole club, roster included, is smaller than a single photograph. That is the argument for pre-loading everything rather than paging it: there is no bandwidth to save that is worth the risk of a technician standing in a field without the record they need. The one line deliberately left at zero is satellite imagery.

Part 03The constraint nobody plans forBattery is a model, not a measurement, so every constant in it is on the table.
Battery, a stated modelassumption, not measured
05:30 · 96%15% floorend of day · 40%
32 minGNSS receiver on. Placeholder until the capture records load; the real walk durations replace it.
1225mAh drawn across the round.
40%Charge left when the batch is uploaded.

At 55% health the round never gets near the floor. Drag the slider down: the day starts failing somewhere in the fifties, which is where a three-year-old cell sits. That makes the low-battery risk a handset-refresh question, not a field-discipline one, and it points at the same conclusion as the accuracy argument.

Every constant in this model
Working day480 minengine defaultEight hours. The default clubsPerDay is measured against.
Between-plot speed12 km/hengine defaultplanRoute default. A motorcycle on field tracks, not a road graph.
Fixed minutes at a stop8 minengine defaultplanRoute default: finding the farmer, the conversation, the form.
Pre-load and route plan12 minstatedBundle download plus a check of the stop list, before leaving home.
First plot of the round8 amstatedThe sync and pre-load happen at 05:30 on household power, while the link is uncontended. The household and the ride out in between are not modelled minute by minute.
Lunch and rest35 minstatedTaken at the first stop that ends after 12:30, or after the last stop if the round closes first.
Screen-on per stop, outside the walk2 minstatedOpening the plot card, confirming, entering the crop. Drives battery only.
Handset battery, rated4000 mAhstatedA 2020-class Android. Not measured; the health slider exists because of that.
Draw, GNSS and screen on560 mAstatedContinuous fix during a boundary walk.
Draw, screen on, no fix210 mAstatedForms and review screens.
Draw, pocket idle95 mAstatedBetween stops, travelling, at lunch.
Charge leaving home96 %statedOff the charger at 05:30.
Part 04What reaches a humanThe round ends with a ranked queue, not a folder of boundaries. Everything inside the band closed itself.
Raised for the supervisorranked by unexplained value
9Stops that need nobody. The whole difference sat inside the band this handset can resolve.
8Variances bigger than the measurement can explain.
4Plots with no Sowing capture at all.
Rs 1,25,447Contract value in the unexplained part of the gap, at the benchmark rate per acre.
StopFarmerWhat happenedContractedMeasuredDifferenceBandUnexplained
19Srisailam C.310/3Measured under contractRe-walk once at the next visit. If the second walk agrees, this is a contract question for the supervisor, not a field dispute with the farmer.2.6251.927-26.6%±7.6%Rs 29,954
12Odelu R.69/9Measured under contractRe-walk once at the next visit. If the second walk agrees, this is a contract question for the supervisor, not a field dispute with the farmer.3.5502.921-17.7%±6.1%Rs 24,816
5Nagamani M.225/7Sown area over contractIssue inputs against the contracted area and open a contract amendment for the excess. Do not top up in the field.4.4505.042+13.3%±5.1%Rs 21,811
2Latha G.385/8Measured under contractRe-walk once at the next visit. If the second walk agrees, this is a contract question for the supervisor, not a field dispute with the farmer.4.1253.567-13.5%±5.4%Rs 20,041
14Lakshmi D.246/3Measured under contractRe-walk once at the next visit. If the second walk agrees, this is a contract question for the supervisor, not a field dispute with the farmer.1.0500.729-30.6%±14.8%Rs 9,947
20Pochamma L.465/8Measured under contractRe-walk once at the next visit. If the second walk agrees, this is a contract question for the supervisor, not a field dispute with the farmer.0.5250.268-49.0%±24.3%Rs 7,765
6Devender G.473/8Measured under contractRe-walk once at the next visit. If the second walk agrees, this is a contract question for the supervisor, not a field dispute with the farmer.0.6500.387-40.5%±20.9%Rs 7,643
7Srinivas L.274/4Measured under contractRe-walk once at the next visit. If the second walk agrees, this is a contract question for the supervisor, not a field dispute with the farmer.9.8759.536-3.4%±2.8%Rs 3,471
8Srisailam P.256/2No Sowing captureSchedule a revisit inside the sowing window. Without this stage the plot reconciles from five captures instead of six and its settlement band stays wider all season.0.475--±26.1%-
10Renuka Y.351/5No Sowing captureSchedule a revisit inside the sowing window. Without this stage the plot reconciles from five captures instead of six and its settlement band stays wider all season.0.675--±20.3%-
17Praveen L.121/2No Sowing captureSchedule a revisit inside the sowing window. Without this stage the plot reconciles from five captures instead of six and its settlement band stays wider all season.0.875--±16.8%-
18Mahesh T.361/9No Sowing captureSchedule a revisit inside the sowing window. Without this stage the plot reconciles from five captures instead of six and its settlement band stays wider all season.4.675--±5.0%-

The band column is the whole argument in one place. Judge these variances against zero and every row looks like a dispute; judge them against what a 5.0 m single-frequency fix can resolve on a plot that size and 9 of 21 stops close themselves.

The counter-intuitive part. A better handset raises more exceptions here, not fewer. Switch to the club on the dual-frequency phone and the band collapses to about a percent on a large holding, so differences that a 5 m fix could honestly blame on itself move into the column marked “the contract is wrong”. That is the instrument doing its job: it does not create disputes, it stops hiding them. It is also why device class is a first-class data attribute in this model rather than a procurement footnote.

Limit. The band is computed from the engine's device-class sigma, not from each capture's own sigma, which runs higher under canopy and a poor sky. On a weak-fix capture the band shown here is therefore slightly tighter than the truth, which makes this list marginally over-inclusive rather than under-inclusive. That is the right direction for an error to run when money is downstream of it.

What the round produces is not a folder of boundaries. It is one more weighted observation of every plot in the club, plus the shared vertices that tie them to each other. Reconciliation is where those observations become a single boundary with an interval on it, and Offline is the queue that gets them there without a network.

↑ Independent product concept by Kaushal Khodifad. Traverse is an independent product concept by Kaushal Khodifad; it is not a real company or a commercial product. It explores the lifecycle farm-plot capture for contract farming space. Not a live commercial product. Data is illustrative.

Return to portfolioOpen the live demo