An open, pre-registered study
The lowest measured friction score of 12 systems
We tested 12 hotel booking systems the same way: automated runs, pre-registered, raw data public. Plekify scored 10.9 on the friction index, the lowest measured. 19 seconds, search to confirmed booking, zero handoffs, on the hotel's own domain.
Plekify Booking Friction Study (open repository, v2 grounded LFI + ARS)
github.com · 2026
Plekify 10.9 / Mews 16.6 / NightsBridge 22.9 / SiteMinder 29.4. Agent-Readiness: Plekify 3.0 (only open-web agent-ready system).View source
Recipe
Shopify checkout, the Plekify app, Apaleo: the recipe that scored lowest.
Shopify checkout: the conversion layer
250M+ buyers already use Shop Pay. Shop Pay converts up to 50% higher than guest checkout. Checkout is one page, hosted on the hotel's own domain, secured to PCI-DSS Level 1. This is the layer where bookings are won or lost.
Plekify: the bridge
Plekify connects PMS inventory to a Shopify storefront on the hotel's own domain. Zero handoffs. 19 seconds to a confirmed booking. Friction index 10.9, the lowest of 12 systems measured in this study.
Apaleo: the system of record
Rates, availability and operations stay in the PMS, exactly where hoteliers expect them. Plekify is the booking engine; Apaleo is the system of record, run on an open API. Read more about how Apaleo works.
Together, Shopify checkout, Plekify and Apaleo form the highest-conversion recipe measured in this study.
Findings
Three headline results
Shopify checkout, the Plekify app and Apaleo produced a 19 second checkout, 0 handoffs and a friction index of 10.9. Shop Pay's 250M+ buyers and its up to 50% higher conversion than guest checkout complete the recipe.
Off-domain booking engines, NightsBridge's included, carry a handoff penalty: 1 handoff, 16 form fields, friction index 22.9 vs 10.9. Industry data puts direct bookings more than 60 percent above OTA value ($519 vs $320), with cancellation rates of 10.6 percent vs 21.8 percent. See /pages/nightsbridge.
For hotels running NightsBridge today, read what the handoff penalty means in practice.
Most systems score at or below 2.0; agents get blocked at the cart (Cloudbeds) or at identity walls (OTAs). Only Plekify scores Open, 3.0 — the agent-readiness story continues at /pages/mcp.
The table
All 12 Systems, Side by Side
Friction index: lower is better. Agentic-readiness score: higher is better. Form fields, handoffs, outcome, and payment method are reported as measured, no adjustment.
| System | Friction (LFI) | Fields | Domain hand-offs | Outcome | Payment | ARS | Apaleo IBE † |
|---|---|---|---|---|---|---|---|
| Plekify | 10.9 | 0 (Shop Pay) / 22 (guest) | 0 | reached payment · 19s | Shop Pay · Apple Pay · Google Pay · card | 3.0 | † |
| Mews | 16.6 | — | 1 | reached payment · 67% | card (Mews Payments) | 1.9 | † |
| NightsBridge | 22.9 | 16 | 1 | reached payment | card · EFT | 1.35 | † |
| SiteMinder | 29.4 | 14 | 1 | reached payment | card (property gateway) | 1.5 | † |
| Cloudbeds | — | — | — | agent-blocked at cart (isTrusted guard) | — | 2.0 | † |
| RoomRaccoon | — | — | — | agent-blocked (kept as exhibit) | — | 1.4 | † |
| Booking.com | — | — | — | API gated · bot-defended | — | 1.8 | † |
| Airbnb | — | — | — | closed API · login-walled | — | 1.25 | † |
| Expedia | — | — | — | hard bot-wall | — | 0.6 | † |
| Travelstart | — | — | — | bot-walls · login-walls | — | 1.4 | † |
| Stayntouch | — | — | — | — | — | 1.6 | † |
| OPERA-ecosystem | — | — | — | — | — | 1.2 | † |
| Apaleo IBE | — | — | 0 (API-driven, same domain) | no public demo IBE to walk | card via Apaleo Pay (Adyen Drop-in) | — | — |
† Apaleo IBE not scored. Apaleo is the system of record in this study; Plekify is the booking engine tested.
Provisional: 3-run morning sample. Full-day sampling to follow.
Methodology
Methodology
Friction index: lower is better. Agentic-readiness score: higher is better. Form fields, handoffs, outcome, and payment method are reported as measured, no adjustment.
01What we measured
We measured real booking flows on one test property, in one market, using automated runs. Every run's raw output is posted to a public GitHub repo. The protocol was pre-registered before any run took place, so the metrics, formula and scope were fixed in advance, not fitted to the results afterward. This page reports what that protocol produced. Nothing here was measured retroactively or adjusted after the fact.
02The systems under test
We tested 12 systems spanning four categories: hotel IBEs, PMS booking engines, channel managers and OTAs. Each system completed the same booking task on the same property, dates and party size. The set was chosen to represent how hoteliers actually sell today, not to isolate a single competitor. Full system names and configurations are listed in the public repo alongside the raw run data.
03The friction formula
Friction is scored as `F = C + 6.6H + Fld_excess + P + 9.8I − 3.7A − 5.4Acc`. Each letter corresponds to a measurable step in a real checkout: clicks, domain handoffs, excess form fields, page-load time, interactive interruptions, address autocomplete and accelerated checkout. The formula is pre-registered and frozen. We disclose a known discrepancy in panel 4 rather than silently reconcile it.
F = C + 6.6H + Fld_excess + P + 9.8I − 3.7A − 5.4Acc
04The weights
Weights: C clicks 1.0 · H domain handoffs 6.6 · Fld_excess form fields beyond 8, 1.0 · P page-load seconds 1.7 · I interactive interruption (CAPTCHA or challenge) 9.8 · A address autocomplete −3.7 · Acc accelerated checkout (Shop Pay, Apple Pay, Google Pay) −5.4. Weights are calibrated to the Form-Field Unit, where one field equals 4.1% relative conversion loss. Disclosure: the displayed formula string shows P unweighted, while the pre-registered protocol carries P at 1.7. The string is frozen as originally published; the discrepancy is disclosed here rather than silently reconciled.
| Signal | Weight |
|---|---|
| C — clicks | 1.0 |
| H — domain hand-offs | 6.6 |
| Fld_excess — form fields beyond 8 | 1.0 |
| P — page-load seconds | 1.7 |
| I — interactive interruption (CAPTCHA/challenge) | 9.8 |
| A — address autocomplete | −3.7 |
| Acc — accelerated checkout | −5.4 |
05The agentic-readiness rubric
Agentic readiness is scored as `ARS = 0.20·SD + 0.15·BM + 0.20·CW + 0.15·AP + 0.20·API + 0.10·PA`, on a 0–3 scale. Signals: SD structured data, BM robots/bot posture, CW CAPTCHA/WAF friction, AP express payments, API public API, PA protocol adherence. "Agent-ready" means an autonomous agent can discover and complete a booking on the open web without a private commercial agreement. This is separate from the friction score and measures a different property of each system.
| Signal | Weight |
|---|---|
| SD — structured data | 0.20 |
| BM — robots/bot posture | 0.15 |
| CW — CAPTCHA/WAF friction | 0.20 |
| AP — express payments | 0.15 |
| API — public API | 0.20 |
| PA — protocol adherence | 0.10 |
06Intent-to-treat and outcomes
We used intent-to-treat: every system starts every run, with no exclusions after assignment. Timeouts score the maximum penalty rather than being dropped from the sample. Each run resolves to one of four outcomes: reached payment, redirected off-domain, agent-blocked, or errored. This taxonomy is applied consistently across all 12 systems so partial failures are counted, not discarded.
07Matching the properties
All compared systems were tested against the same property, the same dates and the same party size. This holds the booking task constant across systems so differences in friction and outcome reflect the checkout path itself, not variation in what was being booked. Property details and configuration are published in the repo.
08The statistics
Friction times are modeled as lognormal. Confidence intervals use cluster bootstrap with bias-corrected acceleration and 10,000 resamples. We also ran a sensitivity analysis on the un-recalibrated click weight to check whether results depend on that calibration choice. Full statistical code is in the public repo alongside the raw runs.
09Ethics
No real bookings were completed during any run. No CAPTCHA solving was performed. No terms-of-service violations occurred in the course of testing. Where a system presented a CAPTCHA or similar challenge, that run was scored as an interactive interruption and stopped there.
10Limitations and conflict of interest
This study covers one test property and one market; results may not generalize beyond that scope. The Mews result is provisional, based on a 3-run morning sample. Plekify sponsored this study and topped the table. We mitigate this conflict with a pre-registered protocol, a public repo of raw runs, and an open invitation to replicate or challenge the results.
11Replicate it
The full protocol, raw run data and scraper are published in the public GitHub repo. Anyone can rerun the study, audit the scoring, or extend it to another property or market. We built it this way because a friction study that cannot be checked is not evidence. Replication attempts and disputes are welcome.
Sources
Every Figure, Sourced
Each number on this page links to an inline popover citing its source. The full study, methodology, and raw runs sit in a public GitHub repo, open for inspection and replication.
- The open repository — pre-registered protocol, raw runs, code
- Shop Pay buyer network — Shopify Editions
- Shop Pay conversion lift vs guest checkout — Shopify Editions
- Direct vs OTA booking value — SiteMinder channel data
- Cancellation rates by channel — Cloudbeds Hospitality Industry Report
- Protocol & raw runs — the open repository
- PCI-DSS Level 1 — Shopify security
- Shopify uptime commitment
- Shop Pay network size — Shopify Editions
- Apaleo developer documentation — the open, API-first PMS platform
This study covers one test property in one market. Plekify sponsored the study and topped the table. The protocol was pre-registered before testing began, raw runs are public, and we invite replication by any hotelier, technologist, or competitor.
Trust
See it on your own inventory
Plekify is the live two-way bridge between your Apaleo PMS and Shopify — your rooms, your rates, your checkout, on your own domain.
The race
Six checkouts. One race. Time decides.
Each bar shows time to a confirmed booking. Plekify's 19 seconds is real measured time; other bars derive from each system's friction index. Mews (16.6) is provisional, from a 3-run morning sample, and flagged accordingly. The race replays continuously. With reduced motion enabled, it shows the final state only.
Cloudbeds and the OTAs (Booking.com, Expedia) stopped the automated runner at the cart step, before a measurable time-to-booking could be recorded.
Plekify Booking Friction Study (open repository, v2 grounded LFI + ARS)
github.com · 2026
Plekify 10.9 / Mews 16.6 / NightsBridge 22.9 / SiteMinder 29.4. Agent-Readiness: Plekify 3.0 (only open-web agent-ready system).View source
- C clicks
- H domain handoffs
- Fld_excess fields beyond 8
- P page-load seconds
- I interactive interruption (CAPTCHA/challenge)
- A address autocomplete
- Acc accelerated checkout
Plekify 10.9
Mews 16.6PROVISIONAL · n=3
NightsBridge 22.9
SiteMinder 29.4
Cloudbeds agent-blocked
OTAs · Booking / Airbnb / Expedia / Travelstart agent-blocked
Agent readiness
Can an AI agent actually book you
Agentic readiness measures whether an autonomous agent can see live rates, reach payment, and complete a booking on its own, without human intervention or a private commercial deal. Bar height shows the score out of 3. Higher means more agent-ready.
Rubric, raw signals and run data are public in the open repository.
Plekify Booking Friction Study (open repository, v2 grounded LFI + ARS)
github.com · 2026
Plekify 10.9 / Mews 16.6 / NightsBridge 22.9 / SiteMinder 29.4. Agent-Readiness: Plekify 3.0 (only open-web agent-ready system).View source
Open: agents can discover, price, and book without a private deal.
Partial: agents can see some data but hit friction before booking.
Gated: access requires negotiation, credentials, or a commercial agreement.
Blocked: agents cannot meaningfully discover or transact with the system.
Universal Commerce Protocol as defined by Shopify.
Shopify Spring '26 — Universal Commerce Protocol (UCP), co-developed with Google
shopify.com · 2026-06-17
Open protocol co-developed with Google; a live /.well-known/ucp manifest exposes catalog, cart and checkout to autonomous booking agents. Full developer spec: shopify.dev/docs/agents.View source
Talk to us
A small first cohort, shaping the product with us.
We're taking on a small first group of properties and collections who want to shape the product with us. Tell us about your property and your current stack; the founder reads every submission.