Case study · Mobile · 0 → 1

Making a complex revenue tool simple enough for your pocket.

PriceLabs is powerful but known for being complex, and its mobile web was hard to use. We designed an app for hosts on the go: a three-step setup, a thumb-first pricing calendar and one-tap sync, built on a mobile layer of our existing design system.

Role
Product Designer
Team
2 designers · design manager · 3 devs + FE lead
Timeline
Nov 2025 → Apr 2026
Status
Live · Android & iOS
Dashboard, pricing calendar and multi-calendar: the old mobile website, then the app we built.
Outcome
11K+paying customers used the appin its first 90 days · from 15K+ installs
70%of them were small hoststhe segment v1 was designed for
2×more likely to switch to the appsmall hosts vs mid-size managers
5.0★Google Play rating4.5★ on the App Store
Part 1

Why mobile, and why it was hard

PriceLabs worked well at a desk. On a phone it was a squeezed copy of desktop, and the hosts who most needed it on the go were the ones it served worst.

01 · Problem

Hosts with 1–5 listings needed to check and fix prices on the go, but PriceLabs on a phone was a squeezed copy of desktop.

  1. The desktop-to-mobile trapMobile web views were direct copies of desktop screens: tiny touch targets, friction and cognitive overload.
  2. Fragmented onboardingSetup was scattered across modules. Copying it to mobile meant drop-off for new users.
  3. Data viz that didn’t scaleCharts and calendars built for a 27-inch monitor were unreadable and slow on a 6-inch screen.
  4. Not native, same backendBuilt in React on the web’s backend and IA, but it still had to feel like an app.
How might we give hosts confidence in their pricing from their phone, without bringing the complexity of the full product with it?

02 · Context

PriceLabs sets nightly prices for short-term rentals from demand, seasonality, events and market data. Until 2026 it was web-only, and the mobile web experience was hard to use: dense tables, small targets, desktop layouts squeezed onto a phone.

Revenue managers use the desktop suite for deep analysis, but a large segment, owners of 1–5 listings, needed a pocket assistant to monitor and sync prices without being tied to a desk.

A recurring piece of feedback was that PriceLabs feels more complex than competitors like Wheelhouse and Beyond. That complexity is also its strength for large property managers. The question was how to keep that depth on web while giving smaller hosts something they could understand at a glance.

03 · Goals & success metrics

Business
  • Reach small hosts who found the product too complex
  • Launch and test early in 2026
User
  • Check and trust prices in seconds
  • Make the common fixes without a laptop
We’d measure
  • Onboarding completion
  • Weekly active hosts on mobile
  • Overrides created in the app

04 · Constraints

Time
  • Design ran Nov–Jan while development started in December
Tech
  • React on the shared backend, not native
  • No separate component library
Business
  • Billing excluded because of app-store commission on in-app payments
  • Deep configuration stays on web
Part 2

Deciding what a phone is for

Before drawing screens, we had to decide what belongs on a phone at all, and how hosts would move through it.

05 · Deciding what belongs on a phone

Usage data showed hosts mostly view and monitor on mobile, so v1 targets small hosts doing on-the-go tasks.

We started from usage data, not the menu: the most-used features and screens, sorted by customer size and by on-the-go versus deep revenue-management work.

Where mobile web was already being used

Before the app, I looked at which desktop pages people were already opening on their phones, how many accounts did so, and how much time they spent there.

PageShare of visits on mobileAccounts using it on mobileShare of time on mobileDecision
Base Price Help
19.9%
31.1%17.7%In v1
Pricing Dashboard
15.7%
38.3%10.2%In v1
Market Dashboard landing
12.4%
18.3%6.2%Stays on web
Revenue Estimator
11.2%
20.3%7.4%Stays on web
Revenue Estimator Pro landing
11.2%
20.3%7.4%Stays on web
Hotel data tab
10.3%
14.3%8.3%Stays on web
Portfolio Analytics · KPI
9.5%
25.8%7.1%Stays on web
Portfolio Analytics · Pacing
8.1%
27.5%5.5%Stays on web
Market Dashboards
7.3%
20.3%4.3%Stays on web
Neighbourhood data
5.7%
17.2%4.7%Next
Customizations
5.2%
9.1%2.0%In v1
Revenue Estimator Pro dashboard
4.3%
13.5%3.7%Stays on web
Multi-calendar
2.3%
14.7%1.8%In v1
Manage Listings
1.7%
3.8%—In v1
  • Quick checks ledBase Price Help and the Pricing Dashboard had the highest share of mobile visits, and 38% of accounts opened the dashboard on a phone. They became the core of v1.
  • Analytics were glanced at, not worked inA quarter of accounts opened Portfolio Analytics on mobile, but only 5–7% of the time spent there was on a phone. Those pages stayed on web.
  • Low use can mean broken, not unwantedMulti-calendar and Customizations barely registered on mobile web (2% of time or less), even though hosts rely on them daily on desktop. We read that as the squeezed layout failing them, so both were rebuilt for touch, with customizations view-only in v1.
