LPMS feature

Building B2B Marketplace for Luxury Vacation Rentals: Based on Our Experience

Maria Pavlenko
Maria Pavlenko, Tech Journalist

The luxury vacation rental market has experienced continuous growth, but expansion is accompanied by pain points, with manual processes and offline networks slowing down business for property managers, agents, and travelers alike.

To automate and streamline interactions between all parties involved, our team began developing a B2B marketplace in 2021, and we’re now ready to share our experience and the lessons learned along the way.

Luxury vacation rental market: what are we dealing with?

The global luxury vacation rental market was valued at USD 26.5 billion in 2024 and is projected to grow from USD 28.5 billion in 2025 to USD 63.7 billion by 2034, at a CAGR of 9.3 percent. North America holds the largest market share.

The market is expanding rapidly, fueled by both guest demand and investor interest. According to AirDNA research, the demand for stays priced $1,000-1,500 per night has surged by 73 percent from 2019 to 2024, while properties costing over $1,500 per night have seen a 91.4 percent increase.

How Luxury Travel is Now DifferentPlayButton

Luxury travel redefined

In terms of distribution, the luxury vacation rental market is categorized by bookings via  

  • online travel agencies (OTAs),
  • luxury-focused platforms,
  • direct channels (property website, email or phone reservations, etc.), and
  • concierge companies/travel agents.

While OTAs lead the market with a 45 percent share, direct bookings and concierge/travel agent channels, though smaller, are growing. Booking through dedicated travel agents or advisors is especially popular among ultra-high-net-worth (UHNW) travelers who seek discretion and personalized service. But this narrow niche has its own challenges – and that’s what we’re going to discuss.

First, this sector is highly fragmented, with many independent properties and interactions driven by personal relationships. As a result, communication between hosts, property management companies (PMCs), agents, and clients is often manual and time-consuming.

Another distinctive feature of this market is a certain mindset: Both PMCs and agents highly value and safeguard the relationships and networks they have built over time. They’re often unwilling to cooperate with competitors as they fear losing clients.

Yet growing demand is pushing the market toward more efficient operations and a shift in thinking. The real challenge is finding a balance between preserving curated, relationship-driven networks and introducing automation and scalability.

This is why B2B marketplaces, such as Villa Tracker and Onee, are now emerging – to connect concierge companies, travel agents, travel designers, event planners, and corporate retreat organizers to luxury property managers/owners.

The platform overview: how booking works

Initially, our client operated as a property management company, but eventually built an extensive network of partners, both agents and other PMCs. Managing all rates, availability, and amenities in Excel/Google Sheets – for both their properties and those sourced from their partner PMCs – was becoming increasingly inefficient.

So they decided to create a marketplace platform to match property suppliers and agents seeking a vacation rental on behalf of their clients. Here’s the standard booking flow on such a platform.

The booking flow

The booking flow

Browsing and selection. Through the marketplace interface, agents can search, filter, and compare listings in real time using map and calendar views. Each property displays detailed descriptions, photos, amenities, rates, and live availability. 

Quote creation. After selecting suitable properties for a client, the agent uses the quoting tool to compile them into a branded, customized quote. By default, preset commissions are applied, though the agent can also adjust the final price by adding markups. Extra services such as transfers or concierge support can also be included in the quote.  

Quote delivery. The link to the finalized quote is sent to the client via SMS or email, showcasing the selected properties in a clear, branded format with all relevant details and pricing.

Client decision. Upon receiving the quote, the client reviews the options and selects the preferred property. The booking request goes through the platform to the host to complete the reservation process. The agent is notified of any client’s actions.

Booking confirmation. The host organization confirms the booking based on current availability. Since the platform doesn’t process payments yet, all financial transactions between guests and hosts are external.

Through the open API, properties can also be shared with approved third-party B2C platforms (with the consent of the owners/managers) to expand visibility and distribution opportunities.

After speaking with the team working on the project, we can share a few insights we got along the way.

Addressing API integration challenges

Inventory data displayed on the marketplace is sourced from a centralized database, which aggregates listings from the proprietary property management system (PMS) and third-party systems.

To source inventory, we built an integration with three external systems:

  • BookingPal – a channel manager that many partner PMCs work with;
  • TrackPMS – vacation rental property management system; and
  • Rentals United (acquired by Guesty in 2024) – a popular vacation rental channel manager (that’s also connected to the client’s proprietary PMS).

For each integration, the complete process of tech development, testing, and certification took around 1.5-2 months.

As Paruyr Ghazaryan, the software engineer involved in building API connections, shared, “Integration projects are rarely trouble-free, because you’re dealing with external systems that operate with their own methods and communication protocols. Documentation may say one thing, but in practice, actual system behavior can be different.

