JoydeepProduct designer

Someofthebestjourneysdon'tshowupinGoogle maps

Choosing a trek is a real decision, one that deserves careful thought, but all we're left with are unanswered questions.

Am I even fit for this?What is the route like?When is the best travel window?

Paidal

The most beautiful journeys
can only be experienced on foot

Live Project

More than providing information, Paidal helps with the decision-making.

It helps pick safe first trek for beginners, and the right next one for experienced trekkers.

Why I chose a spatial discovery layer over a simple card list

While selecting a trek, factors such as route, terrain, elevation, and location play a critical role in decision-making, yet traditional platforms often bury this information to the second layer.

Paidal addresses this by prioritizing a map-based interface, aligning with how users naturally evaluate trekking options.

Card list
A card-list layout: a grid of trek cards, each showing a photo, name, region, difficulty tag, distance, and max altitude with no spatial context
Map-based discovery
Went with this
Paidal's map-based discovery interface: an India map with treks pinned by location, alongside a scrollable list of matching treks on the right

Designing filters for the decision layer

A real challenge was figuring out what actually influences their decision the most, what only refines it, and what barely matters at all. Research and real feedback shaped that hierarchy.

Primary filters

RegionDifficultyTrek duration

Secondary filters

Travel WindowTrek VibeMax DistanceMax Altitude

Choosing trek names over markers as location identifiers

Markers

Markers shown on the trek map

What Works

Clean, minimal, and scales well at high density.

Challenge

Requires an extra tap just to know what you're looking at. A trek isn't pinned to a point, it's a route.

Named pills

Went with this
Named pills shown on the trek map

What Works

Instantly recognizable. The map doubles as a list.

Challenge

Overlap when treks sit close together, needing a clustering mechanism at different zoom levels.

Designing how the map, the list, and the pills respond to each other

Panning the map updates the trek cards shown on the right.
Clicking a cluster zooms in and expands it into individual trek pills.
Hovering a card highlights that trek's pill on the map, even inside an unopened cluster.
A cluster stops growing once it would span an unrealistic distance.

Making it cheap to check out a trek before committing to one

Every jump to a full page costs more than the click itself. Leaving the map, even briefly, feels like stepping out of exploring and into one specific trek.

Keeping the preview in place removes that cost. Since checking a trek out doesn't require leaving the map, there's no penalty for looking at five before deciding, so comparison becomes the default instead of something a user has to push through friction to do.

One trek, even when there's more than one way up

Treks with more than one route stay a single trek, switched right on the map instead of being split into near-duplicate listings.

Dynamic grouping of checkpoints at every zoom level

Checkpoints that overlap on screen group together, but only a single checkpoint gets a line pointing to its exact spot, since a cluster's position is only ever an average, never a real place.

The same trail looks like a different place depending on the month

A trek's photos are frozen at one month. Ground cover is mapped along the full route and animated across the year instead, so a planned month shows up as it will actually look, not as a guess.

One consistent scale for a trek's difficulty level

The problem

Difficulty is subjective. One trekker's easy is another's hard, so a word like moderate ends up meaning something different depending on who wrote it.

The fix

Every trek is scored the same way, on the same weighted factors, so the number holds up no matter which trek you're comparing it to.

What the score weighs

Max altitudeElevation gainNumber of daysSpecial factors
Shown while comparing treks
Goecha La trek preview card (Hard, 10 days, 4,940m max altitude) stacked above its fitness snapshot showing a 7.8/10 score and flags like '2 AM summit start' and '4,000m+ altitude'
Shown on the trek's own page
Full fitness section on the trek's own page: a 7.8/10 score, a gradient pill bar, a difficulty-flags list, and a benchmark checklist

"Are you ready for this"

Difficulty is relative. What's moderate for one trekker is genuinely hard for another, so no single word can answer that for everyone.

That's why it was never framed as a difficulty level. It's a question, answered with exactly what being ready actually takes.

We assumed conversation with AI should work like messaging apps

Today's AI assistants borrow the chat thread model from human messaging.

