Caso de estudio UX

Mejorar la visualización de precios mediante la claridad

El número que veía un viajero al elegir un hotel y el número que se le pedía en la página de checkout no eran el mismo. Este es el trabajo que desarmó el precio en la página en vez de al final, y el experimento que midió si decir más sobre un precio vende más inventario.

8
Plataformas comparadas, la nuestra entre ellas
7
Países, cada uno con sus propias reglas fiscales
+3.5%
Conversión, fuera de Estados Unidos
Cliente
Rol UX Designer, único diseñador en visualización de precios
Equipo 1 diseñador UX, 1 product owner, 1 científico de datos, 1 redactor, una agencia de traducción externa, un equipo scrum
Periodo En curso cuando se escribió esto; el benchmark se hizo en septiembre de 2020
Plataforma El embudo de reservas, en escritorio y web móvil
Herramientas Figma, Zeplin, FullStory
El precio de un hotel desglosado en tarifa por noche, impuestos y cargos, impuesto local, una tarifa de resort, otros impuestos locales, un total, un ahorro, y lo que se paga ahora frente a lo que se paga en el hotel

El panel clave del diseño. Cada línea debajo de la tarifa de la habitación es dinero que alguien antes conocía por primera vez en el checkout.

Problema

Un precio que crecía camino a la caja

Findhotel es un actor pequeño en hospedaje. Trabaja los mercados localizados que las plataformas más grandes suelen dejar en paz, y buena parte de su inventario es inventario en riesgo: habitaciones que un hotel espera no vender y que no puede listar por su cuenta sin que los sitios más grandes lo empujen abajo en los rankings.

Vender ese inventario significa ganar por precio, y el embudo estaba minando su propio argumento más fuerte. El precio que se mostraba al elegir una habitación no era el precio que se pedía dos pantallas después en el embudo. Los datos mostraban un fuerte abandono de usuarios concentrado en la página de checkout.

La brecha era más ancha para viajeros fuera de Estados Unidos, porque ahí es donde viven las líneas extra: un impuesto municipal que cobra el ayuntamiento, una tarifa de resort que cobra el hotel, otros cargos locales que varían calle por calle. Nada de eso estaba oculto a propósito. Simplemente aparecía tarde, sin nombre y todo de golpe.

Por una vez, dos argumentos apuntaban en la misma dirección. El negocio quería una tasa de conversión más alta. Yo quería que nuestros usuarios pudieran responder la pregunta por qué estoy pagando esto y para qué sin abrir una segunda pestaña.

Detalles de la oferta, la única pantalla del embudo cuyo trabajo entero es responder esa pregunta.

Objetivos

Lo que el trabajo tenía que lograr

Decir el número temprano
Poner lo que realmente cuesta una estancia frente a alguien mientras todavía está eligiendo, no una vez que ya se comprometió.
Nombrar cada cargo
Un cargo con nombre se puede entender y quizá perdonar. Una suma sin etiqueta al final solo puede molestar.
Desplegarlo sin apostar el embudo
Llegar con el tiempo a todos los mercados, y poder detenerse después del primero si los números iban en la dirección equivocada.

La visualización del precio está en la ruta de ingresos de cada reserva que toma la empresa, así que cambiarla es un cambio con el que nadie puede estar tranquilo. Poder señalar un despliegue por etapas fue lo que hizo posible la conversación siquiera.

Equipo & audiencia

Quién hizo qué

El product owner trajo el caso de negocio y fijó las prioridades. El científico de datos aportó los números en los que descansaban las decisiones y diseñó las pruebas A/B que los midieron. Un redactor era dueño de la redacción de cada etiqueta. Una agencia externa tradujo esa redacción a los idiomas en que corre el sitio.

Todo entre el problema y la entrega era mío: el benchmark, las sesiones de ideación y de definición del alcance, los wireframes y el prototipo, las pruebas de guerrilla, el plan de desarrollo, las pantallas de alta fidelidad, las pruebas manuales antes del lanzamiento, la observación posterior, y el reporte que permitió a cualquiera en la empresa seguir qué había cambiado.

Audiencia

A quién apuntamos, y en qué orden

El primer lanzamiento fue para viajeros estadounidenses que llegaban desde Google hotel ads a la página de selección de habitación. Ese era el grupo más grande y valioso del sitio, lo que lo volvía la audiencia que valía la pena mejorar y la audiencia con la que valía la pena tener cuidado.

Una vez que una hipótesis sobrevivía, el cambio salía al resto de los mercados de habla inglesa, y solo entonces a los otros veintiséis idiomas que el sitio soportaba en ese momento. Cada paso era una apuesta menor de lo que valía el anterior, que es como a un equipo se le permite tocar la ruta de ingresos más de una vez.

El grupo al que apuntamos primero no es el grupo del que vino el resultado.

Alcance y limitaciones

Lo que podíamos alcanzar, y lo que no

