Carousell: A Guerilla UX Case Study | Marvel Blog
📹 New! Remote User Testing - Get video + voice feedback on designs and prototypes
Request Demo

Carousell: A Guerilla UX Case Study

How incremental design changes can improve the seller experience to drive listing growth & engagement

When moving apartments in Singapore I tried Carousell, a Southeast Asian peer-to-peer marketplace similar to Letgo (US) & Mercari (Japan). I was instantly impressed with the ability to monetize my unwanted belongings with speed and simplicity. Every sale felt like I was getting free money since the other alternatives were 1) letting items collect dust at home or 2) donating / throwing them away. From then on, I used Carousell extensively to buy used items for my new flat and later to sell most of my belongings when I left Singapore (adding $5000 to my bank account).

Carousell’s core value proposition is that you can buy and sell your items in seconds with a few clicks. What’s exciting to me is that this service is making the used consumer economy more ‘sexy’. In turn, it is activating idle consumer inventory, unlocking new household wealth and addressing the huge problem of waste that plagues our consumption-driven economy.

As a Product Manager with experience in Product Design and Growth I’m hoping to:

  1. Help Carousell users achieve their goal of buying/selling with as few clicks as possible
  2. Improve Carousell’s core business metrics: # Listings and Time in App

I believe great customer experience is the core element of growth. Great UX helps acquire and activate users more easily. It also helps increase user engagement, resulting in higher retention rates. Carousell seems to think so too.

I set out to improve the customer experience by reducing as much friction as possible from the buying & selling process on the Carousell iOS app. This was done through deliberate, incremental changes to the design that took into account both user and business objectives.

My Process

I really like IDEO’s human centered design process as it attempts to balance feeling, intuition and inspiration with rational and analytical thought.

Throughout the process, I’ve also constantly ensured that I was cycling regularly between divergent and convergent thinking to ensure I’m:

  1. Keeping my mind open to exploring all possible solutions
  2. Keeping check of business objectives and general feasibility

Divergent vs Convergent Thinking Model

I also kept in mind BJ Fogg’s Behavioral Model which illustrates the impact UX has on changing user behaviour. My objective was to ensure users could achieve their goal as easily as possible (ability).

BJ Fogg’s Behavior Model

1. Empathizing with the User

Provisional Personas

To kick off the process, I created a provisional buyer and seller persona, meaning they were based on assumptions and online research rather than actual user research. Some online research showed that that the majority of users were urban dwellers, aged 25+, have strong purchasing power and are digital natives. This gave me comfort in knowing that the user base that I will be testing in San Francisco will be very similar to that of Carousell in Singapore.

The purpose of this exercise was to create a rough user-led compass, a ‘North Star’ if you will, to guide my very early design process.

Guerilla Usability Testing

Using my provisional personas, I conducted guerilla usability testing to identify pain points in the Carousell iOS app.

Guerilla testing is “the art of pouncing on lone people in cafes and public spaces, [then] quickly filming them whilst they use a website for a couple of minutes” — uxbooth

I tested the app from the seller’s and buyer’s point of view. Six users were given a pre-defined scenario split into two parts (sell item and buy item), and asked to perform the following tasks on an iPhone 7:

Sell items

  1. Sell an item (Macbook Air Laptop) on Carousell app
  2. Change information of existing listing
  3. Find more buyers for your listing

Buy items

  1. Find an item you want to buy (used dining table)
  2. Save the listing you like
  3. Find out more information about listing
  4. Buy the item

User Interview Process:

My approach was straightforward. I had several hypotheses of what elements of the task flow were important for Carousell’s business. I created a simple script to guide the interviewee to experience the full task flow from both perspectives. I made sure to only ask non-leading, open ended questions from a neutral disposition in order to understand the deeper ‘whys’ behind their actions and words.

I also asked a few general questions to give me an idea about the user’s buying behaviours.

Updated Personas

