Skip to main content

Ball Machine (Resouce) Reservations and Fees

Understand How Resources Like Ball Machines Are Priced, Split, and Booked Alongside Reservations

Written by Mari Bern

Introduction

Feature Summary: A ball machine is one example of a resource in CourtReserve, and the most commonly used resource among clubs. This article explains how resources work at a reservation and pricing level, using ball machines as the example throughout. Everything covered here applies to any resource set up in your system (rental equipment, projectors, speakers, and so on), not just ball machines.

Use Cases:

  • Understand how a resource fee is calculated and combined with a reservation's cost

  • Set up fee splitting correctly so a resource cost divides across all players, not just one

  • Understand how packages, discounts, and promo codes interact with resource fees

  • Choose the right setup for restricting who can book a resource and where


Overview

Resources are bookable items - such as ball machines, rental equipment, projectors, or speakers - that system users can attach to a reservation. They can be optional or required based on the reservation type. Resources are grouped into resource categories and configured as individual items in Manage Resources.

Note: This article assumes basic resource setup is already in place. For creating resource categories and individual resources, see:

This article covers what those don't: how resource fees actually behave once a reservation is booked.


How a Resource Fee Works at a Basic Level

When a resource like a ball machine is added to a reservation that requires a court, the system charges two separate costs:

  • The court/reservation cost

  • The resource cost

Note: These are set up as two separate line items in the cost section, but once combined on a reservation, the system treats them as one single fee. They are not broken out separately on the reservation.

For example: If a court reservation costs $40 and a ball machine resource is priced at $20, the reservation total will show as $60, combined into a single fee rather than two itemized charges. This combined-fee behavior carries through to payment, too. On the payment screen in the below example, Account Credit applies to the bundled total - there's no way to apply credit to only the court portion or only the resource portion. Example shown here where a player had $50 of credit to apply.

Resource costs are set at Settings > Booking Settings > Costs, in the Court Costs tab, under the Resource Costs section. The Resource Calculation Type toggle sets whether the cost is charged Hourly or Fixed, and pricing can be adjusted per membership type.

Note: Resource cost is determined by the resource category, not the individual resource. To give one specific resource a different price - for example, a premium ball machine that costs more than a standard one - create a separate resource category for it and price that category accordingly.


How Resource Fees Split Across Players

This is the most common point of confusion, and the most important section of this article.

Fee Responsibility on a reservation type determines how a resource fee splits. There are four options:

  • Reservation Owner: The full combined fee, including the resource, is charged entirely to the reservation owner (the first player added). Any other players added to the reservation are not charged anything for either the court or the resource.

  • Each Player Equally: The resource fee divides evenly across all players on the reservation.

  • Each Player based on Membership: The full resource fee is charged to every player individually - it does not divide the cost. Each player pays the full resource price, not a proportional share.

  • Allow Player to Pay Full Fee or Split Fee Equally: This one is different from the other three - it doesn't fix a single behavior on the reservation type. Instead, it lets the player choose at booking time, on the member portal, between paying the full combined fee themselves (like Reservation Owner) or splitting it evenly with other players (like Each Player Equally). A Default Fee Responsibility setting picks which option is pre-selected for the player, but they can change it before booking.


Reservation Owner

Real example - Reservation Owner: Same Singles - Tennis setup, but with Fee Responsibility set to Reservation Owner instead. One hour, $40 court + $30 machine = $70 total. With Charlie as the reservation owner and Luke added as a second player, Charlie is charged the full $70 and Luke is charged $0.


Each Player Equally

Real example - Each Player Equally: Using a Singles - Tennis reservation type with Each Player Equally, a $40/hour court plus a $30/hour tennis ball machine, one hour on Tennis Court #4:

  • One player: Total cost is $70 ($40 court + $30 machine), charged in full to that player.

  • Two players: The same $70 total splits evenly - $35 each. The full combined fee splits, not just the court portion.

  • Two players, 1.5 hours instead of 1: The resource fee scales with the reservation duration, same as the court fee. $60 court ($40 x 1.5) + $45 machine ($30 x 1.5) = $105 total, split evenly to $52.50 each.

Note: A resource can't be booked for a shorter duration than the reservation itself - if the court reservation is 1.5 hours, the ball machine is booked (and charged) for the same 1.5 hours. There's no way to add the resource for only part of the reservation time.