La empresa estaba organizada de modo que la página de selección de habitación y todo lo que venía después nos pertenecía, lo que significaba que las páginas de búsqueda y de aterrizaje no. Esa es una frontera dura trazada por la mitad del problema: el viajero forma su expectativa del precio en una pantalla que no teníamos permiso de cambiar, y luego se encuentra con la nuestra.

Tampoco había presupuesto para pruebas moderadas. Se llamó a un puñado de clientes, pero el propósito de esas llamadas era recoger lo que ya les disgustaba de la experiencia actual, no ponerles un prototipo enfrente. Así que la mitad cualitativa de este proyecto es un benchmark y un conjunto de grabaciones de sesión, no un estudio.

Dos pantallas, luego más
Empezó en la selección de habitación y el pago. Conforme llegaba evidencia, alcanzó los detalles de la oferta, la pantalla de confirmación, los correos de confirmación y la gestión de reservas.
Investigación de escritorio, no un laboratorio
Ocho plataformas en siete países, revisadas a mano. Sin sesiones moderadas.
Cinco semanas de tráfico real
Una prueba A/B, dividida en partes iguales, larga como para sobrevivir un patrón de fin de semana y corta como para actuar sobre ella.

La primera tarjeta es la que vale la pena mirar con calma, porque es la diferencia entre cambiar una pantalla y cambiar un producto. Un desglose de precio que solo es completamente visible en el momento del pago no es honesto; es una divulgación. Así que las mismas filas tenían que sobrevivir más allá del punto donde se mueve el dinero, hasta la pantalla que confirma la reserva y el correo que la sigue.

En este wireframe se resolvió eso. Es la pantalla de confirmación, que lleva el mismo desglose que el checkout, con dos líneas adicionales que el checkout no tenía: lo que ya se pagó, y lo que el hotel todavía va a cobrar. Todo lo que viene después en esta página deriva de esa decisión.

Confirmación, en wireframe. El desglose no se detiene en el pago, y los marcadores de moneda en la letra pequeña están ahí porque también tenía que ser cierto en cada mercado.

Proceso

Nueve pasos, repetidos en cada iteración

Esto nunca fue un proyecto con final. Es un ciclo que ha corrido varias veces, y cada pasada se apoyó en los pasos que el producto más necesitaba en ese momento. El benchmark es la excepción: se hizo a fondo una vez y después se consultó.

01

Mapear dónde aparece un precio

Un diagrama tosco de las interacciones que un viajero puede tener con un precio y lo que se sigue de cada una. No es un recuento completo de cada estado en que puede estar el embudo, ni iba a serlo nunca. Lo que compra son los edge cases que se pueden ver por adelantado en lugar de los que un desarrollador encuentra en un sprint, y un objeto compartido al que señalar cuando alguien pregunta si pensamos en un edge case muy específico.

02

Comparar ocho plataformas en siete países

Empezó como una pregunta con una respuesta compleja: ¿qué incluyen las otras plataformas en el precio por noche?

Responderla con honestidad significaba decidir contra quién comparar, dónde y bajo qué reserva. Entonces: Findhotel contra Expedia, Booking, Agoda, Skyscanner, TripAdvisor, Airbnb y Kayak, porque son con los que la empresa ya se medía. En los Países Bajos, Alemania, el Reino Unido, Australia, Bielorrusia, Indonesia e Israel, porque son los mercados donde nuestras propias reglas de visualización de precios ya diferían.

Los resultados comparables necesitan un control, así que cada búsqueda fue la misma búsqueda: Park Plaza Victoria en Ámsterdam, un adulto, una habitación, para la noche del 13 de octubre de 2020, un hotel elegido precisamente porque lleva tanto un impuesto municipal como una cuota de turismo. Las búsquedas se corrieron en septiembre, con un mes de anticipación, que es más o menos cuando alguien reserva una escapada urbana. Una segunda pasada pidió dos noches, del 13 al 15 de octubre, en los cinco mercados donde la primera había levantado una duda. Donde una plataforma no tenía ese hotel, se usó el equivalente más cercano y se anotó la sustitución.

¿Plataforma incluye impuesto general en tarifa por noche?

Sí, desde los resultados de búsqueda en adelante

No, solo en el checkout

Nombra la tarifa base y el total juntos

¿Plataforma incluye impuesto local en tarifa por noche?

Sí, desde los resultados de búsqueda en adelante

No, solo en el checkout

Nombra la tarifa base y el total juntos

Two questions, asked at every platform

Does the nightly rate include the general tax – the sales tax the platform itself collects?

Does the nightly rate include the local tax – the city or tourist tax the destination collects?

  • Included from the start
  • Revealed in checkout
  • Inconsistent
  • Stated separately

Two searches, one hotel

