All three routes

Route 02 · identity sheet · 11:20, the round is running

If the rep will not open it, nothing was proven.

Route 02 treats adoption as the whole problem. It is drawn in the only face already licensed and sitting inside the repository, on warm paper with a deep indigo ink, one terracotta accent, and a state language that refuses to use red — because in this product the person reading the status is the person being judged by it. Built to convert the field rep first, and the manager who has to ask for adoption second.

The letter drawn in one movement · round caps · the right arm starts three units higher · the node is the only place the accent enters the mark

01 · The mark

One letter, argued as a movement.

Route 01 cut the letter. Route 02 draws it — in one gesture, with round ends, and with one deliberate imbalance.

Construction · guides at the right arm's start (y 10), the left arm's start (y 13), the meeting line (y 34.6) and the two outer arm edges (x 9 / 39). The node sits below the meeting line, not on it.

Grid
48 units square, six-unit modules. The arms are strokes 5.4 units wide with round caps, so every end reads as a fingertip rather than a cut.
The one imbalance
The right arm starts at y 10 and the left at y 13, and the right arm stops 1.6 units short of the left one's axis. This is the only inexactness in the mark, and it is deliberate: a day never runs symmetrically, and a mark that looks measured would belong to route 01.
The node
A 9.8-unit terracotta circle at the meeting point, sitting 0.6 units below the line the arms actually cross on — placed by hand, not snapped. It is the only place the accent enters the mark, and it stands for the one visit that mattered today.
Clear space
Six units on every side. The round caps already soften the edge, so the clear space is measured from the cap, not from the path's end point.
Minimum size
24 px with the node. 16 px without it — the node is 4 px across at that size and turns to mud. Never below 16 px.
App icon
The mark sits at 62% of a 192-unit maskable plate on warm paper, with the node enlarged to 6 units of the plate so it survives Android's circular mask.
Files
Vector only, exported at 16, 24, 32, 48, 192 and 512. The logo currently in the repository is a 247,056-byte image export and cannot be recoloured above 16 px.
Full · ink + node
Mono · node dropped
Reverse · paper on ink
16 px without the node, 24 px with it

Lockup A · the house lockup

Vanisree Your day · and the proof of it

Title case, not caps: the name is said aloud, not stamped. The descriptor is optional below 140 px and is the first thing to go.

Lockup B · stacked, for splash and installer

Vanisree

The splash, the installer tile and the store listing — the three places a rep meets the brand before opening anything.

Lockup C · the neutral descriptor lockup

Field Day System · the whole round, in one place

For a team that is not Vanisree: the same mark and descriptor, a neutral product name, and no house name to negotiate over.

THE ONE RULE THE MARK OBEYS

The mark is allowed to be imperfect in exactly one place.

Everything else about this identity — the grid, the contrast measurements, the 16 px test — is exact. The single asymmetrical arm is what makes it read as human, and a second bit of looseness would read as sloppy instead.

02 · Type

Two good faces already on the machine, and one new one that earns its place.

This sheet loads no webfonts. Manrope and Mukta are the declared stacks; where they are not installed, the specimens below render in the closest system face. Manrope is already bundled in the repository at sales_tracker/assets/fonts/Manrope-Variable.ttf, so route 02 costs almost nothing to adopt.

Display
Manrope, variable, weight 700–800. Humanist geometric with open apertures, which is what stops a status word from looking like a lecture. Already licensed and inside the product.
Body
Mukta — the one addition this route asks for. It carries Devanagari and Latin in the same family, so a Hindi label and an English figure sit on one baseline without a fallback face appearing mid-screen.
Data
Mono, tabular, exactly as in routes 01 and 03. Times, distances, amounts.

TYPE RULES

  • Nothing in the rep's app is smaller than 15 px. This screen is read at arm's length, outdoors, sometimes with a cracked protector.
  • Status words are set in the display face, bold. The colour is the second signal, never the first.
  • Devanagari and Latin never mix within one word. One script per string, one baseline per screen.
  • The wordmark ships as outlines. A variable face is exactly the kind of thing a device substitutes silently.

