Markets + AI Pricing

Pricing intelligence
and market data, in one API.

Real-time competitive intel for every market you operate in, plus AI-recommended rates per night per listing — applied with one call, synced to every channel.

Market intelligence

Per-city KPIs, in one read.

Every market you operate in, derived automatically from your listings. Median ADR, occupancy, RevPAN, supply trends, demand index, and your position relative to the comp set — all returned in a single call. Browse new markets to expand into, sorted by yield.

ADR, occupancy, RevPAN per city
Your price vs market, p25 / p50 / p75
Auto-derived from your listings
Browse markets to expand into
Your markets
5 markets · live
Avg ADR
$216+7.4%
Occupancy
72.8%+2.1pp
RevPAN
$157+9.6%
MarketADRvs marketOcc
Lisbon, PT€187+12.4%78%
Austin, TX$241−4.2%64%
Barcelona, ES€213+6.1%81%
Miami, FL$298+18.7%72%
Berlin, DE€142−1.8%69%
markets.ts
const markets = await repull.markets.list()

// {
//   markets: [
//     {
//       city: 'lisbon-pt',
//       myListings: 4,
//       marketAvgAdr: 187,
//       priceDiffPct: 12.4,
//       occupancy: 0.78,
//       revpan: 146,
//     },
//     ...
//   ]
// }
AI pricing

A recommended rate for every night, every listing.

Pre-computed nightly recommendations out 365 days, with the factors that drove each one — demand, comp set, occupancy pacing, lead time, day of week, local events. Apply with one call and the rate fans out to every connected channel. Decline and it's recorded for the audit trail.

Per-night, per-listing, 365 days out
Factor breakdown on every recommendation
Apply once, syncs to all channels
Manual override always wins
Recommendations · listing #4118
AI
DateLiveRecommendedLiftDriver
Jun 12$142$168+18%demand spike
Jun 13$142$184+30%concert (Mon)
Jun 14$158$174+10%comp set up
Jun 15$158$152−4%low lead time
Jun 16$142$161+13%occ pacing
Demand
Comp set
Occupancy
Events
pricing.ts
const recs = await repull.pricing
  .recommendations(listingId)

await repull.pricing.apply(listingId, {
  dates: ['2026-06-12', '2026-06-13'],
})
// → fans out to Airbnb, Booking.com,
//   Vrbo, Plum Guide automatically
Calendar overlay

A 365-day market view with event impact built in.

Day-by-day demand curves per city, with curated local-event chips for concerts, sports, and conferences. If a Bad Bunny show lands in your market, you'll see the attendance forecast and demand uplift right on the date — so your pricing reacts before the city does.

365 days of forward demand per city
Concerts, sports, conferences scored
Expected attendance + demand uplift
Powers the AI pricing recommendations
Demand · Austin, TX · June
30 of 365 days
130
232
340
442
548
655
760
885
978
1065
1155
1250
1348
1450
1592
1688
1770
1860
1955
2050
2155
2295
2390
2470
2560
2655
2750
2855
2962
3070
Jun 8Bad Bunny · Moody Center+47%
Jun 15F1 Grand Prix Practice+62%
Jun 23SXSW EDU+28%
calendar.ts
const cal = await repull.markets
  .calendar('austin-tx', {
    from: '2026-06-01',
    to: '2026-08-31',
  })

// cal.days[].demand        // 0..1
// cal.days[].events[]      // [{ kind, label, uplift }]

Also included

Everything you need around it.

The supporting capabilities that turn a recommendation into a workflow.

Comp set viewer

See the exact set of competitor listings that drove each recommendation. Filter by bedroom count, amenities, proximity. Tune the set and the price recomputes.

Bulk apply

Apply recommendations across a date range, a portfolio segment, or every listing in a market. One call, idempotent, with per-listing diffs returned in the response.

History audit

Every applied, declined, and overridden recommendation logged with a timestamp, the factors at the time, and the resulting channel push. Full trail for any night.

Powered by

Real-time market data powered by Atlas.

How it's billed

Per-listing pricing intelligence, on your Repull plan.

No separate contract, no separate invoice. Markets + AI Pricing is part of Repull and bills with the rest of your usage.

Free tier

Basic market KPIs for the markets you operate in. ADR, occupancy, and your position vs comp. Enough to get a feel for the data.

Per-listing

Full market depth, calendar overlay with events, and AI pricing recommendations for every listing on your account. Apply across channels included.

Scale

Custom for portfolios over 250 listings, plus additional markets and historical depth on request. Talk to us.

Want this self-hosted?

repull-revenue is the open-source companion — same API, self-hostable on your own data. Fork it, deploy it, push pricing back to every channel through Repull.

View on GitHub

Why now

Pricing tools shouldn't live in a separate dashboard.

Operators have lived with the trade-off for a decade: best-in-class market data lives in one app, AI pricing in another, and the channel manager in a third. By the time a recommendation reaches a calendar, the demand signal is two days old. We collapsed the three into one API and one screen — every night, every listing, with the supporting data right there. The recommendation, the comp set that drove it, the events on that date, and the apply call all live in the same surface.

Try it on your listings.

An API key in 30 seconds. Connect a property and see the recommendations on day one.