
TL;DR →
- Scoreboardsis a new endpoint that enable you toefficiently analyze your portfolio.
- Scoreboardsis designed for action: "Show me which listing have the most owner blocks, and prepare an email for each owner"*
- With one command, you can get a ranked list of your portfolio properties for any metric(30+ options) andany window(next/trailing 7 days, year, etc)
- You can request any filter(bedroom count, tag, etc) and/orany order("Top 5," "15 worst") — no extra calls.
- We updated our MCPas well, meaning you can nowask your LLM,"What are my least occupied 2-bedroom listings in November?" and get a live, ranked answer in seconds.
- 📽️ Video linked here
🏆
The Why
A few weeks ago, Wheelhouse added dozens of new performance stats.
And, with our RM API live, we wanted to make it easier to analyze your whole portfolio quickly, instead of pulling all data for your listings.
Therefore, we built a new endpoint we call "Scoreboards", so you send one request telling us which stat you care about, and we send back every listing you manage, ranked from best to worst on that stat — in seconds.
Because it's part of our API, you can plug the results you get from Scoreboard straight into whatever tools you already use.
For example: pull the listings losing the most money to blocked dates, and automatically email their owners. Or pull the premium listings that haven't booked in a week, and flag them for a price change.
🔧
How Scoreboards Works
Before Scoreboards, getting one stat across your whole portfolio meant looking it up one listing at a time, then doing the ranking yourself. That's fine for 5 listings. It's painful for 500.
Scoreboards does the ranking for you. You tell it which stat and which time period you want, and it hands back every listing you manage, already sorted from best to worst — in one request.
📽️ Watch a demo:
Learn more in this 4 minute video:
🧮
Any Metric, Any Time Period
When you make the request, you only need to tell us two things: which stat you want (we call this the
metric
), and what time period to look at (the window
).There are more than 30 stats to choose from. Roughly, they fall into a few buckets:
- Pricing— your nightly rate and asking rate, plus a few variations of each.
- Booking activity— occupancy, nights booked vs. available, how far out guests are booking, how long they're staying.
- Revenue— total revenue, revenue lost to blocked dates, and RevPAR.
- How you stack up locally— occupancy compared to nearby listings.
- Recent momentum— how many nights you've picked up in the last week, month, etc.
For the time period, you can look forward or backward — anywhere from the next/last 7 days out to a full year.
🔍
Any Order, Any Filter
For API calls, you will get an array back you can easily sort. And, for chats (Claude, Open, Gemini) you can simply ask for a "top 5" or "worst 10" — to return a specific number of listings.
Additionally, you can easily filter this list - narrowing your request down to one market, one bedroom count, or anything else you track, on your end.
If your listings are priced in more than one currency, Scoreboards can convert dollar-based stats (like ADR or revenue) into a single currency before ranking, so you're not comparing apples to oranges.
🤖
Chat with your Portfolio
You can access Scoreboard via our MCP as well, enabling you to more quickly analyze your portfolio.
"What are my top 5 listings in terms of occupancy?"
Your LLMs will use Scoreboards and answers in seconds.
"Now pull me my bottom 5, and let me know their rank in the portfolio for days since last booking too."
We think this looks like the foundation of a better workflow: use Scoreboards to zoom out and find the listings that need attention, then zoom in to fix the ones that need it.
🥳
Pro Tip!
Once Scoreboards has narrowed your portfolio down to a handful of listings worth a closer look, pull each listings full stats history to understand exactly what's going on before you make a change.
📋
Endpoint Details
You'll find more in our documentation, but for some quick hits, here's how you use this endpoint.
Request
GET /listings/kpis
Authorization: RmApiKey (send your key in the X-Integration-Api-Key header)
Query parameters
- metric(string, required) — the stat to return. Example:metric=occupancy_adjusted
- window(string, required) — the time period, as0_N(forward) orN_0(trailing). Enum:0_7,0_14,0_21,0_30,0_60,0_90,0_180,0_365,7_0,14_0,21_0,30_0,60_0,90_0,180_0,365_0. Example:window=0_30
Full metric list:
- Pricing: adr,adr_fees,asking_rate,asking_rate_fees,asking_rate_highest,asking_rate_lowest
- Booking activity: occupancy,occupancy_adjusted,nights_available,nights_blocked,nights_bookable,nights_booked,nights_calendar,nights_percent_open,bookings,lead_time,length_of_stay,last_booked_days,min_price_occurrence
- Revenue: revenue,revenue_available,revenue_blocked,revenue_fees,revenue_fees_taxes,revpar,revpar_fees,revpar_adjusted_occupancy,revpar_adjusted_occupancy_fees
- Forward-only (valid with 0_Nwindows only):occupancy_neighborhoodand its adjusted/percentile variants,revenue_score
- Backward-only (valid with N_0windows only):pickup,pickup_bookings
Ask for a metric/window pairing that isn't valid (e.g.
pickup
with a 0_N
window) and you'll get back a 400
rather than a bad number.A listing with no data for the requested window still shows up, with
value: null
, so it sorts to the bottom instead of disappearing. A listing with no stats generated at all is left out entirely.
Notes
- Monetary metrics (adr,asking_rate,revenue,revparfamilies) are stored in the listing's market currency, falling back to the listing's own currency if it has no market.
- This endpoint pulls from the same underlying data as GET /listings/{listing_id}/kpis— so the two will always agree.
- Use GET /listings/{listing_id}/kpiswhen you want every metric and window for a single listing; use Scoreboards when you want one metric and window across your whole portfolio.