Display · the face that carries the day

Aa

Eleven visits. Two left. The round is still running.


Body · Mukta, with its Devanagari companion on the same baseline

आज का राउंड · eleven stops planned, four counters booked, one order already raised. Punch out when the last shop closes.

11:20 · 6 of 11 done · 41,208 km · 24 km since the last stop


Devanagari wordmark companion · NOT YET VERIFIED

वनिश्री

This spelling is ours, not the client's. It must be confirmed by their office before any script version of the wordmark is produced. The Hindi user-interface strings above are a proposal and carry no such risk.

03 · Colour

Warm paper, indigo ink, terracotta for the one thing you can do next.

Every ratio below was measured from these exact values. Text needs 4.5:1; a meaningful marker needs 3:1.

TokenOKLchResolves to
--bg0.975 0.006 80#f9f6f2
--surface0.995 0.006 80#fffdf9
--fg0.24 0.06 275#171c3b
--muted0.52 0.05 275#606786
--border0.905 0.014 80#e5dfd6
--accent0.50 0.15 50#a34100
--accent-hover0.44 0.15 50#8a3600
--ochre0.80 0.13 70#f3ae58
--state-done0.535 0.13 158#00834f
PairMeasuredVerdict
Ink on warm paper15.44:1pass
Muted on warm paper5.16:1pass
Accent on warm paper (the eyebrow)5.90:1pass
White on accent (the punch action)6.34:1pass
White on accent-hover8.19:1rises
Ink on border12.50:1pass
Green marker on warm paper (a dot, not text)4.48:1pass
Ochre on warm paper1.78:1never text, never a marker
Ink on ochre (the highlight band)8.70:1pass

WHAT THE OCHRE IS ACTUALLY FOR

Ochre measures 1.78:1 against this paper, so it can carry nothing on its own — not a label, not a status dot. Used the other way round it is the strongest tool in the palette: an ink text on an ochre band measures 8.70:1, which is a highlighter pen. Route 02 uses ochre for exactly that, and for nothing else.

RULES THIS TABLE FORCES

  • Hover darkens. The primary action moves from 6.34:1 to 8.19:1 — contrast rises with the state change.
  • Green is a marker, never a word. At 4.48:1 it is a hair under the text threshold; the word beside it is ink.
  • The accent appears on the eyebrow and on the one action per screen. Inside the rep's app that action is the punch button, and there is only ever one of it.

04 · State

Shape first, word second, colour third — and no red at all.

In route 01 the verdict is the product. In route 02 the reader is the product's user, and a screen that turns red at a rep for a weak signal is how adoption dies. So this route carries state in a shape and a word, and bans red from status entirely.

THE RULE THAT FOLLOWS

Red is for deleting something, and for nothing else.

Delete a draft visit, remove an attachment, discard an order — those are destructive, and they are the only red in the app. A missing punch-out is not destructive; it is a fact, and it gets a word and a shape. This single restriction is what makes the app feel like it is on the rep's side without weakening a single check.

Done

done

Filled green dot, ink word. The green dot measures 4.48:1 against the paper, which clears the 3:1 marker threshold but not the 4.5:1 text threshold — so the meaning lives in the word, and the dot only confirms it.

Needs a look

needs a look

A hollow ring in ink — a shape, not a hue. A visit with no outcome, a fix that landed 400 metres off the beat, an odometer that barely moved. It asks; it does not accuse.

Not recorded

not recorded

A filled ink square. The check never ran — the signal dropped, the permission was refused, the phone was off. A fact about the day, stated the same way for the managing director and for the newest rep.

All three carry meaning in black and white. None of them is a colour a rep can read as blame, and every one of them survives a screenshot forwarded to a manager.

05 · The identity in the rep's hand

The two screens that decide whether any of this gets adopted.

Sample data. The layout, the wording and the rules are the deliverable; no figure here is a measurement or a product claim.

Vanisree11:20 · Tue