FindHotel
Local General
Market Incl.: Included from the start Held: Revealed in checkout Mix: Inconsistent Split: Stated separately Incl.: Included from the start Held: Revealed in checkout Mix: Inconsistent Split: Stated separately
GermanyDE: Germany Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately
NetherlandsNL: Netherlands Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately
United KingdomUK: United Kingdom Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately
AustraliaAU: Australia Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately
BelarusBY: Belarus Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately
IndonesiaID: Indonesia Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately
IsraelIL: Israel Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately
Expedia
Local General
Market Incl.: Included from the start Held: Revealed in checkout Mix: Inconsistent Split: Stated separately Incl.: Included from the start Held: Revealed in checkout Mix: Inconsistent Split: Stated separately
GermanyDE: Germany Included from the startNot: Revealed in checkoutNot: InconsistentStated separately Included from the startNot: Revealed in checkoutNot: InconsistentStated separately
NetherlandsNL: Netherlands Included from the startNot: Revealed in checkoutNot: InconsistentStated separately Included from the startNot: Revealed in checkoutNot: InconsistentStated separately
United KingdomUK: United Kingdom Included from the startNot: Revealed in checkoutNot: InconsistentStated separately Included from the startNot: Revealed in checkoutNot: InconsistentStated separately
AustraliaAU: Australia Included from the startNot: Revealed in checkoutNot: InconsistentStated separately Included from the startNot: Revealed in checkoutNot: InconsistentStated separately
BelarusBY: Belarus Included from the startNot: Revealed in checkoutNot: InconsistentStated separately Included from the startNot: Revealed in checkoutNot: InconsistentStated separately
IndonesiaID: Indonesia Included from the startNot: Revealed in checkoutNot: InconsistentStated separately Included from the startNot: Revealed in checkoutNot: InconsistentStated separately
IsraelIL: Israel Included from the startNot: Revealed in checkoutNot: InconsistentStated separately Included from the startNot: Revealed in checkoutNot: InconsistentStated separately
Airbnb
Local General
Market Incl.: Included from the start Held: Revealed in checkout Mix: Inconsistent Split: Stated separately Incl.: Included from the start Held: Revealed in checkout Mix: Inconsistent Split: Stated separately
GermanyDE: Germany Included from the startNot: Revealed in checkoutNot: InconsistentStated separately Included from the startNot: Revealed in checkoutNot: InconsistentStated separately
NetherlandsNL: Netherlands Included from the startNot: Revealed in checkoutNot: InconsistentStated separately Included from the startNot: Revealed in checkoutNot: InconsistentStated separately
United KingdomUK: United Kingdom Included from the startNot: Revealed in checkoutNot: InconsistentStated separately Included from the startNot: Revealed in checkoutNot: InconsistentStated separately
AustraliaAU: Australia Included from the startNot: Revealed in checkoutNot: InconsistentStated separately Included from the startNot: Revealed in checkoutNot: InconsistentStated separately
BelarusBY: Belarus Included from the startNot: Revealed in checkoutNot: InconsistentStated separately Included from the startNot: Revealed in checkoutNot: InconsistentStated separately
IndonesiaID: Indonesia Not recorded Not: Included from the startRevealed in checkoutNot: InconsistentNot: Stated separately
IsraelIL: Israel Included from the startNot: Revealed in checkoutNot: InconsistentStated separately Included from the startNot: Revealed in checkoutNot: InconsistentStated separately

More platforms

