ResytechResytech Docs
Reporting & Analytics

Tip Report

Staff payout reconciliation — gross tips, refunds, and net amounts owed to staff.

Overview

The Tip Report is for staff payout reconciliation. Access from Dashboard > Reports > Tips.

Tips are pass-through to staff and never operator revenue. Every other report on the dashboard strips tips out of business revenue (see How report calculations work). The Tip Report is where tips actually live as a first-class metric.

What this report counts

  • Payments counted: customer-payment rows with a non-zero tip portion.
  • Refunds counted: customer-payment rows that represent a tip refund (negative tip amounts).
  • Date axis: controlled by the Date Basis filter.
    • Payment Date (default): windows on when the tip was actually recorded (CustomerPayment.Date), not booking creation date. A manual cash tip recorded two weeks after the booking lands in the payout window when it was recorded — which is what you want for paying out staff.
    • Trip Date: windows on the booking's service day. Use this to answer "how much was tipped on today's trips" — a tip paid today for a booking two days out shows under the trip's day, not today, and a tip recorded after the trip still counts toward the trip's day.
  • Booking statuses: every status — the report's filtering happens at the payment-row level, not the booking level. If a tip exists on a payment row, it counts.

Summary Metrics

MetricWhat it isHow it's calculated
Total Tips CollectedGross tips received in the periodSum of positive TipAmount values across payment rows in the period
Total Tips RefundedTip refunds issued in the periodAbsolute sum of negative TipAmount values across payment rows in the period
Net Tips for StaffMoney to pay out to staffSum of TipNetOfStripeFee for payment rows where this is set, plus tip amounts on manual payments
Stripe Fees on TipsProcessing fees that came out of tipsTotal Tips Collected − Net Tips for Staff − Total Tips Refunded (approximately — depends on which rows have Stripe-fee allocation)
Tip Participation RateShare of recognized bookings that included any tipBookings with a non-zero TipAmount ÷ all recognized bookings in the period, as a percent

Net vs Gross

Net Tips for Staff is the headline number — it's what you owe your team for the period. It excludes:

  • Refunded tips — already returned to the customer.
  • Stripe processing fees allocated to the tip portion of card payments. Resytech apportions a fair share of the Stripe fee to the tip side of the payment so the operator isn't subsidizing the processor's cut of the tip.

Manual payments (cash, check, electronic, other) have no Stripe fee allocation — the full tip amount on those rows is staff-owed.

Tips by Period

A trend chart with two lines — gross tips collected and net tips for staff — so you can see how much of the gross is going to processing fees or refunds over time.

  • Group by controls the period bucket (day, week, month).
  • Each data point is bucketed by the active date basis — payment date by default, or the booking's service day under Trip Date.
  • Signed values: payment-in rows contribute positively, refund rows contribute negatively.

Tip Detail Table

A per-booking row for every tipped booking in the period:

ColumnWhat it is
ConfirmationConfirmation code, linked to the booking
Trip DateThe booking's service day — when the trip actually happens
BookedWhen the booking was created
CustomerCustomer name
ActivityThe activity on the booking
Booking SourceBooking source (website, manual, etc.)
Tip SourceWhere the tip came from (checkout, waiver, manual)
CollectedSum of positive tip rows for this booking in the period
RefundedSum of refunded-tip rows for this booking in the period
Net to StaffCollected − Refunded − Stripe fee allocated to this tip ("Pending" until Stripe reports the fee)

CSV export is available from this table — useful for handing off to payroll.

Filters

  • Date basisPayment Date (when the tip dollars moved; the payout view) or Trip Date (the day the booking happens; the operational view).
  • Date range — applied on the selected date basis.
  • Activities — narrow to specific activities (filters by the booking that the payment row is associated with).
  • Sources — filter by booking source.
  • Booking statuses — explicitly filter by booking status (defaults to no filter — every tipped booking shows).
  • Group byday, week, or month for the trend chart.

Why payment date is the default

Operators typically need to pay tips out on a regular cadence (e.g., biweekly). If a cash tip is recorded on March 15 for a booking that happened on March 1, the payout that covers March 11–25 should include that tip — regardless of when the booking itself was created.

Using payment date solves three problems:

  1. Manual tips added later land in the period they're recorded.
  2. Refunds issued in a later period correctly subtract from that period's net (not retroactively from the booking-date period).
  3. Stripe fee allocation happens when the charge.updated webhook fires, which is when the payment-row's TipNetOfStripeFee gets populated — by payment date.

When to use Trip Date instead

Payment date can look wrong at a glance: filter to today and a $20 tip on a booking that's two days out still shows, because it was paid today. If what you actually want is "tips on the trips that ran today" — for example, to eyeball which trip earned the biggest tip — switch the Date Basis to Trip Date. The detail table shows both the trip date and the booked date on every row, so either view stays unambiguous.

Reconciling with the Revenue Report

The Revenue Report's Payment Method Distribution section shows total gross customer payments, including tips. The Tip Report's gross tips total is a subset of that. Do not double-count: if you're computing total operator revenue, use the Revenue Report's Gross Revenue (which excludes tips). If you're computing total cash flow, the Operations report's Payment Methods section is the right source.

On this page