As I reduced friction, drop-off rates decreased, but the problem changed. Switching between sign-up and login increased from 16% to 41.4% after social sign-up was introduced. This happened because the process was so fast and frictionless that users started it without realizing whether they were signing up or logging in.
The reframe
That was when I realized that the users' task is not to "sign up" or "log in," but to access Mercado Libre. On the platform, sessions remain active for more than six months on the same device, and many users had gone so long without entering their credentials that they forgot them and ended up creating a second account because of friction or error.
The solution was to implement one screen that accepts an identifier (email or phone), the screen logic determines whether an account exists, and routes accordingly to sign-in or sign-up. The user never has to decide which path they're on.
The risk I designed around
Typos could route a user to the wrong flow and accidentally create a duplicate account. Solution: a persistent pill displaying the entered identifier in subsequent screens — turning a passive input into an active confirmation point.