"So it’s essential to plan for unexpected discrepancies and allocate time for testing and adaptation during integration.”

Among the issues we encountered were limitations on API calls. For example, some platforms restrict the number of requests to 10 per second; exceeding this threshold triggers an error, as the system interprets extra requests as spam.

This became a problem when multiple quotations were generated simultaneously, causing the request volume to surpass the allowed limit. To address this, we included a queuing system, ensuring that calls are processed sequentially rather than all at once. For this purpose, we developed a dedicated microservice using BullMQ, a Node.js message queue library built on top of Redis in-memory database.

Another key consideration in integration is the disparity between sandbox and production environments of PMS systems. Anna Pikula, the QA specialist, notes that “Sometimes the difference is so large that, after switching to live data, the integration may need substantial rework. That’s why, if possible, it’s best to use the production environment for building and testing the connection. It’s not always possible, but we had this opportunity provided by one of the client’s partners. If production access isn’t an option, be prepared for a post-launch stabilization period as you transition to real data.”

Keeping content up to date

Keeping content in the centralized inventory database up to date poses a separate challenge, as updating scenarios differ significantly across systems. Some systems send updates automatically, while others require requests for updates. Here’s a breakdown of the updating process we built.

The database maintains all static content (pictures, property descriptions, etc.) and a near-real-time cache of dynamic content (rates and availability).

For TrackPMS and Rentals United, we set up scheduled sync calls roughly every 15 minutes. These calls pull changes only to refresh calendars (instead of updating the entire dynamic content) and, if needed, property details. That keeps the database current without overloading the APIs.

With BookingPal, the approach is different. It doesn’t support pull requests, so dynamic content updates are sent automatically through push configuration. However, due to high data volume and congested queues, updates can take hours and may only arrive once or twice a day. Currently, the host manually triggers static property detail updates whenever there are any changes.

Regardless of the update method, when an agent creates a quote, the platform automatically sends a real-time request to the supplier’s system to confirm the latest availability. We also receive the full price breakdown, including fees (e.g., cleaning, breakage, etc.), taxes, insurance, deposit amount, and so on.

So the internal database is used as a fast, near-real-time snapshot to power search and calendar views, while every quote is validated with the supplier in real time to avoid overbookings and outdated information.

Developing a mapping functionality to standardize property details

In the hospitality industry, a common challenge is receiving inconsistent information about the same property from different sources. This often leads to duplicate listings, customer frustration, and lost revenue.

A typical solution to this issue is hotel content mapping, which is usually done by connecting with a specialized third-party provider – just as we did when developing a booking engine. This way, you can merge property IDs and other content from multiple sources.

However, in the luxury vacation rental space, the situation is different. While you don’t get duplicate listings because the inventories of all providers are unique, you still have to deal with inconsistent property information (such as amenities and descriptions) in varying formats and terms. For example, dates may appear in either numeric MM/DD/YY format or the mixed DD Month YYYY format.

To ensure consistency and make comparisons easier, we developed an internal mapping mechanism.

We defined a set of rules to transform various data fields into the standardized schema (e.g., converting “AC” to “Air conditioning,” or “Free internet” to “Free Wi-Fi”). We also standardized formats for values like currency and dates to ensure compatibility.

Then the converted data is stored in the relevant database fields.

There are two main approaches to mapping property data. The first is on the front end, where mapping happens in the user’s browser. While it works for small-scale applications, it can lead to inconsistencies as the system grows, especially across multiple pages.

The second approach – the one that we chose – is on the back end, where mapping logic is centralized. This ensures consistency, simplifies maintenance, and keeps business rules in one place, making it more scalable and easier to manage as the system expands.

Optimizing calendar performance

When selecting properties, agents can browse them in a list view, on a map, or through a calendar view.

The calendar view

The calendar view

The calendar features multiple properties on the same screen. For each property, a basic description, availability, prices, and a minimal length of stay are displayed for the month ahead. Additionally, the calendar view is equipped with various functionalities, including placing a property on hold, adding notes, and more.

Processing all that data created a massive system overload. Volodymyr Liubashenko, a front-end developer, shared a few things we did to optimize performance: “We implemented React Virtualized – a JavaScript library that optimizes the rendering of large lists and tables. Rather than loading all elements at once, it initially displays just the essential data needed for the first view (e.g., availability and prices).”

Volodymyr also mentioned that newer, more flexible libraries, like react-window and TanStack Virtual, offer even better performance options.

As agents interact with the calendar, separate, lazy-loaded requests are triggered to fetch additional or detailed data (such as photos, descriptions, and policies). We also paginate or chunk data where possible to prevent loading hundreds of records at once.

