Back to Work

GeoMaxx

A location intelligence platform that helps businesses save 10 hours/month when planning expansions.

  • GIS
  • Location Intelligence
  • Front-End System
  • Dashboard
Role
Solo UX research, product design, AI-assisted front-end prototyping
Timeline
5-day sprint
Date
September-October 2026
Tools
Next.js, React, TypeScript, Mapbox GL JS, Canvas 2D, Radix/shadcn, Motion/beUI, Vitest, Playwright, Git

The full story5 min read

Helping retail expansion managers spend field time on locations they can justify.

I researched, designed, and built a location intelligence prototype for shortlisting Jakarta minimarket properties. It brings access, existing-branch exposure, evidence gaps, and recommendations into one reviewable workflow.

GeoMaxx desktop workspace: a Jakarta basemap, synthetic catchment, common study settings, and a selected candidate inspector.
The geographic backdrop is real. Every candidate, branch, competitor, access link, and commercial record is fictional.

The shortlist has to survive questions

Before committing time to a site survey, an expansion manager needs to explain why this property deserves a visit, which existing branches may be affected, and what remains unknown.

Three informal practitioner conversations revealed consequential judgment behind that decision:

Reported practice What I designed for
P1/P2 described barriers, road sides, and actual access changing a site’s appeal. Compare connected walking coverage and retain physical-access checks.
Participants described different judgments about nearby strong branches; P1/P2 also considered capacity constraints. Put branch conditions beside exposure, with room for a reasoned exception.
P1/P2 described reviewers challenging traffic observations and projection assumptions. Keep source, observation period, and limitations with the recommendation.
flowchart LR
    A["Property leads"] --> B["Desk shortlist<br/>GeoMaxx's scope"]
    B --> C["Field verification"]
    C --> D["Full feasibility<br/>and review"]
    style B fill:#e8f4fb,stroke:#1179b6,stroke-width:3px

The business opportunity: reduce repeated preparation and make field visits more purposeful. P1 reported permits and negotiation as major delays, so I kept the product’s efficiency hypothesis focused on desk work.

These conversations describe reported practices, not observed task performance. I used anonymized participant identifiers and paraphrases; the source notes include translation and editing.

Show what could change the decision

I bounded the prototype to three fictional properties, four existing branches, and up to two field visits. Visit, hold, and reject are all valid; recommending no visits is also valid. The product leaves the judgment with the manager.

Candidate comparison table showing all three properties on the same basis, with coverage, branch exposure, access context, and evidence gaps.
A common 500 m or 1 km walking-network assumption keeps comparison consistent. Neutral ordering avoids suggesting a predetermined winner.

Nearby on a map can mean a long walk

Site B sits 250 m from E03 in a straight line, but the fictional crossing makes the walking route 1,150 m. That changes how the manager should investigate shared coverage.

flowchart LR
    B["Site B"] -. "250 m straight line" .-> E["Branch E03"]
    B --> X["Only modeled crossing<br/>1,150 m total walking route"]
    X --> E
Site B selected with the modeled barrier, catchment, and expanded access explanation.
Walking coverage still leaves parking, frontage, deliveries, and the actual entrance to verify in the field.

Shared coverage needs business context

Site A combines substantial overlap with a report of queues and constrained space at E01. A visit could investigate that tradeoff; the capacity note cannot establish incremental sales.

Site C’s apparently attractive traffic count covers one payday-period hour. Its branch trend is unavailable. Both limitations become questions to resolve before relying on the site evidence.

Two denominators, two questions:

  • Candidate coverage: shared area with the union of existing catchments ÷ candidate area. Shared cells count once.
  • Branch exposure: shared area with a particular branch ÷ that branch’s area.

Neither percentage estimates customer switching or lost sales.

Give reviewers the reasoning, too

Recommendation form containing a hold decision, rationale, open checks, and the saved analysis basis.
Recommendation form containing a hold decision, rationale, open checks, and the saved analysis basis.

The manager saves a disposition, rationale, and open checks. The printable brief carries the common assumption, branch context, sources, caveats, and remaining questions into review.

Completed decision brief with ready-for-review status, synthetic-study disclosure, and a captured map.
Completed decision brief with ready-for-review status, synthetic-study disclosure, and a captured map.
Site A in the actual brief, showing its recommendation, rationale, coverage, branch context, source caveats, and verification questions.
The screenshot demonstrates one possible shortlist. These authored example decisions are not participant results or recommended real properties.

Click here to see the actual printable brief document.

Make the reasoning survive changes

I moved from the task and interaction map directly into coded prototyping, skipping separate wireframes. The map leads the desktop layout; collapsible panels reveal detail while preserving drafts. Mobile stacks the same working controls beneath the map.

flowchart LR
    A["Synthetic 50 m network<br/>plus source records"] --> B["TypeScript analysis<br/>reachability and overlap"]
    B --> C["React workspace<br/>compare, inspect, decide"]
    M["Mapbox GL JS<br/>geographic backdrop"] --> C
    C <--> S["Browser storage<br/>drafts and saved basis"]
    C --> P["Canvas map capture<br/>plus print / PDF brief"]
  • Repeatable spatial logic: breadth-first search on a bounded, four-way network; equal 50 × 50 m cells. The fine grid is a representation, not a claim about real-world data accuracy.
  • Explicit review: changing distance recalculates coverage for every site and branch. Existing observations keep their original values; saved decisions retain their original basis.
  • Resilient workflow: a synthetic network preview supports comparison when the map fails. Drafts persist in the same browser; there is no backend or team synchronization.
stateDiagram-v2
    state "Review needed" as ReviewNeeded
    state "Brief ready" as BriefReady
    [*] --> Unassessed
    Unassessed --> Saved: Save disposition and rationale
    Saved --> ReviewNeeded: Change analysis basis
    ReviewNeeded --> Saved: Explicitly resave or restore original basis
    Saved --> BriefReady: All three current, no unsaved edits, at most two visits

Verification: unit checks cover reachability, overlap denominators, duplicate counting, missing values, and brief readiness. Browser checks exercise recommendations, persistence, changed assumptions, printing, keyboard paths, and mobile layout. These verify implementation behavior; practitioner comprehension remains to be tested.

Satellite tiles returned HTTP 429 during case-study capture. The main map images use the available 3D style; the availability screenshot (see below) preserves the visible warning.

Satellite availability

Next step: put a number on the hypothesis, then test it

Illustrative capacity model — assumptions, not achieved results or a measured baseline:

Three-site comparison + brief
25%
120 minutes before → 90 minutes.
Reduction per batch
~30mins
or 25%
Monthly workload
20batches
(comparable)
Potential preparation capacity recovered
20 hrs/month
120 hrs/year

Calculation: (120 − 90) ÷ 60 × 20 = 10 hours/month. The projection covers preparation only. Field travel, permits, negotiation, and store revenue are outside this estimate.

What I would measure next:

  1. Observe target-role practitioners completing the three-site task, tracking assistance and critical misunderstandings.
  2. Check whether reviewers can recover all three reasons, the common basis, and consequential caveats from the brief.
  3. Compare preparation time against an equivalent existing-tool task using the same evidence; counterbalance task order before making a speed claim.

What I learned:

  • Start with the decision and its handoff. An evidence-rich map becomes useful when someone can act on and explain it.
  • Treat uncertainty as workflow content. Missing branch data and a narrow traffic sample should change the next question.
  • Connect recommendations to assumptions. Preserving a rationale while flagging a changed basis makes revision explicit.
Back to selected work