Each Player based on Membership

Real example - Each Player based on Membership: Same Singles - Tennis setup, Fee Responsibility set to Each Player based on Membership. One hour, $30/hour tennis ball machine. Court pricing varies by membership type: Family Membership is $60/hour, Basic Membership is $40/hour.

  • Player #1 (Family Membership), alone: $60 court + $30 machine = $90, charged in full.

  • Player #2 (Basic Membership) added as a second player: Charged $70 ($40 court + $30 machine) - his own full court rate plus the full machine rate, entirely independent of Player #1's $90.

Note: Unlike Each Player Equally, this option doesn't divide anything - each player is charged their own full court rate (which can differ by membership type) plus the full resource fee, with no discount for sharing the reservation. Two players end up paying more combined ($90 + $70 = $160) than they would splitting one reservation's cost.


Allow Player to Pay Full Fee or Split Fee Equally

Real example - Allow Player to Pay Full Fee or Split Fee Equally: Same $60/hour Family Membership court rate and $30/hour tennis ball machine, but this time the player books through the member portal rather than an admin booking on her behalf. The reservation type's Default Fee Responsibility is set to Each Player Equally, but the portal still shows the player a choice between Reservation Owner and Each Player Equally at booking time, and the total adjusts live based on what she picks:

  • Each Player Equally selected: $90 total ($60 court + $30 machine), split between Player #1 and Player #1 - $45 each.

  • Reservation Owner selected instead: Player #1 is charged the full $90; Player #2's cost/due fields are blank.

Note: This is the only Fee Responsibility option where the player - not the admin or the reservation type default - has direct control over how the resource fee is charged, at the moment they book.

Note: CourtReserve recommends setting fee responsibility to Each Player Equally on any reservation type where a resource may be added, so the resource cost divides as expected.


Ways to Set Up Ball Machine Booking

Players can view and book resources in two ways. Clubs should pick which of these apply intentionally, since leaving more than one open can create the loophole described later in this article.


Option 1 - As an Add-On When Booking a Reservation

Allow the resource on an existing reservation type (e.g., Pickleball Singles) so players can add it while booking a court through the normal Book a Court scheduler.

  • The resource category must have Can be Booked with Courts and Allow Members to Book this Category enabled.

  • The resource can be optional, or made mandatory by checking Allow Resource(s) on the reservation type and selecting a Required Resource Categories value. See Reservations with Required Resources for setup steps.

  • Note: When a reservation type requires a resource, CourtReserve adds it to the booking automatically and rolls its cost into the total fee - the player doesn't select it separately.

For example: A tennis club sets up "Tennis Court Rental" as a reservation type and enables ball machines as an optional add-on. A member books a court for a solo practice session and, on the same booking screen, checks a box to add a ball machine for an extra hourly fee.


Option 2 - As a Dedicated Reservation Type with a Required Resource

Create a separate reservation type (e.g., "Pickleball Ball Machine Practice") used only for booking that resource. This is useful when a club wants different fee responsibility rules for the resource booking versus a standard court reservation.

Recommended: Make the resource required on the dedicated reservation type, so it's automatically included every time - there's no reason to create a reservation type just for a resource and then leave it optional. On the reservation type, check Allow Resource(s) and set Required Resource Categories to the resource's category. The resource category itself also needs that reservation type added under Restrict Resource Category to Reservation Types (Step 1).

Real example: A pickleball club creates a reservation type called "Pickleball Ball Machine Practice," with the resource category Pickleball Ball Machines set as required. With a $20/hour court and a $30/hour ball machine, a player books this reservation type for one hour: the ball machine is added automatically, if available, and the total comes to $50 ($20 court + $30 machine) - the same combined-fee behavior as any other resource booking, just guaranteed to include the resource every time rather than leaving it optional.


Promo Codes, Packages, and Discount with Resources

Promo Codes

Because a resource fee merges into the total reservation fee once added, a promo code cannot be applied to only the resource portion of a reservation - it applies to the full combined fee.

Real example: This player’s Singles - Tennis reservation, including the attached tennis ball machine, totals $45 (court + resource). Applying a “20% off everything” promo code discounts the entire $45 subtotal by $9, bringing the Total Due to $36.