Agoda
Local General
Market Incl.: Included from the start Held: Revealed in checkout Mix: Inconsistent Split: Stated separately Incl.: Included from the start Held: Revealed in checkout Mix: Inconsistent Split: Stated separately
GermanyDE: Germany Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately
NetherlandsNL: Netherlands Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately
United KingdomUK: United Kingdom *Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately *Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately
AustraliaAU: Australia *Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately *Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately
BelarusBY: Belarus Not: Included from the start*Revealed in checkoutNot: InconsistentNot: Stated separately Not: Included from the start*Revealed in checkoutNot: InconsistentNot: Stated separately
IndonesiaID: Indonesia Not: Included from the start*Revealed in checkoutNot: InconsistentNot: Stated separately Not: Included from the start*Revealed in checkoutNot: InconsistentNot: Stated separately
IsraelIL: Israel Not: Included from the start*Revealed in checkoutNot: InconsistentNot: Stated separately Not: Included from the start*Revealed in checkoutNot: InconsistentNot: Stated separately
Booking.com
Local General
Market Incl.: Included from the start Held: Revealed in checkout Mix: Inconsistent Split: Stated separately Incl.: Included from the start Held: Revealed in checkout Mix: Inconsistent Split: Stated separately
GermanyDE: Germany Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately
NetherlandsNL: Netherlands Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately
United KingdomUK: United Kingdom Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately
AustraliaAU: Australia Not: Included from the startRevealed in checkoutNot: InconsistentNot: Stated separately Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately
BelarusBY: Belarus Not: Included from the startRevealed in checkoutNot: InconsistentNot: Stated separately Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately
IndonesiaID: Indonesia Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately
IsraelIL: Israel Not: Included from the startRevealed in checkoutNot: InconsistentNot: Stated separately Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately
KAYAK
Local General
Market Incl.: Included from the start Held: Revealed in checkout Mix: Inconsistent Split: Stated separately Incl.: Included from the start Held: Revealed in checkout Mix: Inconsistent Split: Stated separately
GermanyDE: Germany Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately
NetherlandsNL: Netherlands Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately
United KingdomUK: United Kingdom Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately
AustraliaAU: Australia Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately Not: Included from the startNot: Revealed in checkoutInconsistentNot: Stated separately
BelarusBY: Belarus Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately Not: Included from the startNot: Revealed in checkoutInconsistentNot: Stated separately
IndonesiaID: Indonesia Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately Not: Included from the startNot: Revealed in checkoutInconsistentNot: Stated separately
IsraelIL: Israel Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately
Skyscanner
Local General
Market Incl.: Included from the start Held: Revealed in checkout Mix: Inconsistent Split: Stated separately Incl.: Included from the start Held: Revealed in checkout Mix: Inconsistent Split: Stated separately
GermanyDE: Germany Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately
NetherlandsNL: Netherlands Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately
United KingdomUK: United Kingdom *Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately *Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately
AustraliaAU: Australia Not: Included from the startNot: Revealed in checkoutInconsistentNot: Stated separately Not: Included from the startNot: Revealed in checkoutInconsistentNot: Stated separately
BelarusBY: Belarus Not: Included from the startNot: Revealed in checkoutInconsistentNot: Stated separately Not: Included from the startNot: Revealed in checkoutInconsistentNot: Stated separately
IndonesiaID: Indonesia Not: Included from the startNot: Revealed in checkoutInconsistentNot: Stated separately Not: Included from the startNot: Revealed in checkoutInconsistentNot: Stated separately
IsraelIL: Israel Not: Included from the startNot: Revealed in checkoutInconsistentNot: Stated separately Not: Included from the startNot: Revealed in checkoutInconsistentNot: Stated separately
TripAdvisor
Local General
Market Incl.: Included from the start Held: Revealed in checkout Mix: Inconsistent Split: Stated separately Incl.: Included from the start Held: Revealed in checkout Mix: Inconsistent Split: Stated separately
GermanyDE: Germany Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately
NetherlandsNL: Netherlands Not: Included from the startRevealed in checkoutNot: InconsistentNot: Stated separately Not: Included from the startRevealed in checkoutNot: InconsistentNot: Stated separately
United KingdomUK: United Kingdom *Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately *Included from the startNot: Revealed in checkoutNot: InconsistentNot: Stated separately
AustraliaAU: Australia Not: Included from the startRevealed in checkoutNot: InconsistentNot: Stated separately Not: Included from the startRevealed in checkoutNot: InconsistentNot: Stated separately
BelarusBY: Belarus Did not appear to sell into Belarus that month.
IndonesiaID: Indonesia Not: Included from the startRevealed in checkoutNot: InconsistentNot: Stated separately Not: Included from the startRevealed in checkoutNot: InconsistentNot: Stated separately
IsraelIL: Israel Not: Included from the start*Revealed in checkoutNot: InconsistentNot: Stated separately Not: Included from the start*Revealed in checkoutNot: InconsistentNot: Stated separately

* Added the nights together only at checkout – search and room selection still quoted them one at a time.

El hallazgo está en las dos filas con estrella. Airbnb y Expedia fueron las únicas plataformas que respondieron ambas preguntas igual en todos los mercados, y la respuesta que dieron no fue ni sí ni no: nombran la tarifa base y el total al mismo tiempo. Todos los demás, Findhotel incluido, eligieron un número y esperaron que fuera el correcto para ese país.

El tablero también registra lo que no funcionó. Las cifras de Skyscanner no cuadraban, y TripAdvisor no parecía vender nada en Bielorrusia.

La tabla de abajo mostró sus precios de noviembre de 2020, para una sola habitación y para varias habitaciones.

Single room
Multiple rooms
Single room
Price details
1 room x 1 night$123.37
You saved 20% ⓘ
Taxes and fees ⓘ$11.10
Local taxPayable at property$7.06
Local taxPayable at property$8.64
Total$150.17
Pay now$134.47
Pay at property$15.70

Rates are quoted in US dollars. Taxes and/or property imposed fees of $15.70 will be collected by the property in the local currency (€13.34). Taxes and/or fees due at the property are based on current exchange rates, which may vary at time of travel.

Multiple rooms
Price details
2 rooms x 1 night$663.44
🏷 You saved 30% ⓘ
Taxes and fees ⓘ$59.72
Local taxPayable at property$14.12
Local taxPayable at property$46.44
Total$783.72
Pay now$723.16
Pay at property$60.56

Rates are quoted in US dollars. Taxes and/or property imposed fees of $60.56 will be collected by the property in the local currency (€51.47). Taxes and/or fees due at the property are based on current exchange rates, which may vary at time of travel.