Key insight

On a phone, people mostly view and monitor and act much less.

So the app leads with glanceable information and a few high-value actions, and leaves deep revenue management to web.

In v1
  • Pricing dashboard & calendar
  • Multi-calendar
  • Date-specific overrides
  • Base price help
  • View customizations
  • Onboarding & importing listings
Next
  • Scrolling calendar
  • Edit customizations
  • Neighbourhood data & competitor calendar
  • Action Center on mobile, with bulk actions
  • RM AI agent
Out
  • Billing (app-store commission)
  • Deep configuration & analytics

06 · Information architecture & key journeys

One drawer for products, one tab bar inside each listing, and five journeys that the whole app is built around.

With the scope set, I mapped the app’s structure to the jobs hosts come to do, not to the web menu. The tree mirrors web so nothing has to be relearned; the journeys decide what sits one tap away.

Working board · app structure and key journeys
1 · First-time setup
Sign up→Add listings→Base → min → stay→Review→Sync
2 · Daily check
Dashboard→Listing calendar→Sync status→Sync now
3 · Adjust specific dates
Calendar→Select dates→Override sheet→Save & sync
4 · Manage the portfolio
Multi-calendar→Select listings→Override / copy to child
5 · Fix an issue
Action Center→Alert→One-tap fix
Part 3

Designing the host’s day

Design starts here. With scope and structure set, we designed in the order a host meets the app: the system it’s built on, setting up, then the daily loop.

07 · A mobile layer on the design system

Mobile variants on existing components, not a new library: 48px controls, AA/AAA contrast, 22 components.

Instead of a separate library, we added mobile variants to existing components: one system, one set of tokens, less drift for engineering.

48px buttons & inputs32px chips & compact buttonsAAA primary text & actionsAA chips & calendar22 mobile components
Calendar Settings bottom sheet with vertical tabs.
Bottom sheets keep legends and settings one tap away instead of crowding the calendar.
Filter sheet with vertical tabs and Apply Filters.
Same pattern, reused: the desktop vertical-tabs component becomes a mobile filter sheet.
TokenValueUsed for
--pl-m-control-height-lg48pxButtons, inputs, selects
--pl-m-control-height-sm32pxChips, compact buttons
--pl-color-action-primary#F06C6CPrimary actions (Sync now, Accept)
--pl-color-text-primary#1F2430Body and headings, AAA contrast
--pl-m-space-40016pxScreen padding, card gaps
--pl-m-radius-md8pxCards, inputs, bottom sheets

08 · Onboarding: a one-way street to the first sync

Seven screens from connecting a listing to the first sync.

Desktop setup was scattered across modules. On mobile we cut it to a linear path that ends in one moment: prices reviewed and sync turned on.

Add Listings sheet.
01 · ConnectBooking platforms and 100+ PMS in one searchable sheet.
Getting Started with three steps.
02 · Getting startedThree steps, stated up front, with a Skip.
Base price step with a market recommendation.
03 · Base priceLeads with a market recommendation and why.
Minimum price step with a slider.
04 · Min priceA slider capped at the base price, with guidance.
Minimum stay step.
05 · Min stayPick a rental profile; we generate the rules.
Setup summary.
06 · ReviewEvery choice on one screen, each editable.
Set-up completed sheet.
07 · DoneTeaches the next action: review, then sync.
Scroll the flow →
  • Recommend first, edit secondEvery step opens with a value we calculated; manual entry is one tap away, not the default.
  • Guardrails, not rulesMin price is bounded by base price, and the guidance (40–50% below base) only appears when it’s relevant, so new hosts can’t price themselves into a loss without being nagged.
  • Sync stays off until reviewedPrices never push to Airbnb by surprise; the last screen hands control back to the host.

Try it

First screen of the Mobile onboarding · interactive prototype
Mobile onboarding · interactive prototypeOpen full screen ↗

09 · Onboarding that adapts

Not every listing arrives with the same data, so the path changes length instead of failing later.