It feels familiar, but AI conversations are fundamentally different.

Chat with human has a defined boundary

For human to human interaction, the boundary is obvious.

One person. One conversation.

Maya
Arjun

But with AI, there is no natural conversation boundary

With AI, there is only one assistant. Every new thought could belong to the same chat… or a different one.

Assistant
Trip planningTax questionDebug codeRecipe ideaBook recsWorkout plan

When conversations have no natural boundary, two problems emerge.

Problem 1

The boundary detection problem

Every topic shift forces the user to decide whether to continue or start over.

Problem 2

The buried knowledge problem

As chats pile up, valuable ideas disappear into conversation history instead of becoming reusable knowledge.

Grove

AI assistant that not just provides information, but helps it turn into usable knowledge

See it live

Two spaces, built for different mental models

Exploration space

Most conversations begin without a destination. People explore ideas, ask questions, and naturally drift between topics. Grove lets them do exactly that in the Exploration Space.

It removes the burden of chat switching by quietly detecting topic shifts and organizing related discussions into themes in the background.

Conversations appear as a continuous stream, with theme-based navigation in the timeline.

Knowledge space

As a theme gains enough context, it can be promoted to a Knowledge Space. Grove preserves the accumulated conversation and turns it into a dedicated workspace for deeper, focused work.

Knowledge space gets all the features of a theme — additionally, it gets a separate context assembly mechanism and a knowledge graph view.

How Grove solves the knowledge burial problem

Themes contain reflections which instantly give an overview of what was discussed in the topic.

When a user finds something useful worth saving for later, they can quickly mark it as a note.

The notes become the building block for insights, which are created at the topic level.

Why user agency was prioritized in knowledge capture

Grove surfacing an automatic insight for the user to review
Discarded version

Early prototypes relied on AI to surface insights automatically. Testing showed that relevance is deeply personal. The system frequently highlighted information users didn't consider worth keeping.

Grove now treats AI as an assistant that organizes information, while users decide what deserves to become knowledge.

The most difficult challenge was organizing a stream of untagged conversation into relevant themes.

The idea was simple, but getting it to actually work accurately took several iterations. Here's the version that finally stuck.

The core logic (TL;DR)

  • Each message gets embedded into vectors (dual embedding).
  • Every new message gets tagged with a topic: current topic of discussion, an existing one, or new.
  • Unrelated messages wait in queue, till they find a common topic.
  • Clear cases happen automatically. Fuzzy ones go to the LLM.
  • Topics group into themes the same way.

The full decision flow

Loading diagram…

Another challenge was to assemble context from a continuous stream of conversation

Instead of passing the entire conversation history, Grove identifies the relevant topic and assembles context from it. This keeps responses focused while allowing conversations to flow naturally.

The components that build up the context for each LLM call

System prompt

A fixed set of instructions which gives a certain personality to Grove's response.

User memory

Stored facts about the user.

Identity, goals, preferences, problems, and recurring patterns.

Selective context from past explorations

Chunks pulled from earlier conversations, matched to the current question.

The question is compared against the user's existing themes using a similarity score. The score decides how the search runs:

MatchWhat happens
Strong match to one themeNudged toward that theme's wording. One quick search.
Weak match across a few themesSeparate searches per theme, kept apart so they don't dilute each other, plus one plain search.
No clear matchOne broad search, using relationship-tracing between chunks.

Decision log

A running list of decisions and settled points from earlier in the conversation.

The part that's fallen out of the last 20 messages but hasn't been picked up by the theming pipeline yet.

Live web search

Results from the web search, if needed.

Recent messages

The last 20 messages, which give the LLM context about what's being spoken about.

For a demand planner, the most scarce resource is their attention.

A Demand Planner manages forecasts across a portfolio of 1,500+ SKUs. With limited time to review each one, the challenge is knowing which products need closer attention and which can be left alone. A system was needed to prioritize the portfolio before the planner starts reviewing it.

Before a planner acts, the system needs to answer

  • Which products need attention?
  • Why do they need attention?
  • Which products can be left alone?