To further improve performance, we cache frequently accessed views and use efficient indexes to speed up database queries.

Since calendar views are notoriously complex and resource-heavy, frequent updates can strain the UI and backend. Whenever possible, we decouple calendar data fetching and updates from the UI itself, so changes happen smoothly without lag or blocking user interactions.

Dealing with changing commission logic

When a booking is made through the platform, the total amount paid by the guest is distributed among all involved parties based on predefined commission rates.

  • The agent earns a commission for facilitating the booking (including preset margins and optional custom markups added during quote creation).
  • The platform takes a service fee for providing the technology.
  • The host organization (property owner or manager) receives the remaining amount as their revenue.

In marketplaces with complex commission structures, it’s essential to architect your commission engine for maximum flexibility. Negotiated rates vary, overlap, and evolve—often affecting other calculations—so the system must adapt without breaking existing workflows.

So designing and implementing a flexible, accurate commission mechanism that could support both hosts and agents was one of the biggest challenges we faced. As the platform evolved, new commission types were introduced, many of which overlapped with existing rules – so we had to redesign the entire logic. Now, it’s a complex, multi-layered model with 10+ varied commission types.

To handle this, we decoupled business logic from static code and implemented a robust version control system for commission formulas. This allowed us to recalculate payouts accurately after the rules changed and ensure that updates do not break existing flows.

Anna Pikula recommends keeping commission formulas modular and well-documented so both technical and business teams can respond quickly as requirements evolve.

To support real-world agreements, we also added flexible overrides at multiple levels— property, agent, host, partner, and individual booking. This layered approach ensures that specific contractual terms can override global rules, enabling the platform to handle diverse commission arrangements smoothly.

Managing price breakdowns in a quotation tool

As we described above, agents send quotes featuring selected property options for their clients to request a booking. Given that multiple parties—each earning their own commission—are involved in the booking process, it’s essential to set up a system where sensitive financial information is accessible only to those who have the necessary authorization.

So we implemented robust role-based pricing visibility when designing the quotation tool. This ensures that each user type sees only the pricing details relevant to their role.

  • System administrators have access to a comprehensive breakdown of all fees, commissions, and payouts.
  • Agents can view their own commissions, markups, and the total booking amount.
  • Guests only see the final price, including applicable taxes and fees.

By strictly segmenting this information, we maintain trust, reduce confusion, and protect sensitive business data.

Developing an extranet (PMS) for adding separate property listings

As we mentioned earlier, the luxury vacation rental market features multiple independent property owners/managers who don’t use any specialized software to distribute their villas. To accommodate listings from independent providers, we’ve developed the extranet functionality. It enables hosts to manually add and manage their properties on the platform, including uploading descriptions, setting rates, and updating availability.

To ensure consistency and prevent errors, we implemented strict validation processes both on the frontend and backend. This includes using tools like guided field entry, dropdown menus, and formatting pre-checks to enforce correct data input, minimizing the risk of poorly structured or incomplete submissions.

Planning for changes and scaling

The team agreed unanimously on one thing: When designing any module or feature, do it with future changes in mind. The platform has dynamically evolved over time, adding new functionality and modifying existing workflows.

To manage these complexities and scale effectively, we proactively adopted a microservices architecture that provided the flexibility needed to accommodate shifting requirements without disrupting the overall system. 

And the platform evolution is far from over. So what is the road ahead for it?

Future development: payment processing and adding new revenue streams

As the luxury vacation rental marketplace evolves, we see several directions for development.

Processing payments as a merchant of recordIntegrating payments directly into the platform is a natural next step. However, it would require the company to become a merchant of record — a major operational and regulatory responsibility.

Agency vs Merchant Model Two Ways to Handle Payments in TravelPlayButton
Agency vs Merchant Model

This means managing all financial transactions, ensuring PCI DSS compliance, handling taxes, refunds, and chargebacks, and taking full responsibility for fraud prevention and settlement.

While this approach offers greater control, it also requires investments in strong security infrastructure, payment gateway integrations, and compliance.

New revenue streams: referrals and subscriptions. Launching a referral engine can incentivize agents and partners to grow the network, rewarding successful referrals and expanding the marketplace’s reach organically.

Subscription models—such as premium access for top-tier travel advisors or PMCs—can unlock new revenue streams and offer exclusive features, boosting recurring income.

byline pic

Maria is a curious researcher, passionate about discovering how technologies change the world. She started her career in logistics but has dedicated the last five years to exploring travel tech, large travel businesses, and product management best practices. 

Want to write an article for our blog? Read our requirements and guidelines to become a contributor.

Comments