Getting Started with five steps.
Missing data → 5 steps. Verify the listing URL and add fees first, so the base price recommendation is accurate.
Tell us about your properties.
Personalisation. Property type and experience unlock smart presets that fit the host.
Calendar with a Finish Setup banner.
Skipped? Resume later. A banner on the calendar brings hosts back to finish setup.

10 · The daily loop: check, adjust, sync

The calendar carries the essentials, with sync in the thumb zone.

The calendar is where hosts spend their time, so it carries the essentials and nothing else. Navigation mirrors web: a drawer for products, and a bottom tab bar inside each listing.

Pricing Calendar with bottom sync bar.
Thumb zone for the main action. Sync toggle, last-synced time and Sync Now live at the bottom.
Navigation drawer.
A drawer that mirrors web. Products, shortcuts and general links, in the same order as desktop.
Manual base price with percentile slider.
Market context while editing. The percentile slider from Base Price Help, rebuilt for touch.

11 · Key decision: creating an override

Creating a date-specific override (a manual price or minimum-stay change for chosen dates) was the most important action in the app. On web the calendar is built for scanning; on mobile we redesigned the calendar interaction around selecting dates and creating an override.

The override sheet carries the full model (a date range, copy to child listings, specific days of the week, final / min / max / base price with a fixed or percentage type, and stay restrictions), so we designed for two cases: the 80% case, a quick price change for a few dates, and the 20% case, where hosts need the advanced settings.

A · 20% use casePower users liked having every setting, but most hosts got lost in options they didn’t need for a quick price change.
B · 80% use case ShippedIt covered the common case in two taps, with advanced settings one tap away, so power users lost nothing.
Part 4

Shipping it

Design and development ran in parallel, so how we worked mattered as much as what we drew.

12 · Validation & iterations

We iterated most on the calendar price cards, navigation, tooltips and Base Price Help, reviewing each round with our design manager and engineering before handoff.

After the first release the loop widened to real users: support tickets, customer calls, session recordings and usage data. What we heard and what we changed is in the after-launch timeline below.

13 · Methodology: how we listened and measured

One loop for feedback, one definition per metric, and the evidence behind both.

Feedback reached us from many places, and numbers can be read many ways. This is how we kept both honest.

The feedback loop

  1. CollectSupport tickets, customer calls, session recordings, in-app polls and usage data
  2. TrackOne shared tracker: who raised it and which part of the app it concerns
  3. DecideBug, new feature, a discovery problem, or a deliberate no
  4. Hand offI turn each decision into numbered, buildable changes for engineering
  5. Close the loopDesign QA, ship, and tell the customer

What we heard and what we decided

SourceWhat we heardDecisionStatus
TicketHeader and footer take a third of the screenSlimmer header and footerShipped
Call15,000-listing manager sees too few rows in multi-calendarDenser multi-calendarShipped
CallNobody found the long-press price breakdownA hint that stays, or let hosts choose what a tap opensExploring
TrackerNo clear next step after importing listingsLead with “Start setup”Shipped
TrackerShow “Setup complete” on the listing cardKeep the sync call to action insteadNot doing
TrackerSuggest a min price 25–30% below baseCorrected to 40–50%, shown only when relevantShipped
RecordingPassword rules appear only after a failed sign-upState rules up front, validate inlineProposed
Ticket“I can’t delete an override in the app”A wrong button state hid the delete actionFixed
FeedbackNo KPIs or price curves on mobileKept on web for v1, by scopeNot in v1
Feedback tracker for the Airbnb onboarding journey, listing each item with who raised it, the area it concerns and the decision.
The tracker. Each item records who raised it, the area and the decision, including the ones we chose not to do.
My message to engineering listing six numbered changes to the onboarding flow.
The handoff. When a task summary wasn’t enough to build from, I listed the exact changes so engineering could start straight away.

How we measured adoption

Installs · 15K+First-time store downloads: 10.4K from App Store Connect, 5K+ from Google Play. Includes people who aren’t customers yet.
Paying customers · 11,083Existing PriceLabs subscribers who used the app at least once in its first 90 days, split by business size.
Regular users · 3,418Used the app on 10 or more separate days between 12 May and 31 August, about 1 in 5 app users.
Quality · ~98%Crash-free sessions over 30 days of releases, from crash reporting.
  1. For each regular user, find the day they started using the app.
  2. Compare their daily average of pricing-dashboard views before and after that day, on desktop and on the phone browser separately.
  3. Count a change only if it moved more than 10% either way; anything smaller is “about the same”.
  4. Call someone “mostly in the app” if they viewed more pricing in the app than in a browser after starting, and set aside users with no browser history so a missing comparison isn’t mistaken for preference.
  5. Group by business size: small hosts (1–5 listings), mid-size (6–50) and large managers (50+).

