Skip to main content
Reports answers the questions a winery actually asks at the end of a month: how busy were we, what did it earn, how many guests actually showed up, when are we busiest, which experiences are worth the staffing, and how many waitlist parties did we seat.

Two tabs, one per tense

Overview is the past: over the range you pick, it counts each reservation by the date of its visit (or, if you switch the lens below, the day it was booked). Upcoming is the future: what is on the books for the next 7, 30 or 90 days. Nothing on either tab mixes the two, so a figure is never half past and half forecast.

Upcoming

Three cells — Reservations, Covers, Booked value (what those visits will bring in; hover for how much is already collected and how much is still due) — each a tab that draws that figure by day across the window: bars for Reservations and Covers, a line for Booked value. On Booked value, the shaded area under the line is what has been collected so far, so the unshaded band above it is what is still due; the key under the chart names both. Beneath the chart on that cell, Collected so far and Still due (on saved cards not yet charged and on Payment-due reservations). Then the Experiences table for the window, and Day by day: every reservation on the books, in order, with its status, payment state and money (no guest details here; click a row to open the reservation). Cancelled reservations and no-shows are never on the books. Home’s This week card shows the same next seven days as bars, against the same weekdays over the past four weeks, with a button into Host.

The filter row

On the Overview, a row of buttons under the tabs that floats at the top as you scroll; every choice is in the page’s address, so a view can be bookmarked or sent to a colleague.
  • Date range — Today, Yesterday, Last 7 days, Last 30 days (the default), Last 90 days, Month to date, Last month, or Custom range (a calendar; past dates only, up to 92 days). Today and Yesterday count the visits of that one day, hour by hour.
  • Compare to — Previous period (the default), Previous year, Same day last week (offered for Today and Yesterday, and their default), or No comparison. Every count and money figure then carries a change readout.
  • Location — All locations, or one property (shown only when you have more than one).
  • Granularity — Auto (the default), Hourly, Daily or Weekly. Auto picks hourly for a single day and daily otherwise; Hourly is offered only when the range is a single day. On Weekly, a first or last week the range only partly covers is labelled by its dates (“Sep 29–Oct 1”) so it isn’t read as a full week.
  • By visit date / By booking date — the lens every figure on the page counts by. By visit date (the default) counts each reservation on the day of its visit: what happened on the property, covers per day, who did not show. By booking date counts each reservation, and its money, on the day it was made — whatever day the guest visits. It is the same day Shopify counts the order, so “reservations this week” here and “orders this week” in Shopify agree, and it answers demand questions: did this week’s email work, and what days and hours the reservations you sold are for. On that lens, Peak hours and the Experiences table each carry a footnote saying what changed, and so does Outcomes whenever it shows Upcoming bars. Switch with the button; the choice is in the address.
Whichever lens you pick, every figure on the Overview follows it — except the Waitlist card, which always counts parties by the day they joined — and the chart’s subtitle says which (“By day of the booking” / “By day of the visit”). Two things differ by lens: on the booking lens, reservations whose visit is still ahead appear in Outcomes as Upcoming, and the Experiences table’s Utilization reads ”—” (capacity is offered on visit days, so it is only measured by visit). The lens chooses which reservations you are looking at; cards that describe them — Peak hours, Party size, Lead time, channels — describe them as they are, so Peak hours always shows the days and hours those guests visit. A reservation made today for next Saturday counts today on the booking lens, is on the Upcoming tab either way, and joins the visit lens once that Saturday has happened. One experience at a time. Click a row of the Experiences table and the whole page re-counts for that experience alone; an “Only <experience>” button joins the filter row, and its × brings the whole shop back. Export. The Export button in the header writes what the page is showing: every reservation in the range under the current lens (made in it, or with a visit in it), cancelled ones included (with guest details, so the download is recorded in the customer-data access log), or the Experiences table, as a spreadsheet file named for the range.
What if the Overview says “No visits in this range”? Nothing is broken. Either no visit fell in that range (closed days are always blank) or your reservations are still ahead of today. The View upcoming reservations button under the message opens the Upcoming tab, where they are.

The snack bar

One row of headline cells sitting on top of the chart. Each cell is also a tab: click it and the chart beneath shows that figure over time. Hover a cell’s label for what it counts. The definitions are also read out to screen readers when a cell has focus. A past reservation nobody checked in and nobody marked a no-show is left out of No-show rate (hover the label to see how many), so the rate is only as complete as your team’s marking. Settings → Reservations → No-shows can mark such parties by itself — a set time after the reservation, or at the end of the day — which makes the rate complete without anyone pressing a button. It is only as good as your check-ins, though: a party that came but was never checked in becomes a no-show too. Change readouts beside each value compare the cell to the chosen period: a small arrow and the number, green when up and red when down — reversed for no-shows and cancellations, where falling is good. Rates compare in points. A figure with nothing to compare to carries no readout, and when the whole comparison period is empty the chart’s subtitle says “nothing to compare to” and the chart shows this range alone. Money still owed for visits in the range (a saved card not yet charged, a Payment-due reservation) is not revenue yet: it appears as Still due, a second line on the Collected revenue chart and rows in the ledger, and Collected + Still due is the range’s Booked value.

The chart

<Figure> over time: Reservations and Covers draw this range as blue bars, Collected revenue as a solid blue line; the comparison is a dashed gray line over either, with the two ranges named in the legend. On Collected revenue, a second solid line shows what is still due, when anything is. Hover anywhere for both values at that day (or hour). “View as table” under the chart opens the same numbers as a full-screen table with a Download CSV button. For No-show rate and Cancellation rate the chart becomes Outcomes over time, stacked bars of Visited, No-show and Cancelled per day (or hour, or week) — plus Upcoming on the booking lens, for reservations whose visit is still ahead. While it’s up there, the separate Outcomes card below is hidden, since it would show the same bars.