Single room
Your Genius Price Summary
Small Double RoomIncludes Genius benefit€ 58.83
9 % VAT€ 5.29
Tourism fee€ 3
7 % City tax€ 4.12
Price € 71.24 (for 1 guest)
Multiple rooms
Check-in
Thu 22 Oct 2020
Check-out
Fri 23 Oct 2020
1 night, 2 roomsChange dates

FREE cancellation before 23:59 on 20 October 2020

2 rooms€ 249.36
9 % VAT€ 22.44
Tourism fee€ 12
7 % City tax€ 17.46
Total price due at stay:€ 301.26
Now you’ll pay€ 0

No payment needed now. You’ll pay at the property.

Single room
Original price (1 room x 1 night)€ 413.76
Price (1 room x 1 night)€ 60.00
Booking feesFREE
Price ⓘ€ 60.00

Included in price: Hotel tax and service fees € 4.95

Not included in price (collected by the property): City Tax € 3.85

We price match. Find it for less, and we’ll match it! ⓘ

YOU SAVED € 353.76 ON THIS BOOKING!

Multiple rooms

14% OFF TODAY

Original price (2 rooms x 1 night)€ 139.36
Our price€ 135.00
✓ 24HOURSALE Coupon applied-€ 15.96
Price (2 rooms x 1 night)€ 119.04
Booking feesFREE
Price ⓘ€ 119.04

Included in price: VAT 9%

Not included in price (collected by the property): City Tax € 12.50

We price match. Find it for less, and we’ll match it! ⓘ

YOU SAVED € 15.96 ON THIS BOOKING!

Single room
1 night£205.25
Taxes and fees£36.06
Value Added Tax£18.66
Local tax (Pay on arrival)£17.40
Total£241.31
Pay now £223.91
Pay on arrival £17.40 (19.22 EUR) ⓘ
The price shown in GBP is for reference only and it may change. Payment at check-in must be in EUR. Reference exchange rate: 1.00 GBP=1.1046028974 EUR

🚗 Free cancellation

Multiple rooms
Single room
Budget Twin Room Shared Bathroom
📅 Tue, 10/20 - Wed, 10/21Change Dates
Nightly Rate€55.05
Rooms1
Nights1
Guests2
Subtotal€55.05
Taxes and Fees€14.80
Total:€69.85

Book now. Pay later when you stay.

Free Cancellation until Oct 18, 2020 ⓘ

Multiple rooms
Standaard driepersoonskamer, 3 eenpersoonsbedden
📅 Wed, 10/21 - Thu, 10/22Change Dates
Nightly Rate€57.80
Rooms2
Nights1
Adults4
Children1
Subtotal€115.60
Taxes and Fees€30.50
Total:€146.10

Non Refundable ⓘ

Single room
Summary

1 room, 2 guests, 2 nights
Fri 09-11-2020 - Sun 09-13-2020


Charges
Standard Double Room$281.39
Taxes, Fees & Surcharges$25.31
City taxPayable at hotel.$33.86
Total ⓘ$340.56
€288.70
Multiple rooms
Summary

2 rooms, 4 guests, 2 nights
Fri 09-11-2020 - Sun 09-13-2020


Charges
Standard Queen Room$389.61
Taxes, Fees & Surcharges$35.05
City taxPayable at hotel.$55.59
Total ⓘ$480.25
€407.12
Single room
Price
Room Subtotal:USD 105.60
USD 88.00

(US$44.00/night x 2 nights)

Taxes & Fees:USD 19.97
Total Price:USD 107.97
You Saved:USD 17.60
Cancellation Policy:
Learn more
Refundable until Oct 02, 2020
Promo Code ▾ Credits ▾
Multiple rooms
1 Night, 4 GuestsChange Dates
☐ VIP Package for $2.99 ⓘ Included: Free upgrade call, 24hr Concierge, Priority Support line

Price
Room Subtotal:USD 87.92
USD 79.29

(US$79.29/night x 1 night)

Tips:USD 1.00
Taxes & Fees:USD 14.27
Total Price:USD 94.56
You Saved:USD 8.63
Tip $1 for saving you $8.63? ⓘ Your support helps us deliver the best in hotel deals.
$1
No Tip$10
Cancellation Policy:
Learn more
Non Refundable
Single room
1 room x 1 night€61.98
Taxes & fees€5.26
VAT€5.26
Special Discount- €3.60
Subtotal (Pay to Trip.com)€63.64

Additional Fees (Pay at Hotel)

City Tax€4.09
City Fee€6.00
Total€73.73

Taxes and fees may vary upon arrival

Multiple rooms
Check-in: Tue, Oct 13
Check-out: Wed, Oct 14
1 night
Rooms: 2
Prepay Online €138.04

Taxes due at hotel: ≈ €53.72


×Price Summary

Prepay Online
An online prepayment of €138.04 is required to book this room.

Included in the price: Breakfast not included

2 rooms x 1 night€140.63
Taxes & fees ⓘ€11.41
Silver Tier Deal-€14
Subtotal (Pay to Trip.com)approx. €138.04
Additional Fees (Pay at Hotel)€53.72

other tax and fee

