Amela
CASE STUDY / Yadori Tourism Hotels Co., Ltd.
Yadori Tourism Hotels Co., Ltd. — new platform launch story

ℹ︎For confidentiality, company names, project names and system images have been replaced with pseudonyms and mock-ups.

Crawling rates, inventory and bookings across many OTAs, Revenue management built in-house from scratch

StayScope crawls more than 20 booking sites (OTAs) every day, normalises each property's rates, inventory and booking pickup and analyses them in one place — a multi-tenant analytics platform for several accommodation operators, designed to carry a daily crawl in the hundreds of thousands of records.

This story covers the analytics foundation that turned rate decisions — once reliant on a revenue manager's instinct and manual work — into something data-driven, The story of launching a new platform, built in-house from scratch in about 10 months.

20+ sites
Cross-OTA crawling
Hundreds of thousands a day
Rate & inventory collection
-60%
Effort spent checking rates
Automation
Booking pickup analysis
01
CLIENT

About the client

Yadori Tourism Hotels Co., Ltd. operates several properties — resort, hot-spring and city hotels. The revenue management team decides rate revisions by watching daily OTA rates and competitor movements, but as the number of properties and OTAs grew, a way to see the data across all of them became essential.

6+ properties
Properties operated (model)
800+ rooms
Total rooms
20+ sites
Sales channels (OTA)
BUSINESS FLOW
STEP 1
OTA crawling

Rates, inventory and bookings collected automatically from each booking site

STEP 2
Normalisation

Properties, plans and currencies reconciled into unified master data

STEP 3
Analytics

Competitor comparison, pickup and occupancy made visible

STEP 4
Rate revision decisions

The revenue manager decides

02
CHALLENGE

The design problems to solve

Checking many OTAs by hand means things get missed and delayed

Staff opened each site one by one, and properties × OTAs made the combinations explode. Nobody could see the current lowest rate immediately.

Make competitors' movements visible and you can move first

Competitors' rate movements left no time series, so cuts and rises were noticed late.

Leave Excel tallying behind and the analysis starts to flow

Booking pickup was tallied by hand in Excel, leaving no capacity for year-on-year comparison or lead-time analysis.

Remove the delay in revising rates and lost opportunity is prevented

Demand signals were read too late, so raising rates on busy days and cutting them on quiet ones tended to happen after the fact.

03
ARCHITECTURE

The architecture we built together

Crawling, asynchronous processing, data normalisation and analysis — all four designed from scratch with scale and operability in mind, each problem met with a fitting technology choice.

Crawler engine (Selenium)
Problem: extract rates reliably from dynamically rendered OTA pages
Solution: reproduce the page flow in a headless browser and give each site its own parser so structural changes do not break it.
Asynchronous processing (Celery)
Problem: run hundreds of thousands of crawls a day in parallel, within the window
Solution: spread the work across a task queue by property × OTA, with retries and rate limiting for stable operation.
Data normalisation & storage
Problem: unify property names, plan names and currencies that differ per OTA
Solution: reconcile names through master data and keep competitor trends in a time-series schema.
Analytics dashboard (React)
Problem: give revenue managers a UI they can decide from immediately
Solution: gather KPIs, rate comparison and pickup on a single screen, with alerts to prompt attention.
Frontend / React
Backend / Django
Crawl & Infra / Selenium, Celery, AWS
Django React Selenium Celery AWS
04
IMPACT

The value the platform creates

A foundation showing the lowest rate instantly

Latest rates from every OTA gathered together, with today's lowest visible at a glance.

A foundation for tracking competitors

Competitor movements stored as a time series, so trend shifts are caught early.

A foundation for reading demand ahead

Compare booking pickup with last year to catch the first signs of a busy spell.

A foundation that keeps decisions moving

Alerts and revision proposals speed up the rate decision cycle.

Revenue managers
Typically

Walk each OTA by hand and set rates on instinct.

At Yadori Tourism Hotels,

Lowest rate, competitors and pickup on one screen.

Business impact

60% less effort checking rates, and faster decisions.

Front-line staff
Typically

Bookings tallied in Excel, and sharing lags.

At Yadori Tourism Hotels,

Booking detail and occupancy are visible in real time.

Business impact

Tallying automated, and the load on staff eased.

Management
Typically

Revenue metrics across properties are hard to see.

At Yadori Tourism Hotels,

A multi-tenant view over every property.

Business impact

Supports data-driven management decisions.

Marketing
Typically

Acting without reading the wave of demand.

At Yadori Tourism Hotels,

Promotions tuned to the pickup trend.

Business impact

Demand-linked promotion improves ROI.

05
DEMO

Three scenarios

An interactive demo reproducing the real platform. Everything runs on mock data.

FLAGSHIP

Revenue dashboard

Lowest rate, competitor index, pickup and occupancy KPIs, rate comparison by OTA and demand alerts, all in one place.

Launch demo →
MONITORING

Rate monitoring

Sort and filter rates by OTA × plan, with the lowest and highest highlighted automatically and revision proposals on hand.

Launch demo →
ANALYTICS

Booking analysis

Booking pickup analysed by lead time and occupancy, with CSV export of the booking detail.

Launch demo →