This shows a correlation with when people started using the app, not proof that the app caused the change. 14 users with no browsing history were left out.

14 · How we worked

Design was split between me and Kaustubh, with our design manager Divesh guiding direction and reviews, and three developers plus a front-end lead.

Nov 2025Design starts: DS mobile layer, scoping
Dec 2025Development starts in parallel
Jan 2026Designs complete, handoff
Apr 2026v1 on the Play Store
Jul 2026iOS release + public launch

Because development started before designs were final, we designed in build order: foundations and components first, then the calendar and overrides, then onboarding, so engineers were never blocked.

15 · Launch & outcome

We set out to reach small hosts and replace the phone browser for quick fixes. Both happened.

The first version reached the Play Store in April 2026; iOS and the public launch followed in July 2026, in 7 languages. Here is how it measured up against what we set out to do.

What we set out to doWhat happened
Reach small hosts who found PriceLabs too complex7,726 of 11,083 paying customers on the app are small hosts (70%), and they’re the most likely to make it their main way to check prices: 27.5%, vs 13–17% for larger managers.Met
Common fixes without a laptopAmong regular app users, phone-browser use fell for 48% of small hosts and 59% of mid-size managers, while desktop use stayed roughly even, as intended.Met
Launch early in 2026Android in April, iOS in July, in 7 languages. 15K+ installs, 10.4K of them on iOS in under four weeks.Met
An app people trust5.0★ on Google Play and 4.5★ on the App Store, with about 98% crash-free sessions.Met
The metrics we set: onboarding completion, weekly active hosts, overrides in the appEarly signals are strong: setup drop-off fell with the 4- and 6-step paths, and overrides are now made on the go instead of waiting for a laptop.Early signal

How each number was calculated is in the methodology section above.

Did it change how people work?

We compared how 3,400+ regular app users browsed PriceLabs before and after they started using the app.

It replaced the phone browser, not the desktopChange in each user’s browsing after starting the app
Used it lessAbout the sameUsed it more
Phone browser
Small hosts
48%22.7%
Mid-size
59.3%11.1%
Desktop
Small hosts
42.7%44.3%
Mid-size
41.5%48.2%

Deep work stayed on desktop, which is what we designed for.

The hosts we designed for adopted it mostRegular users who now check prices mostly in the app
Small hosts
27.5%
Large managers
17.0%
Mid-size
13.4%
Who uses the app11,083 paying customers, first 90 days
Small hosts 70%Mid 26%

A quarter are mid-size managers, more than v1 was scoped for. That’s why multi-calendar density became the top request.

What users said

“The most important things you’re going to want to change from a phone are there.”App Store review ★★★★★
Companies “either get web right or app right and rarely both.” This one, for a first version, “has done very well”.Google Play review ★★★★★
“The app came in handy a few times in the past weeks when I was on the road.”Property manager, by email
“Le meilleur du pricing dans ma poche.” The best of pricing, in my pocket.App Store review, France ★★★★★

Store ratings are counted across countries as of October 2026. The two 1-star App Store reviews were about how long an app took to arrive and a billing dispute, not the app itself.

Part 5

What comes next

Launch was the start. The roadmap and the first post-launch fixes show where the app goes from here.

16 · Next on the roadmap

From a scrolling calendar to AI actions: what the app takes on next.

Calendar & settingsScrolling calendarEdit customizationsAdding cards on mobile
Market dataNeighbourhood dataCompetitor calendar
Action CenterAction Center on mobileBulk actionsv2 with multi-calendar for compact screens
AIRM AI agentAI actions from performance experiments

Four of these are already prototyped in the real app shell. Tap a phone to try it.

First screen of the Scrolling calendar prototype
Scrolling calendarOpen full screen ↗
First screen of the Neighbourhood data prototype
Neighbourhood dataOpen full screen ↗
First screen of the Competitor calendar prototype
Competitor calendarOpen full screen ↗
First screen of the Action Center prototype
Action CenterOpen full screen ↗

After launch

Every change after launch traces back to something we heard or measured.