Totalapprox. €191.76
(Local currency: US$225.58)

Taxes and fees may vary upon arrival

Receive after stay:★ 130

130 Trip Coins = €1.11

Best stay with free cancellation

Single room
Summary
🔒 Price Guarantee
Friday, September 11, 202070,18€
Taxes and fees6,31€
City tax10,91€
Includes Your Secret Price: You’re saving 9% as a member
Total price87,40€

for 1 room, 2 guests, 1 night
including taxes and fees

Payment schedule
Due now76,49€
Due at property10,91€

📈 This price may increase if you book later.

Multiple rooms
Summary
🔒 Price Guarantee
Average nightly rate$204.14 CAD

Superior Twin Room 👤👤

Free cancellation

Wednesday, October 14, 2020$189.13 CAD

Executive Double Room 👤👤👤

Free cancellation

Wednesday, October 14, 2020$219.15 CAD
Taxes and fees$36.74 CAD
City tax$47.28 CAD
Includes Your Secret Price:
Total price$492.30 CAD*

for 2 rooms, 5 guests, 1 night
including taxes and fees

Payment schedule
Due now$445.02 CAD
Due at property$47.28 CAD
(30,34€)

*Prices are quoted in CAD based on the current exchange rate. The amount due at the property is payable in EUR.

📈 This price may increase if you book later.

Esas siete imágenes representan la materia prima de la que se leyó la matriz. Cada uno es el panorama completo de un país capturado en una sola pasada, que es también por qué el estudio lleva fecha: así se veían estos sitios en septiembre de 2020.

03

Ideación, y luego acotar el alcance

Yo dirigí las sesiones de ideación, y el benchmark es lo que hizo que valieran la pena. Llevar a un equipo por lo que ocho competidores le hacen a la misma reserva es una forma más rápida de establecer qué es posible que cualquier opinión. Mueve la conversación de opiniones sobre el precio a observaciones sobre los precios.

Después de cada sesión venía el alcance, con el product owner y el científico de datos. Dos preguntas, siempre en este orden: "¿Cómo se vería la respuesta correcta si nada estorbara el desarrollo?", y "¿Cuál es la pieza más pequeña que podríamos desarrollar para poner en tráfico real?". La distancia entre esas dos respuestas formó el roadmap.

04

Un prototipo lo bastante barato para discutirlo

Los wireframes se volvieron un prototipo clicable, mantenido tosco a propósito. El público eran los stakeholders y cualquiera en la empresa con algo en juego en el resultado, y una pantalla que se ve terminada invita a una conversación sobre qué tan terminada se ve. Una gris invita a una conversación sobre el precio.

Después pruebas de guerrilla, que aquí significa agarrar a quien esté disponible y verlo intentarlo. No sustituye a un estudio y nunca se ofreció como tal. Atrapa lo obvio, y genera las preguntas que vuelven al equipo como investigación de verdad: qué pasa cuando la moneda del viajero no es la moneda del proveedor, qué pasa con varias habitaciones, qué pasa cuando el cargo es mayor que la habitación.

El flujo entero en un teléfono, en bandas por etapa, en la forma en que se discutió por primera vez. Sigue más allá del checkout hasta los correos, la gestión de reservas y la cancelación.

05

Convertirlo en tickets

Un diagrama del happy path y de los edge cases que importan, con cada rama cargando la pantalla que produce. De ese dibujo un product owner escribe tickets. También es el artefacto al que vuelvo en el paso siete, cuando la pregunta es si lo construido hace lo que se acordó.

06

Entregarlo al front-end

Pantallas de alta fidelidad, diseñadas con la guía de estilo y la librería de componentes de la empresa, de modo que un desarrollador ensambla piezas conocidas en lugar de interpretar una imagen. Las pantallas clave entraron a Zeplin en escritorio y móvil, que es de donde salen el padding, el color y el icono.

07

Revisar lo construido contra los escenarios

En cuanto los desarrolladores tenían algo sin lanzar, yo recorría a mano los escenarios acordados para ese sprint. Aquí es donde el mapa del paso uno y el diagrama del paso cinco se pagan solos, porque de lo contrario la respuesta a si todo quedó cubierto es el recuerdo que alguien tiene de una conversación.

08

Dos grabaciones de producción

Una vez que está en vivo, la pregunta cambia de si funciona a qué hace la gente con ello. FullStory graba sesiones reales y permite segmentar por comportamiento o por dónde está alguien, y todo lo que encontré digno de guardar, un error o una idea o un hábito que nadie había previsto, iba a un documento.

Dos de esas sesiones están aquí porque cada una muestra algo que una tasa de conversión no puede. Una es un viajero estadounidense en el lado B que va de la selección de habitación hasta el checkout. La otra es un viajero en Japón que abre el desglose del precio de una habitación, que es exactamente el gesto que este proyecto existió para volver valioso.

Estados Unidos, de la selección de habitación al checkout, en el lado B de la prueba

Japón, abrir el desglose del precio desde la página de selección de habitación

