← superlinear

Classified

Field Sales Capture

Somewhere in an industrial estate there is a steel tank full of liquid oxygen, and nobody at head office knows much about it. Who supplies it. What it feeds. Whether the contract is up.

This is how their gas sales team finds out. Every tank in the territory sits on a map; a rep drives to one, walks the site, records what they see. Signal or no signal, by the time they're back in the car it's counted.

what
a field-capture app for industrial gas sales
client
a national industrial gas business (under NDA)
we did
product design, data architecture, interface design, engineering
built as
an installable PWA, works offline with no app store
status
internal; not public

Real app, real screenshots, invented data. The client isn't named.

01

A map of everything you're responsible for

The app opens on the territory. Tanks are dots, coloured by how warm the opportunity is. Zoom in far enough and the map turns to satellite, because at an industrial estate the useful question is "which gate?".

You see your region and nobody else's: not a setting, just what comes down with your login.

  1. your region only, decided at loginI
  2. prospects, or customers already on our supplyII
  3. street map, then satellite as you zoom inIII
The sign-in screen: a mobile number field, and a note that the code goes to your registered work address
your number decides what you see
The map on a phone: clustered site pins across India, and a bottom sheet listing sites with Hot and Warm badges
all India, twelve prospects
The same map for a regional salesperson: zoomed to their territory, showing four sites
one rep, four
and on a laptop, for the people who review
The same map on a desktop browser, with the list docked to the left instead of sliding up from the bottom
the same app on a bigger screen, where the sheet becomes a docked panel

02

The part where you're standing in front of a tank

The client's questionnaire runs to roughly 185 questions, the kind of document that quietly never gets filled in.

So the app never shows you 185 of anything. One answer near the top, bulk gas or cylinders, decides which half of the form exists. No tank on site, and the tank section folds away. There's no submit button either: it saves on every keystroke.

  1. bulk or packaged decides what you're askedI
  2. a ring per section, a percentage for the siteII
  3. saves as you type; no submitIII
The capture form on a phone: customer address, a GPS field showing a live fix at 12 metres accuracy, industry segment and remarks, with the remaining sections collapsed below
answers, and a live GPS fix
A search-select opened as a bottom drawer, listing industry segments with Steel ticked
pickers slide up from the bottom
The top of the capture: status pill, lead-score pill, completion percentage and progress bar above the first section
status, score, how far through

03

Proof you were actually there

Reps are paid on what they collect, which creates an obvious temptation: fill it in from the car park.

So the camera opens inside the app, and the phone's live position is stamped on the shot as the shutter fires, rather than read from the file where it can be edited. The app grades its own evidence: at site, nearby, unverified.

It doesn't block anyone, since sites are large and GPS is bad indoors. The verdict just travels with the capture, and the regional head sees it.

  1. ten kinds of photo, some required, some notI
  2. live position bound at the shutter, never from the fileII
  3. a flag for the reviewer, not a locked doorIII
The site-entrance card: a plant frontage in low sun, tagged 'proof', marked synced, stamped 'At site, 82 m'
The application-area card: a worker rigging a part under an overhead crane, stamped 'At site, 27 m'
The vaporizer and manifold card: yellow gas pipework and valves in daylight, stamped with its own distance

04

Four people, one page

The rep and their manager open the same site and see two different apps.

A rep sees seven sections. Their regional head sees those plus two more: the lead score, and an internal layer holding margin, freight, credit risk and capex.

None of it is secret, since everyone here works for the same company. It's hidden because a rep who knows the margin will negotiate against it, and because credit risk: high is awkward to have on screen while the customer reads over your shoulder.

  1. salesperson: captures, region-scopedI
  2. regional head: reviews, owns the funnelII
  3. division head: one product line, all IndiaIII
  4. MD's office: reads everything, changes nothingIV
The capture page as a salesperson sees it: seven numbered sections, ending at Photos and visit-proof
what the rep sees: seven sections
The same page as a regional head sees it: nine sections, with Lead scoring and Internal review inserted before Photos
what their manager sees: nine
The lead scoring section, showing each rubric line and what it contributed to the score
inside a manager-only section

05

Industrial estates have terrible signal

Which is a problem, because reps are paid on the data that comes out of this app. Losing a site visit to a dead zone isn't an inconvenience; it's someone's money.

So nothing waits for the network. Every answer is written to the phone first, then queued, and the queue drains on its own when signal returns.

  1. written to the phone before the network is askedI
  2. photos queue separately from answersII
  3. nothing can be deleted, by anyone, everIII

06

What it's made of

If you need something like it built (a field sales app, a site survey tool, or an offline-first capture system for people who work away from a desk), this is the shape of it.

installable
a PWA on the home screen, no app store, updates itself
offline-first
written to the device before the network is asked; the queue drains on reconnect
visit proof
GPS bound at the shutter, not read from the file; distance graded per photo
role-based
four levels of visibility from the user record; adding a person is a data change, not a deploy
append-only
no delete for anyone; corrections keep their history
built with
React, TypeScript, Vite, Tailwind, TanStack Query, Leaflet, IndexedDB; FastAPI and Postgres

07

About the project

What is it?

An installable field sales app for a national industrial gas business. Reps visit sites with cryogenic tanks and record what they find, building a picture of a market the company knew only second-hand.

What did Superlinear do?

All of it: product definition, data architecture, design system and build. We started from a 185-question client questionnaire and an authorisation matrix, and worked out what the app in between should be.

Why can't anything be deleted?

Reps' incentives are tied to this dataset, and any delete button eventually becomes an argument. Corrections are edits that keep their history. Nobody has delete rights: not a regional head, not the MD's office, not us.

Why is everything on this page made up?

The customers, the tanks and the sales team belong to the client, not to us. So we ran the real app on invented data and photographed that. The interface, the logic and the lead score are genuinely the app's; only the facts are fiction.

Two slots stay empty for a different reason: a nameplate carries a real serial number, a PESO licence is a government document. Publishing one exposes a real company's assets; faking one fakes an official record.