आज का राउंड · today's round

6 of 11 done

Next stop · Mangalam Kiranastart the visit
09:12

Shivam Traders

Order ₹42,800 · done

11:40

Mangalam Kirana

4 km · last visited 12 days ago

14:40

Shivam Traders

Return visit · needs a look

17:05

Pali Road Agency

Beat 3 · order likely

Working offline
Everything is saved on the phone. 4 visits will sync by themselves.
Screen A — the rep's home: today's round. One action on the whole screen, and it is the next thing she has to do. States are a dot and a word; the offline banner is ink on ochre at 8.70:1, not a warning colour, because losing signal is normal on this job and the app should not make it feel like a fault. Sample data.
Punch out19:26 · Tue

Closing the day

Two readings and the day is closed. Both are captured here — neither is typed.

Odometer 41,262 photograph taken · 19:26 · location ±4 m
Punch-in07:41 Punch-out19:26 Distance today54 km Visits closed11 of 11
Close the daysaves to this phone first

A punch-out with no reading is allowed, and is recorded as not recorded — never as an error.

Screen B — punch out, the moment the day becomes evidence. The odometer is photographed, not entered: a typed number is a number a manager cannot trust, and asking a rep to type it is how the check gets abandoned. The action saves locally first and syncs when it can. Sample data.

06 · Voice

The app talks to one person at a time, and it is never the auditor.

Where the rep meets itShipping todayRoute 02 writes
The install promptThe manifest's description currently reads “A new Flutter project.” — the app's first sentence to a rep is boilerplate.“Your day, and the proof of it. Works without network.”
The line the manager repeatsThe repository tagline is “Track your team, close more deals” — it addresses the manager and never the person doing the work.“Your round, your orders, your day — captured in two taps.”
The first screen, before any signalToday, silence.“Everything is saved on this phone. Nothing you record today will be lost.”
A visit that cannot be verifiedToday the row simply shows nothing.“No location fix here. The visit still counts — it is marked not recorded, not wrong.”
The end of the dayToday, no closing statement.“11 visits closed. Two need a look. Nothing is waiting on you.”

RULE 01

Address one rep, never a population. “Your round”, not “field force activity”.

RULE 02

Say what was saved before saying what failed. Local first is a promise, not an architecture note.

RULE 03

A gap is described, never graded. No “poor”, no “non-compliant”, no exclamation marks.

RULE 04

Two taps or fewer, and the copy says how many. “Punch in” is two words and one press.

07 · Why it converts

Route 02 sells to the person who has to use it, and it is the only honest route to the manager.

THE FIELD REP

“This protects me as much as it checks me.”

The geometry does the arguing: a round cap, an arm that is not quite the same as its twin, and a status system with no red in it. Nothing on the screen is looking for someone to blame.

THE MANAGER

“My team actually opens it.”

Adoption is the manager's real risk, not accuracy. Route 02 converts him by removing the objection he hears in every meeting: “the reps won't use it.”

THE ZONAL HEAD

“I can change something before the month closes.”

A live round with a needs-a-look queue arrives in time to act on. Rollups that open on what went wrong rather than on totals.

WHAT THIS ROUTE COSTS

  • One new licensed face. Mukta is the only addition, and it is the reason the Hindi strings can ship at all without a fallback breaking the baseline.
  • The shape-first state system has to be built once and used everywhere, or the ban on red collapses the first time a developer is in a hurry.
  • Every empty state needs writing. This route's trust comes from what the app says when there is nothing to show, and today those screens say nothing.

WHERE IT FAILS

  • It is the softest route on the owner's desk. Warm paper and rounded caps do not, by themselves, convince someone paying for a team they cannot see. Route 02 needs route 01's record or route 03's ledger to close.
  • Friendly can read as unserious. The moment the brand is used on a quotation or a contract, route 02 needs the neutral lockup and the mono figures to hold the room.
  • Adoption is not measurable yet. The product has no instrumentation for install-to-first-visit, so this route's central claim cannot be proven until that exists.