09

Hacer el cambio legible para los colegas

El último paso es el que decide si alguno de los otros viaja. El product owner y el científico de datos escribieron el relato legible; mi parte fue dibujar los dos lados uno contra otro para que alguien que nunca había estado en una sola reunión sobre esto pudiera hacer scroll una vez y ver qué se movió.

Los dos tableros de abajo recorren el mismo trayecto dos veces, selección de habitación a la izquierda y checkout a la derecha, con los puntos de decisión presentados como preguntas y el panel resultante bajo cada rama. Ponlos uno junto al otro y el cambio entero son tres cosas: el cargo recupera su nombre, lo que pagas ahora se separa de lo que pagas allá, y una frase dice quién lo cobra.

Selección de habitación

¿Más de una noche, o más de una habitación?

1 noche, 1 habitación
You found the best deal
FH FindHotel
CLP 59,803CLP 51,381

Resort Tower Two Queen …

14% off Partially refundable rate
Deal details

Compared with 2 other sites No changes

Hotels
Resort Tower Two Queen …

Non-refundable rate
Booking
Resort Tower Two Queen …

Non-refundable rate

Nightly price including taxes and fees

CLP 59,803

CLP 51,381 Nightly price including taxes and fees

Price details 14% off

1 night x 1 room
CLP 17,540.28
Taxes and fees
CLP 2,699.71
Due at property
CLP 31,140.86
Resort fee
CLP 31,109.12
Total
CLP 51,380.86
Total
CLP 51,328.48
2 noches, 2 habitaciones
You found the best deal
FH FindHotel
CLP 74,531CLP 62,031

Resort Tower Two Queen …

17% off Partially refundable rate
Deal details

Compared with 2 other sites No changes

Hotels
Resort Tower Two Queen …
CLP 74,507
Non-refundable rate
Booking
Resort Tower Two Queen …
CLP 74,531
Non-refundable rate

Nightly price per room including taxes and fees

CLP 74,531

CLP 62,031 Nightly price per room including taxes and fees

Price details 17% off

2 nights x 2 rooms
CLP 26,773.45 average per night per room
CLP 107,093.81
Taxes and fees
CLP 4,116.28 average per night per room
CLP 16,465.10
Due at property
CLP 124,563.46
Resort fee
CLP 31,109.12 average per night per room
CLP 124,436.48
Total
CLP 248,122.37
Total
CLP 247,869.44
Checkout

¿La moneda del huésped es distinta a la del hotel?

Nothing tells the guest which currency they will pay in at the property.

Pay now
$25.79
Pay at property
$39.68

Pay at property amount will be collected by the property in the local currency.

¿Se debe algo en el hotel?

¿Más de una noche, o más de una habitación?

1 noche, 1 habitación

1 King Bed, Nonsmoking

Non-refundable rate

Price details 5% off

1 night x 1 room
CLP 41,437.44
Taxes and fees
CLP 12,690.22
Total price
with taxes & fees
CLP 54,127.66
($68.97)
Total
CLP 54,127.66
Total saving
CLP 2,862.46
Total saving
CLP 2,862.46

The price is converted to show you the approximate cost in CLP. You’ll pay in USD.

The price is converted to show you the approximate cost in CLP. You’ll pay now in USD ($68.97).

2 noches, 2 habitaciones

1 King Bed, Nonsmoking

Non-refundable rate

Price details 5% off

2 nights x 2 rooms
CLP 41,437.44 per night per room
CLP 165,749.76
Taxes and fees
CLP 12,643.13 per night per room
CLP 50,572.51
Total price
with taxes & fees
CLP 216,322.27
($275.64)
Total
CLP 216,322.27
Total saving
CLP 11,633.11
Total saving
CLP 11,633.11

The price is converted to show you the approximate cost in CLP. You’ll pay in USD.

The price is converted to show you the approximate cost in CLP. You’ll pay now in USD ($275.64).

¿Más de una noche, o más de una habitación?

1 noche, 1 habitación

Resort Tower Two Queen Room

Partially refundable rate

Price details 14% off

1 night x 1 room
CLP 17,540.28
Taxes and fees
CLP 2,699.71
Due now
CLP 20,239.99
Due at property
CLP 31,109.12
Resort fee
CLP 31,109.12
Total price
with taxes & fees
CLP 51,380.86
($65.47)
Total
CLP 51,328.48
Total saving
CLP 8,422.44
Total saving
CLP 8,474.82
Pay now
CLP 20,219.36
Pay at property
CLP 31,109.12

The price is converted to show you the approximate cost in CLP. You’ll pay in USD.

The price is converted to show you the approximate cost in CLP. You’ll pay now in USD ($25.79). Pay at property amount will be collected by the property in the local currency.

2 noches, 2 habitaciones

Resort Tower Two Queen Room

Partially refundable rate

Price details 17% off