I then used the information gathered from the user interviews to update my provisional personas, giving them more weight and validation.

The first is Katie, who is about to move into her new place in San Francisco. She uses Carousell to buy affordable furniture quickly so that she can feel ‘at home’ as soon as possible.

Provisional Persona 1: Katie (Buy-side)

The second provisional persona is John, who is moving apartments for the second time in 2 years. John wants to sell a lot of his unused things because he’s tired of packing and unpacking stuff that he doesn’t even use.

user testing

Provisional Persona 2: John (Sell-side)

2. Defining the Problem

User Research Assimilation

This was the fun part: extracting the key findings from my user interviews. I listened to my recordings and put each noteworthy finding into one of three buckets:

  1. What the user said
  2. What the user did
  3. What the user thought or felt (hypothesized based on non-verbal cues)

Affinity Mapping

Next, I sorted these insights by order of affinity, grouping them into dedicated pain-point buckets.

During the process, I prioritized pain points by frequency, and decided to focus only on the issues that came up with least 3 of 6 participants, putting the others on hold for later validation. With a bigger project scope, I would try and validate the lower frequency pain points in subsequent user interviews.

I still had 8 pain points left, which were still too many to focus on for the scope of this case study. They were, in order of frequency of appearance:

2×2 Prioritization Matrix

Next step was to prioritize the above 8 pain points, and for that I used a 2×2 matrix. I plotted the pain points on four quadrants, based on their importance to a user and to Carousell.

The prioritization exercise showed that the most important pain points for both users and Carousell were on the sell-side of the workflow. This is in line with Carousell’s own focus on the seller experience.

From here on I decided to focus entirely on the seller persona and the following associated pain points:


After understanding the key problem area I needed to focus on, I decided to dive deeper into John, the seller persona. The first step was to use a mostly divergent thinking process called USMO (User, Situation, Motivation, Outcome) to help me generate user scenarios.

Completing the USMO exercise was a natural segway into creating several key Job Stories for John.


I used Jobs-to-be-Done Framework to explore various situations, associated motivations and desired outcomes Carousell sellers may be experiencing. This culminated into artifacts called Job Stories:


Using Job Stories, I wanted to further embody the holistic user journey beyond the usage of the Carousell App. I sketched out several scenarios using story boards which depicted the user journeys in line with the 3 Job Stories synthesized above.

The above synthesis and production of UX artifacts allowed me to more deeply embody John as the seller persona.

Ideating and Prototyping

The next part of the process involved diving deep into the pain points, mapping out the relevant task flows and ideating solutions via paper UI prototypes. Once I settled on a finalized version, paper prototypes were converted into Hi-Fi prototypes ready for testing using Sketch and Marvelapp.