The discount applies to the combined subtotal, not separately to just the court or the resource.

Workaround: To make it look like a promo code covers only one part of a reservation - the court or the resource - set fixed amounts for both, and set the promo code's discount to match one of the fixed prices and its minimum spend to match the combined total. The math works out so the discounted amount matches exactly what that one item would have cost.

Real example - covering the resource instead of the court: Fixed prices set to $40 (court) and $30 (tennis ball machine), for a $70 combined total. A promo code named "Free ball machine with one hour court time" is set to discount $30, with a $70 minimum spend. Booking Singles - Tennis with the ball machine attached and applying the code: $70 subtotal, -$30 discount, $40 final payment - matching what a free ball machine plus a paid hour of court time would look like.

Important caveat: This is a naming trick, not a real separation. The Fees section of the payment screen still shows one combined line item ("Singles - Tennis, $70.00") - the same bundled-fee behavior seen throughout this article. The $30 discount only looks targeted at the ball machine because the promo code's own display name says so and the dollar amount happens to match; mechanically, it's still one discount applied against one combined fee.


Packages

Like promo codes and Account Credit, packages are affected by the combined-fee behavior described earlier in this article - but with an added wrinkle: there's no way to set up a package that covers only a resource. Packages are built around court time.

If a package-eligible reservation type has a resource attached, the package covers the entire combined fee - court plus resource - not just the court portion.

Real example: A player has a "Singles - Tennis 1 Hour Reservation" package with punches remaining. Her one-hour Singles - Tennis reservation, with the tennis ball machine attached, comes to $90 total ($60 court + $30 machine). Paying with one punch from the package covers the full $90, not just the $60 court cost - the system treats the whole bundled fee as "one hour of court time" for package purposes, since it can't distinguish the resource portion.


Free Reservations (Discounts Settings)

A different kind of discount lives under Settings > Booking Settings > Discounts, on the Reservations tab: Free Daily/Weekly Reservations per Player and per Family, set per membership type. This grants a certain number of fully-free reservations in a given period, rather than a percentage or fixed-dollar discount.

Real example: With Free Weekly Reservations per Player set to 1, a member books a Singles - Tennis reservation with the tennis ball machine attached on a new week. The entire reservation - court and ball machine both - comes through completely free, using up that week's one free reservation. The combined-fee behavior holds here too: the discount doesn't apply to just the court and leave the resource fee standing: it zeroes out the whole bundled total.

Confirmed: Booking a second Singles - Tennis reservation with the tennis ball machine in that same week charges normally - $62.50 total (full combined court + machine fee), no discount applied. In this example, the free reservation is a one-time-per-period benefit, not a standing discount; once it's used, subsequent reservations in that period are charged in full.


Custom Court Costs

A custom court cost applied to a reservation does not affect the resource fee - the two remain independent, whether the custom cost lowers or raises the court price. If a reservation cost is set to $0 and a ball machine is added, the reservation charges only the resource fee - not both.

Real example - custom cost set to $0: With the court's custom cost set to $0 and a tennis ball machine ($30/hour) attached, one hour comes to exactly $30 total - just the resource fee, confirming the court and resource fees stay independent even at the $0 edge case.

Real example - custom cost that raises the price: The players's membership normally charges $40/hour for an Indoor court, but a custom Saturday rate raises his court cost to $50/hour. With the tennis ball machine ($30/hour) added and Fee Responsibility set to Each Player Equally, one hour on a Saturday comes to $80 total ($50 custom court rate + $30 machine) - the custom cost and the resource fee combine normally, the same as standard pricing would.

Adding Luke as a second player confirms the custom-cost total still splits correctly under Each Player Equally: the same $80 total ($50 custom court rate + $30 machine) divides evenly - $40 each.


Restricting Where a Resource Can Be Booked

Resource access can be limited in four places, and all four should be checked - restricting access in one place does not guarantee it's restricted everywhere else.

Two of these work together as a pair and answer the core question "can members book this resource themselves at all":

  • Resource Category (item 2 below) is the primary switch - it controls whether members can see and book the resource in the portal or app at all.

  • Bookable Items (item 3 below) then controls which specific membership types are allowed to book it.