Every chart’s menu

Each chart card carries a three-dot menu in its corner with View as table and Download CSV. The CSV holds the figures in that chart — the buckets of the line, the bins of a histogram, the slices of a donut, the Peak hours grid busiest-first. For the reservations behind the numbers, use the Export button in the page header instead: on the Overview it exports every reservation with a visit in the range; on Upcoming, every reservation on the books in the horizon.

Money in this range

The first card under the chart, a ledger from Collected to Booked value. Money is printed to the cent so the digits line up.
  • Experience fees and Add-ons — what the reservations in the range collected through Shopify, refunds already taken out.
  • Paid on-site — balances staff marked paid at the counter (money collected outside Shopify). Shown when there is any.
  • Kept on party-size changes — the share of a refund the cancellation policy withheld when a party shrank. Shown when there is any.
  • Kept on cancellations — what cancelled reservations did not refund (a partial refund, or an all-sales-final policy). Shown when there is any. A cancellation made from the Shopify order page counts as nothing kept, because Riserva cannot see what was refunded there.
  • = Collected (the Collected revenue cell) — the five rows above add up to it.
  • Still due · saved cards — charge-later reservations whose card has not been charged yet: their price less any deposit taken.
  • Still due · Payment due — balances staff still need to collect, including a phone booking that was never priced into an order, and Shopify orders still awaiting a bank or manual payment.
  • = Booked value.
Under Also in this range, shown only when non-zero and kept OUT of the sums above:
  • Refunded — already taken out of Collected.
  • Refunds owed — refunds Riserva committed to but has not managed to send yet (the Payment card’s Retry); held back from Collected.
  • Waived — balances staff forgave; never collected.
  • Not collected · no-shows — what no-show reservations owed and nothing will collect (a saved card is never charged for a no-show; a Payment-due balance has nobody to collect it from). Not Still due, because it is not coming — it is the revenue those visits lost.
  • Fee credits not yet applied — entry fees promised back against guests’ bills on visits that have not been completed yet.
The strip at the bottom of the card says the same in one sentence. The Experience fees, Add-ons, Paid on-site, Collected and Booked value rows carry a change readout when a comparison is on. The rows match the Payment card on each reservation.

The cards

Each card appears only when it has something to say:
  • Reservations by channel — Online, Phone, Walk-in, POS, always in that order and the same colors, once more than one channel is in use.
  • Outcomes — Visited, No-show and Cancelled per day (plus Upcoming on the booking lens). Hidden while No-show rate or Cancellation rate is selected, because the main chart is then showing the same thing.
  • Attendance — counted in guests, not reservations. The headline is the show-up rate: “show-up rate · 42 of 46 guests came” — guests who walked in, out of every guest whose visit has come. Below it, four bars that add up to every guest booked: Arrived, Partial no-shows (guests missing from a party that came — recorded with Partial check-in… or Guests here), No-shows (whole parties that never came) and Not arrived yet. A party nobody counted at check-in counts as all here. Always shown.
  • Party size — the average guests per reservation, then how many reservations were parties of 1, 2, … 8+.
  • Lead time — the median, from booking to visit, then Same day, 1–2 days, 3–6 days, 1–2 weeks, 2–4 weeks, 1 month+. A reservation entered after its visit had ended is left out, and the subtitle says how many.
  • Waitlist — joined, notified, seated; walked out; conversion (seated, as a share of parties that were either seated or walked out); average wait versus time quoted, in minutes. Counts parties that joined in the range, whichever lens is on. Only for shops that have used the waitlist.
  • First-time vs returning — a returning guest has an earlier visit with you (same customer, or same email). Appears once there are twenty reservations to count.
  • Members — a ring of member versus non-member reservations, with the member share above it, whenever member tags are set under Settings → Memberships → Member recognition (or a member booked in the range).

Peak hours

A heatmap: days of the week down, hours across, shaded by covers, with each square printing its cover count. Hover any square for the detail — “Fri 7:00 PM · 42 covers · 11 reservations”. This is the staffing report. It answers “when do we need more people on the floor” better than any average. No-shows are counted here, because a no-show still occupied the book and blocked someone else. Cancellations aren’t.

Experiences

A full-width table beneath the cards, sorted by Collected, with one row per experience with a visit in the range (click a row to see the whole page for that experience alone). Money prints to the cent; hover the Collected, Booked value, Add-ons and Utilization headings for what each counts.
Good to know Utilization only computes for experiences with a set number of places per time slot (Manual capacity, or Open with a per-slot limit) — everything else shows ”—”. Venue floor map and Whole venue experiences have no fixed number of offered places to divide by, so a percentage would be invented.
Add-on revenue is the column most wineries under-read. If a cheese pairing is earning a third of what the tasting earns, that’s a menu decision.

What Reports doesn’t do

  • No scheduled email — Reports and its export are on demand.
  • No staff or host performance breakdown.
  • No guest-level detail — first-time vs returning is a split, not a list.
  • No register sales — wine bought at the counter during a visit is not linked to the reservation, so there is no spend-per-visit figure.

A note on what the numbers cover

Reporting covers the reservations Riserva knows about — figures update as the day is worked.
Riserva measures reservations. Wine sold at the counter, shipping, club renewals — those are Shopify’s own analytics, not these.
What things mean on this screen: What things mean: Reports