Background
Booking.com is one of the world’s largest travel platforms, where small changes to how accommodation options are presented can shift behaviour at enormous scale. We worked within the Room Selection / Customer-360 area, building the data foundation behind a customer-insights dashboard used to understand how travellers engage with rooms and rates throughout the booking funnel — and to standardise how a travel product offering is represented across the organisation’s analyses.
The challenge
- Raw clickstream funnel events (room views, rate views, clicks, reserves) arrived as deeply nested JSON at very large scale.
- Stakeholders needed reliable engagement analytics split by device (desktop vs. mobile web) and by rate type (e.g. high-value vs. cheapest).
- Travel-product representations needed consistent, documented data models so different analyses spoke the same language.
- Outputs had to be reproducible and trustworthy enough to drive product and experimentation decisions.
Our approach
- Built PySpark jobs that flatten nested funnel events and aggregate customer engagement at week / month / year grain.
- Orchestrated the flow with Apache Oozie — a coordinator gating on input data-availability flags, running the jobs on a weekly cadence and writing completion flags downstream.
- Produced analytics tables for cheapest-rate click-through, high-value rate engagement, room-rate engagement, and offer positioning.
- Defined and documented standardized data models for travel-product offerings (product, offer, position, item details) consumed across teams.
- Designed outputs as idempotent full rebuilds for reproducibility, feeding a Tableau dashboard.
My role on the project
- Developing and maintaining the PySpark engagement jobs and their Hive output tables.
- Building and operating the Oozie coordinator/workflow and its data-availability gating.
- Keeping desktop and mobile-web logic correctly separated throughout the pipeline.
- Defining and documenting the travel-product data models used downstream.
Architecture
Funnel events
- Nested JSON
- Views · clicks · reserves
Oozie coordinator
- Done-flag gating
PySpark jobs
- Flatten & aggregate
- Week / month / year
Analytics tables
- Idempotent rebuild
- Desktop vs. mobile
Dashboard
- Tableau
Outcomes
- A reliable, reproducible insights pipeline powering the customer-engagement dashboard.
- Consistent engagement metrics across desktop and mobile web.
- Documented, reusable data models standardizing travel-product representation across analyses.