I kept in mind the core growth metrics for Carousell (# of listings, time in app), and hypothesized design changes that would have a positive impact on them. In a follow-up process, I would run tests on these hypothesises using rigorous split testing on the Carousell iOS app.

Now let’s dive into the process in detail.

Being able to list an item quickly and easily is critical for both user and Carousell. From the user interviews there were two points of friction that stopped a smooth flow towards listing: difficulty taking the photo and choosing the right category.

Pain Point 1: Taking and choosing photos for own new listing

4 out of 6 users had a frustrating experience taking and choosing photos for their new listing. Users did not immediately realize that you could choose multiple photos in the photo library. Some users also expected the photo they took to show up automatically as the default photo for the listing. The delayed appearance of a photo in the camera reel definitely contributed to this frustration.

Task Flow

Task Flow 1: Taking and choosing photo(s) for new listing

Solution: add a feature where photo that had just been taken is auto-selected in the camera reel, and a highlighted reminder that user can choose up to 4 photos

Pain Point 2: Choosing the Right Category for Own Listing

5/6 users exhibited very clear frustration when it came to them choosing the right category for the item they wanted to sell. These findings are clearly item dependent. In this case, users were asked to sell laptops, phones, watches. Key takeaways were: category list is too long, there is no clear hierarchy, users cited a wish to search for a category.

Task Flow

Task Flow 2: Choosing Categories for New Listing

Solution: create a new, 2-level categorization mapping based on competitor research, maintaining old Carousell categories

I started out by researching categorisation best practices from the main e-commerce and classifieds sites/apps. As a result of my findings, I created a preliminary 2-level categorisation schema that would holistically cover most items that would be listed on Carousell. For sub-categories, I re-allocated Carousell’s old categories and added new ones to the Electronics category.

Research findings and recommended schema can be found here.

Caveat: I’m conscious that this is a fairly substantial feature revamp that will carry significant front and back-end technical implications. A couple of ways I can see this being rolled out:

  1. Map all listings to the new categorization schema, using generic bucket(s) like ‘Other’ to slot those listings that don’t fit the new schema. This is the approach I used in the above research.
  2. Maintain (aka ‘grandfather’) old categorisation schema on existing listings, while rolling out an entirely new schema for listings. Over time the old categorisation will naturally be substituted by the new.

Update (6 Aug 2017): Since beginning this case study, Carousell has released their categorization revamp where they updated some category labels, and added an additional level as a ‘drop down’ under the main category name. I believe this is a much neater solution than what I have proposed — hats off to Carousell’s design team!

Updated Categorization Hierarchy

Pain Point 4: Confusion about ‘Promote’ feature

2/6 users clicked on Promote button in the bottom, and every user was unclear as to what ‘Promote’ meant. Upon further questioning, almost everyone thought this was an internal promotion that Carousell uses, and assumed it would cost money. Users also expressed lack of differentiation between the social sharing function and promotion.

As illustrated in the Task Flow (below), there is also a duplication of action, with two zones of action leading to the same process.

Task Flow

Task Flow 3: Finding more buyers for own listing

Solution: redesign the Promote feature and Listing View architecture for clarity, and opened up opportunity for monetization

This was the most challenging pain point to design for. After 2 iterations, I settled on a design that I don’t like 100%, but felt it was a solid step forward with the scope of the project.

My objective here was to:

  1. Provide more clarity on what the promote feature is
  2. Clean up listing view architecture
  3. Open space up for payable promotion features for Carousell to drive revenue. This is a new priority for Carousell.

In the validation, only 3/6 users clicked on the Promote button. Upon enquiry, the 3 that didn’t click on promote assumed that they would have to pay to get their item promoted. They did not realize they could share via social media instead.

If I had more time, I would have tried the following design changes:

  1. Highlight on the button that the promotion is free “Promote for Free”
  2. include a help box the first time the user seeing the Listing View, e.g.:

You can check out the final prototype here.


Key Takeaways

Carousell’s mission is to monetise consumer assets lying stagnant in our homes, fuel a second hand economy and help reduce global consumer waste. In order to do this, Carousell needs to make buying and selling of goods on the app as easy and frictionless as possible.
This can be done through deliberate, incremental changes to the design that takes into account both user and business objectives.

Note: I do not work for, nor am I affiliated with, Carousell. I did this UX case study as I am a product guy who loves to optimise for user experience and business growth. Carousell is also one of my favourite products: I sold over $5000 in belongings using this app in Singapore in 2016! This case study was done in May/June 2017.

This article was originally posted on Alexey’s Medium page.

Design and prototyping for everyone

Sign up to the Newsletter

Get notified of the latest product updates and news at Marvel.

Special Projects @Deliveroo, ex-Growth & Product @Tradecraft, Strategy & BD across Finance & Consumer Goods. Love all things mountains, incl ultramarathons.

Related Posts

Successful products from the Soviet Union that were created in isolation to the rest of the world.

How to choose the right UI component for the type of message you want to deliver to your users.

Making good component design decisions in react when it’s hard to see how an existing component can still be reused