In short: Resource Category = whether it's bookable at all, Bookable Items = which membership types can book it. The other two places (Manage Resources and the General tab) control narrower things - court assignment/visibility and where in the booking flow the resource can be reached - rather than member access itself.

  1. Settings > Court & Resource Settings > Manage Resources - Assign the resource to specific courts, or leave blank to allow any court. Uncheck Is Active to hide the resource from both the member portal and admin panel.

  2. Settings > Court & Resource Settings > Resource Categories - The primary switch for member access: whether Allow Members to Book this Category is checked determines if members can see and book the resource at all. Also restricts the category to specific reservation types or court types.

  3. Settings > Booking Settings > Bookable Items - Once a resource category is allowed at all, this controls which specific membership types are allowed to book it. Grants or removes access by membership type, alongside reservation and court types on the same grid.

  4. Settings > Booking Settings > General - Two related settings live here:

    • Allow Members To Book Resources - A further toggle, set per membership type, alongside the setting below.

    • Restrict Resource Bookings Just From Courts Scheduler - Normally, a member can book a resource two ways: from its own Resource Scheduler (Option 3 above), or as an add-on while booking a court. This setting shuts off the first path when checked, funneling members through the court-booking flow instead.

Note: Both settings above are live on the General tab and set per membership type. This is a genuine third layer beyond Resource Category and Bookable Items.

The hierarchy: Allow Members To Book Resources on the General tab is the master gate. Unchecking it for a membership type removes that membership's resource rows from Bookable Items entirely - they show as blank dashes instead of checkboxes, rather than just appearing unchecked.

In other words, Bookable Items' per-category resource permissions don't even function for a membership until General's toggle allows resource booking for that membership at all. The order is: General (master switch) → Resource Category (is this category bookable at all) → Bookable Items (which memberships, once the above two are satisfied).


The Resource Scheduler vs. the Court Scheduler

Normally, a member can book a resource two ways: from its own dedicated Resource Scheduler, or as an add-on while booking a court. Restrict Resource Bookings Just From Courts Scheduler shuts off the first path.

Unchecked (the default) - both paths stay open. Players (and admins) can book a resource starting from the standalone Resource Scheduler (though a court may still be required, depending on the resource category's Is Court Required setting), or add it while booking a court through the normal flow.

Checked - the standalone Resource Scheduler option disappears. Members can only get a resource by adding it to a court booking. This doesn't block every other path, though - resources can still be booked in a few other places on the portal, such as when creating an event.

Note: Regardless of this setting, the resource scheduler on the Admin Panel (Schedulers > Resource(s)) cannot be hidden. As long as any resource exists in the system, system users will always see it there, even when it's hidden from the member portal.

System user Resource(s) scheduler view:

Member Resource(s) scheduler view:

System user Expanded scheduler view:


Booking Visibility, Duration, and Double-Booking Prevention

A resource being set up correctly is not the same as it being visible or bookable at the right times. A few additional settings control this:

  • Double-booking prevention - A resource set up as a standard bookable item is automatically blocked from being double-booked. Once reserved, the system prevents another player from booking the same resource for an overlapping time.

  • Restricting booking hours - To limit the hours a resource can be booked (separate from a club's general court hours), use a custom scheduler under Settings > Court & Resource Settings > Custom Schedulers to define the allowed booking window for each day.

  • Rental duration - Minimum, maximum, and default booking durations, as well as duration increments, are set on the reservation type used to book the resource.

Booking dates: A resource's "booking dates" can be configured inside a Custom Scheduler if needed, not on the resource itself. A Custom Scheduler has four date fields: Show Custom Scheduler From Date and Show Custom Scheduler To Date (the range the scheduler itself is visible), and Scheduler Starting Reservation Date and Scheduler Ending Reservation Date (the range reservations can actually be made within). If any of these don't cover the present, a resource booked through that scheduler will appear unavailable.

Note: A Custom Scheduler also has several visibility controls beyond dates and hours: Is Private (restricts it to only the user who created it), Show On Member Portal, Show Scheduler to Following Membership(s) and Show Scheduler to Following Group(s) (both defaulting to ALL, but can be scoped), Override Time In Advance a Court can be Booked, and Show On Admin Side (whether it appears in the left navigation for admins and organizers). If a resource seems to be missing for a specific membership type or group, one of these is worth checking alongside the settings covered earlier in this article.

Did this answer your question?