Two problems the system had to solve

Challenge 1

Knowing what needs attention

The planner needs to distinguish meaningful deviations from normal variation and decide where investigation is worthwhile.

Challenge 2

Acting on what needs attention

Once something needs attention, the planner needs to take the necessary action to address the issue.

Designing the attention model

Every SKU is evaluated against three separate hierarchies. Each answers a different question and determines a different kind of planner attention — none of them wait on the others.

All SKUs
01

Forecast Governance

Does the forecast need my judgment?

Scheduled review
02

Exception

Is something wrong right now?

Act today
03

Personal Curation

What do I want to watch?

My watchlist
01

Forecast Governance

Forecast Governance weighs each SKU's importance, predictability, and trajectory, then uses that judgment to decide how much human effort it actually deserves.

Importance

Does this SKU carry enough revenue to matter?

ABC classification based on revenue — it sets the stakes before any forecasting effort is spent.

A-class

Highest revenue impact — 80% of revenue.

B-class

Moderate impact — 15% of revenue.

C-class

Lowest impact — 5% of revenue.

Predictability

How predictable is this demand?

Demand history is classified using ADI (average demand interval — how often a SKU sells) and CV² (coefficient of variation — how much that demand swings).

Low variability
High variability
Frequent

Smooth

Steady and easy to forecast automatically.

Erratic

Frequent, but volatile — needs wider trust bands.

Sparse

Intermittent

Sparse, but regular gaps — still forecastable.

Lumpy

Sparse and volatile — the hardest pattern to trust.

Trajectory

Is the pattern changing?

A change in predictability is itself a signal — worth flagging before the forecast even looks unreliable.

Stable

Same pattern as before.

Degrading

Moving toward harder to predict.

Stabilizing

Moving toward easier to predict.

Effort

How much human effort does this SKU deserve?

Importance and predictability combine into a single routing decision — where a SKU lands determines how much attention it gets.

Easier to forecast
Harder to forecast
Higher importance

Touchless Core

Stable, predictable demand. Runs automatically.

Consensus Pool

High-value, hard to predict. Sales & trade marketing weigh in.

Lower importance

Inventory Policy Group

Low-value, long tail. A simple inventory policy instead of a forecast.

Exception Queue

The pattern changed. Planner reviews the forecast.

02

Exceptions

Exceptions highlight SKUs where a defined planning condition has crossed its threshold and needs planner attention. Each exception is classified by its type and priority, so planners can quickly understand what needs attention and how urgently.

Exception types

StockoutLow stockExcess stockPoor accuracyBias

These are the signals that trigger an exception when their defined threshold is crossed.

Exception priorities

Critical

Requires immediate attention.

High

Requires timely review.

Medium

Worth monitoring.

03

Personal Curation

The system cannot catch every SKU that needs attention. Planners often know more about the business than any signal can capture. Personal Curation lets them build their own watchlist by hand, kept separate from what the system flags on its own.

Why the watchlist stays user-controlled

An earlier version auto-populated the watchlist from system signals. This created false positives — a SKU could be flagged as excess stock even when its DOI was within a healthy range.

Exceptions = system judgment

A documented threshold has been crossed.

Watchlist = planner judgment

The planner decides what deserves continued attention.

The next challenge was to enable quick action on the exceptions

01

See the signal

The adjustment panel opens with the signals that triggered the exception — the planner immediately sees what changed and why the SKU was flagged.

02

Act on the signal

The panel opens on the action tied to the problem. When both signals are present, both actions stay available in the same context.Supply signal Add OrderForecast signal Adjust Forecast

03

Capture the decision

Forecast changes are made directly on the chart, and a reason is required before the change can be applied — the decision and its reasoning stay together.

Outcome

What changed for planners

Before

Scan everything, find a problem, navigate elsewhere, fix it, document it.

After

Open the queue, investigate the exception, act in context, reasoning captured.

Reflection

The most important shift in this project was moving from showing information to managing attention.

Resense became less about showing planners everything and more about helping them focus on what actually needs their expertise.