Boarding Pricing: Space-Based or Size-Based
By default, every space carries its own nightly rate and a stay bills the space it's booked into. If your price list is really about the dog — small dogs $45, large dogs $60, whatever kennel they're in — switch to size-based pricing instead.
Go to Settings → Pricing. The Boarding Pricing card has a mode selector:
- Space-based — every space carries its own nightly rate; a stay bills the space it's booked into. Set each space's rate on the Spaces page.
- Size-based — a rate card of pet-size bands sets the nightly rate; the space no longer prices the stay.
The Size-Band Rate Card
In size-based mode, build your rate card — one row per band, with a Band name (e.g., "Large Dogs"), an optional Species only restriction, the band's maximum weight (Up to, in your facility's weight unit), the Per night rate, and an Each extra pet rate for additional dogs sharing a kennel.
Bands are matched top to bottom, so list them lightest to heaviest and leave the last band's weight blank to catch everything above it. Add rows with + Add size tier and click Save Rate Card — the card takes effect when you save it. A readout below the card shows what two dogs of each band cost sharing a kennel.
How Size-Based Stays Price
- Each pet falls into a band automatically from the weight on its profile; staff can override the band per pet on the booking form or the reservation — the picker shows "Auto — band" until overridden.
- When several dogs share a kennel, the largest dog's band sets the nightly rate and every other dog bills its own band's extra-pet rate — so the order pets were typed in never moves the price.
- Holiday pricing surcharges, promo codes, and a negotiated shared rate work the same in either mode.
Switching back to Space-based clears the rate card (you're asked to confirm) and stays bill each space's own nightly rate again. Existing facilities are untouched by this feature until they save a rate card — an empty card means space-based pricing, exactly as before.
Nights or calendar days
Below the pricing mode, What a stay counts decides what the rate is charged for:
- Per night (the default) — a Friday-to-Sunday stay bills 2 nights. The rate on each space is a nightly rate.
- Per calendar day — the same stay bills 3 days: check-in day, the day between, and check-out day. The rate on each space is a daily rate.
Pick Per calendar day if you quote customers "$40 a day" and expect both the arrival and departure day on the bill. Every quote follows the setting — the reservation form, the customer portal, the online booking widget, the confirmation email, and the invoice's boarding lines — so the number the customer sees when booking is the number they pay. Holiday pricing surcharges apply to each billed day the same way they apply to each night.
Changing the setting affects new quotes and repriced stays. A stay that was already priced keeps its total until you edit its dates or space, and the Billed days box at check-out still overrides either count.
Promo Codes & Discounts
Promo codes allow you to offer discounts on reservations and invoices.
Creating a Promo Code
- Go to Promo Codes and click New Promo Code.
- Fill in:
| Field | Notes |
|---|---|
| Code | The code clients enter (e.g., SUMMER20). Automatically uppercased. |
| Name / Description | Internal description (e.g., "Summer 2026 Promotion") |
| Discount Type | Percentage (e.g., 20% off) or Fixed Amount (e.g., $10 off) |
| Discount Value | The amount of the discount |
| Minimum Stay (nights) | Optional. Require a minimum number of nights to apply. |
| Usage Limit | Optional. Maximum number of times this code can be used. |
| Start Date / Expiry Date | Optional date range when the code is active |
| Applicable Services | Restrict to Boarding, Board & Train, Daycare (Full), and/or Daycare (Half). Leave all unchecked to apply to all services. |
| Active | Toggle to enable/disable the code |
- Click Create Promo Code.
Applying Promo Codes
Promo codes are applied by staff on the reservation:
- During reservation creation
- When editing a reservation
The discount then rides onto the stay's invoice as its own line.
Discount Rules
In addition to promo codes, Goodstay supports automatic discount rules. Configure them in the Automatic Discount Rules card in Settings → Pricing — Multi-Pet Discounts and Extended-Stay Discounts.
Holiday Pricing
Add price surcharges for holidays and peak periods. Goodstay automatically applies these to reservations that overlap with the defined date ranges.
Creating a Holiday Pricing Period
- Go to Settings → Pricing, find the Holiday Pricing card, and click Add Holiday.
- Fill in:
| Field | Notes |
|---|---|
| Holiday / Period Name | E.g., "Christmas 2026", "Memorial Day Weekend" |
| Start Date | First day of the surcharge period |
| End Date | The first night back at the regular rate (exclusive) |
| Surcharge Type | Percentage of the nightly rate (e.g., +25%) or Flat dollars per night (e.g., +$15/night) |
| Surcharge Amount | The amount of the surcharge |
- Click Create Holiday Pricing. Overlapping holiday periods are not allowed.
How Pricing Is Applied
When a reservation is created or edited, Goodstay automatically checks if any dates overlap with holiday pricing periods. If they do, the surcharge is applied per overlapping night and displayed in the reservation's price breakdown.
Space Blocks (Closures & Maintenance)
Space Blocks let you mark a space (or your entire facility) as unavailable for a date range, preventing new reservations from being created.
Creating a Space Block
- Go to Blocked Dates in the sidebar and click Block Dates.
- Fill in:
| Field | Notes |
|---|---|
| Reason | Choose Maintenance, Cleaning, Renovation, Holiday closure, Other — or leave it blank |
| Start Date | First blocked day |
| End Date | The day you reopen — bookings can start again on this date. Set it equal to the Start Date for a single-day block. |
| Which spaces | Choose Facility-wide (block every space) or Specific spaces (pick the ones to block) |
| What's closed | Facility-wide only: Everything, or Drop-offs, pick-ups & appointments — see below |
| Notes | Internal notes about the reason |
- Click Block Dates.
A facility-wide block set to Everything prevents all reservations across all spaces for that date range. Use this for major maintenance or any time you're completely shut.
Closed Days (Boarders Stay Through)
Most holidays aren't a full shutdown: the dogs already in the kennel are still fed and walked, but nobody drops off, picks up, or comes in for grooming or daycare. For that, create a facility-wide block and choose Drop-offs, pick-ups & appointments under What's closed. On those days:
- A boarding stay may run through the closed day, but may not start or end on it. With December 25 closed, a Dec 24–26 stay books fine; Dec 24–25 (pick-up on the 25th) and Dec 25–27 (drop-off on the 25th) are refused.
- Daycare and grooming visits on the closed day are refused.
- Existing reservations are untouched — a block added after a stay was booked never traps a pet that's already in the building.
The block is listed under Blocked Dates with a Closed to drop-offs, pick-ups & appointments badge, and the Dashboard shows a notice on the day. Customers see closed days greyed out on the Customer Portal date pickers for boarding, daycare, and grooming; if they type one anyway, the booking is refused with a message naming the day. Your team sees the same refusal on the reservation form and can tick Book anyway — say, for a regular you've agreed to meet at the gate.
How Blocks Are Enforced
Blocks aren't just cosmetic — they're checked when a reservation is saved:
- Your team sees blocked-but-free spaces stay selectable in the booking form's space dropdown, labeled "— Blocked dates (override required)" — deliberately, so the override is reachable. Saving anyway makes the reservation form refuse with an error naming the block, its dates, and its reason; staff can tick the checkbox to Book anyway despite the block (the checkbox reads Book anyway) — say, squeezing a regular into a maintenance window that's actually fine.
- Customers can't override: online booking and the customer portal treat an overlapping block as a hard stop, across boarding, daycare, and grooming. A closed day is a hard stop for arrivals, departures, and visits only.
- Status changes on existing reservations — check-in, check-out, confirm, cancel — are never blocked. Only new bookings and date/space edits are re-checked, so a block added mid-stay never traps a pet that's already in the building.
Blocking Several Spaces at Once
When you choose Specific spaces, Goodstay shows your spaces grouped by type (Daycare, Grooming Station, Large, Puppy, Standard, Suite). Tick individual spaces, or use a group's Select all link to take a whole category offline in one go — handy when, say, all your suites are being repainted but boarding runs stay open.
One block is created per space you select. If any of the chosen spaces already has an overlapping block, the whole batch is cancelled and the form tells you which spaces conflicted, so you can adjust and try again. (Editing an existing block still works on a single space at a time.)