Shipping was the start. Every change after launch traces back to something we heard or measured: a customer call, a support ticket, a session recording or the usage data.

  1. May 2026
    Research

    Watching real sessions from day one

    While the app was with beta users on Android, I asked for a way to watch real app sessions, and we set up a saved filter for app traffic in our session recorder. From then on we could see where people hesitated, not just read tickets about it.

    Session recorder saved filters, with Mobile App Sessions only highlighted.
  2. Jun 2026
    Customer calls

    Large portfolios on small phones

    A property manager with 15,000+ listings couldn’t see enough rows in multi-calendar on a small iPhone, and hosts didn’t know they could long-press a price to see how it was calculated: the 2-second hint on load went unnoticed. Similar listing names were cut off exactly where they differ.

    Changed: a much more compact multi-calendar before the iOS release and full listing names where it matters. Next, we’re exploring better tooltip discovery: a hint that stays until dismissed, and letting hosts choose whether a tap opens the price breakdown or an override.

    A 657-listing customer on the same round of calls said he loves the simplicity and wouldn’t want the app to get too complicated. We kept that line.

    The compacted multi-calendar: listings as rows against dates.
    Multi-calendar after compacting
  3. Jul 2026
    Launch

    iOS launch: 10.4K downloads in under four weeks

    The iOS app went live on 6 July. The first spike is the launch; the second came from the monthly newsletter. A first fix (v1.0.1) followed for phones with on-screen navigation buttons, where the bottom bar overlapped the layout.

    App Store Connect card: 10.4K first-time downloads, with a launch spike and a second smaller spike.
  4. Jul 2026
    Email

    “Compact or spaced out?”

    A property manager liked the app but wanted to see more listings at once and asked for a compact view toggle.

    Proposed: rather than a fixed toggle, a map-style zoom (+ / −) for density. We first asked the customer which screen they meant before committing.

    Pricing dashboard listing cards.
    The listing view they wanted denser
  5. Aug 2026
    Usage data

    Bigger than we scoped for

    11,083 paying customers used the app in the 90 days to 13 August. We designed v1 for small hosts; a quarter of the audience runs much larger portfolios, which moved multi-calendar density up the list.

    Small hostsMid-marketLarge PMs · 455
  6. Aug 2026
    Session recording

    Sign-up errors that came too late

    A recording showed a new user trying to set a password two or three times. The rules only appeared as an error after they submitted.

    Proposed: state the rules before the password is entered and validate inline as people type.

    Sign-up form on mobile with an error toast saying the password must be 8 to 32 characters with uppercase, lowercase, digit and special character.
  7. Sep 2026
    Feedback tracker

    Onboarding that knows what’s missing

    An internal walkthrough of the Airbnb onboarding journey produced a tracker of issues: no clear primary action after import, recommendations weaker when the Airbnb URL or fees were missing, and the final “review, then sync” moment easy to miss.

    Changed: two paths. 4 steps when we have the data, 6 when we don’t (identify the listing on Airbnb and add fees first). Review & sync became an explicit last step, the min-price slider was removed, “Why this price?” sits next to the number, and a “Complete your listing setup” banner resumes setup from the calendar.

    Two Getting Started screens side by side: four steps on the left, six steps on the right starting with Identify your listing on Airbnb and Additional fee details.
    Same screen, two lengths, decided by the data we already have.

    Try the updated flow in the onboarding prototype ↑

  8. Sep 2026
    Support ticket

    Give the calendar the screen

    A host circled the header and footer: they “take up about 1/3 or more of the entire phone screen”, while the calendar is what they actually look at.

    Changed: a slimmer header and footer, already in the next build when the ticket came in.

    Pricing calendar with header, month grid and sync bar.
    The calendar the host wanted more room for
  9. Sep 2026
    DataMobile web

    One clear “Add payment method” button

    Billing stays out of the app because of app-store commission, so it lives on mobile web. There, only 16.1% of synced users went on to add a payment method, against 50.4% on desktop. The options were small, unlabelled icon buttons.

    Changed: one full-width button whose label adapts: “Add Credit Card” when that’s the only option, “Add Payment Method” with a short list when there are several.

    Result: page-to-card-on-file conversion on mobile web rose by about 11 points while desktop, as a baseline, stayed flat. Compared across three 9-day windows, not an A/B test.

  10. Sep–Oct 2026
    Quality

    Stable as usage grew

    Crash-free sessions held between about 97% and 98.7% over 30 days of releases, so design changes could keep shipping without trading off stability.

    Crash-free sessions chart from 13 September to 11 October, ranging between about 96.8% and 98.7%.

The deck

The case study as a presentation, for a design review or an interview panel. Use the arrows or your keyboard.

PriceLabs mobile app · 12 slidesPresent full screen ↗