2 nights x 2 rooms
CLP 26,773.45 per night per room
CLP 107,093.81
Taxes and fees
CLP 4,112.08 per night per room
CLP 16,465.10
Due now
CLP 123,558.91
Due at property
CLP 124,436.48
Resort fee
CLP 31,109.12 per night per room
CLP 124,436.48
Total price
with taxes & fees
CLP 248,122.37
($316.16)
Total
CLP 247,869.44
Total saving
CLP 50,001.57
Total saving
CLP 50,254.50
Pay now
CLP 123,432.96
Pay at property
CLP 124,436.48

The price is converted to show you the approximate cost in CLP. You’ll pay in USD.

The price is converted to show you the approximate cost in CLP. You’ll pay now in USD ($157.44). Pay at property amount will be collected by the property in the local currency.

Prototipo

El prototipo mismo

The scenario selector, offering a one night one room stay and choice of World, French or American user

Scenario selector

Un flujo, tres regiones: la misma figura compartida que corre el prototipo del planificador de rayos X, apuntada ahora a este archivo. Elige una región para ver cómo se arma el precio total ahí.

Prototipo

El prototipo de Figma donde se probó el concepto, con un flujo mostrado para tres regiones. Haz clic fuera de un control para ver qué se puede pulsar.

Conclusión

Lo que dijeron cinco semanas de tráfico

+3.5%

Conversión, para viajeros fuera de Estados Unidos, en una prueba de cinco semanas.

Los mercados con impuestos incluidos se movieron más

El efecto fue más marcado donde la gente ya espera que un precio mostrado contenga el impuesto. Lo que habíamos incorporado no era impuesto en absoluto: eran los cargos de hospedaje que estaban a su lado.

Escritorio arriba, móvil abajo

El tráfico de escritorio convirtió mejor. El tráfico móvil convirtió un poco peor, con el mismo cambio, en las mismas semanas.

Con una semana de anticipación, mejor

Las reservas hechas con cerca de una semana de anticipación mejoraron. Las de último minuto quedaron un poco peor, que es el patrón que esperarías si leer toma un tiempo que alguien no tiene.

Apuntamos esto a viajeros estadounidenses que llegaban desde Google hotel ads, con el argumento de que eran el grupo más grande y valioso del sitio. La ganancia vino de todos los demás lados.

Eso no es un fracaso, pero es un resultado sobre el objetivo y no sobre el cambio, y merece leerse así. Un mercado donde el precio mostrado ya contiene el impuesto ha entrenado a sus viajeros para esperar que el número de la tarjeta sea el número que pagan. Rompe esa expectativa y la corrección vale mucho. Un mercado donde el impuesto se agrega al final ha entrenado la expectativa contraria, y ahí había menos que corregir.

Cada cargo con su propia línea es una línea más, y un teléfono es donde una línea cuesta más. Nadie midió cuál de los dos efectos hacía el trabajo, así que lo que el resultado dice de verdad es que la claridad no es gratis en todas partes y que este proyecto nunca averiguó dónde deja de pagarse.

Lo que vino después

Para diciembre de 2020 el trabajo se había vuelto un documento y no una pantalla: un mapa de cómo debe expresarse un precio en cada etapa del embudo, de los resultados de búsqueda pasando por la selección de habitación y los detalles de la oferta hasta el checkout. Cuatro tableros, uno por etapa, cada uno la regla y no un ejemplo de ella.

Aquí también es donde se encuentran los dos proyectos de Findhotel en este sitio. Al fondo de ese tablero de checkout hay una elección entre pagar ahora y pagar en el hotel, y darle esa elección a alguien como se debe es un caso de estudio propio. Nombrar lo que cobra el hotel es lo que hizo posible ofrecerla.

Esos tableros son las reglas. Lo que la página original ofrecía a continuación era la cosa misma: un prototipo clicable de las tres lógicas de visualización de precios que el sitio corría a la vez, para que un lector pudiera probarlas en lugar de leer sobre ellas.

Aprendizajes

Los ganadores rechazaron la pregunta
Dos de las ocho plataformas respondieron ambas preguntas de forma idéntica en todos los mercados, y su respuesta fue mostrar la tarifa base y el total juntos en lugar de elegir entre ellos. Yo había construido el estudio alrededor de una dicotomía y el mejor resultado en él era una tercera opción. Vale la pena recordarlo la próxima vez que un instrumento de investigación solo ofrezca las respuestas que se me ocurrieron.
Un nombre es el arreglo más barato de la página
La parte medible de este cambio es una palabra. Un monto por pagar en el hotel se volvió una tarifa de resort, y el mismo dinero se volvió algo sobre lo que un viajero podía razonar. Ninguna maquetación, ningún componente, ningún sprint de ingeniería logró tanto como el redactor renombrando una fila.
La claridad tiene un tamaño de pantalla
Escritorio subió y móvil bajó en el mismo lanzamiento. Un precio desglosado es más información, y más información es barata en una pantalla ancha y cara en una angosta. Ahora trataría un desglose como algo que hay que diseñar dos veces en lugar de reacomodar una.
FPS: -- MEM: --