Capitan Release Notes - July 20, 2026
What's in this release
The headline of this release is the Chart Builder, a new reporting page where you can build your own charts from Capitan's data, alongside a set of improvements to event bookings, private event payments, and the customer profile.
Chart Builder
Reports
Events & bookings
- Staff can bypass event booking restrictions
- Post-event email: send only to people who attended
- A warning before deleting a schedule leaves events behind
- Remove and restore event categories
Memberships & payments
Front desk & customer profiles
- Customer profile action buttons fit any screen, and can be reordered
- Limit automatic barcodes by age
- Proficiencies: set an exact expiration date
Plus a number of fixes - see the end of this article.
Chart Builder
New: build your own charts
Capitan's chart reports each answer one question with a fixed set of options. The Chart Builder is a new page where you assemble a chart yourself, choosing what to plot and how to slice it, and putting several different things on the same chart to compare them.
To open it, go to Reporting and use the Custom Charts dropdown at the top right, next to Report Settings, then choose Create a New Custom Chart.
A chart is made up of one or more metrics. Each metric is a metric type plus whatever filters you want to apply to it. The metric types available are:
- Revenue
- Check-In Count
- Products Sold
- New Customers
- Membership Count
- Customer Retention
- Product → Membership Conversion
- First Check-In → Membership Conversion
- Member Churn
- Member Ancillary Revenue
- Member Ancillary Spend Count
- Membership Referrals
Filters depend on the metric type, and include things like Locations, Product Type, Revenue Source, Check-In Type, Entry Method, Time of Day, Membership Types, Add-On Names, and Status, as well as exclusions such as "Exclude purchases with $0.00 paid". Optional filters have no "all" option: to include everything, remove the filter rather than selecting every value in it.
For a full explanation of what each metric type measures, the filters available on it, and some examples of what you might use it for, see Chart Builder: Metric Types Explained.
Above the chart you'll find the same relative or fixed date range selector used on your other reports, plus an Interval selector (Daily, Weekly, Monthly, Quarterly, Annual). Below the chart, the Metrics tab lists everything on the chart, with a checkbox to show or hide each one and Edit, Duplicate, and remove actions. The Axis column moves a metric between the left and right y-axis, which is useful when you want to compare two things measured in different units, such as revenue against a count. The Options tab lets you set minimum and maximum values for each axis. Axes are labelled automatically based on what's on them, so a chart of rates is formatted as percentages and a chart of money is formatted in your currency.
You can drag the divider below the chart to make the chart taller or shorter.
Save, share, and reopen a chart
Use "Save" to name a chart and keep it. When saving, you choose who has access: "Only me", "All staff at my organization can view this chart", or "All staff at my organization can edit this chart". "Open" lists your saved charts and lets you search them by name, and "New" starts a fresh chart.
You don't have to save a chart to share it. As soon as you make an edit, the page's web address updates to carry the whole chart configuration with it, so you can copy the address out of your browser and send it to a colleague, who will see exactly the chart you built. They can then edit it or save their own copy. Saving a chart replaces that shareable address with a link to the saved chart.
The Source tab shows the chart's underlying configuration as text, with Copy Code, Apply Changes, and Revert Changes, for when you want to edit or hand off a chart's definition directly.
Export chart data to CSV or Excel
The Export dropdown offers Download CSV and Download XLSX. The export has one row per time period and one column per visible metric, so what you see on the chart is what you get in the file. Values come through as plain numbers so they're ready for spreadsheet formulas, and a period with no value is left blank rather than exported as a zero.
Reports
Membership reports: filter by billing location
Every membership carries a billing location, which is the location a membership actually bills at rather than the home location of whoever owns it. This is the location dimension the Member Churn Rate report already used, and it's now available more widely.
The Memberships and Membership Referral Log reports have a new Billing Location filter in their filters panel. The existing Owner Home Location filter is unchanged and still there, so nothing you've already set up changes. The Membership Referral Log also gained Billing Location ID and Billing Location Name export columns.
One change to be aware of: the Membership Referral Counts chart's location filter was previously based on the owner's home location, and is now based on billing location, matching the rest of membership reporting. Its filter is labelled Billing Locations accordingly. If you filter that report by location, its numbers may shift slightly from what you saw before.
Events & bookings
Staff can bypass event booking restrictions
Staff users could already bypass a required document when booking an event for a customer. That's now been extended to the other restrictions that can block a booking: the minimum and maximum participant age, the late booking window, the event capacity, the daily reservation limit, and the maximum bookings per event.
When one of these blocks a booking your staff are making in the Climber App, a red "Bypass Booking Restrictions (Staff Only)" button appears, naming exactly which restrictions will be overridden. Each bypass is recorded separately in the activity log for your records. Events that have already concluded still can't be booked.
Post-event email: send only to people who attended
If you've configured a post-event email, it went to everyone who booked, including customers who never showed up. The Emails tab of an event type's setup now has an "Only Send to Attendees" option under Send Post-Event Email. With it enabled, only participants who checked in to the event receive the email, and for a multi-part event, checking in to any part counts.
This is off by default, so your existing event types keep sending to everyone booked until you turn it on.
A warning before deleting a schedule leaves events behind
Deleting a schedule can't remove events that already have active reservations, which left those events sitting in your calendar with no schedule behind them and no explanation. Deleting a schedule or a schedule exception now shows a confirmation listing exactly which events will be left in place, with their date, location and reservation count, and a "View event" button for each. You can review them and then choose Delete Anyway or Cancel.
Related to this, future events whose reservations have all been cancelled are now cancelled along with the schedule instead of blocking its deletion.
Remove and restore event categories
Deleting an event category that was still attached to voucher packs, memberships, or issued vouchers would fail with an error. Categories now work the way document templates do: the action on a category is Remove rather than Delete, and removing one hides it from your category list, from the Climber App schedule filters, and from the products you can assign it to, while keeping its data intact so any vouchers already issued in it stay valid.
If an active or draft voucher pack or membership still grants vouchers in the category, removing it is blocked with a message naming the specific products so you know what to update first. Retired products and already-issued vouchers don't block removal.
A Removed Categories section appears on the Event Categories page when you have any, with a Restore button to bring one back.
Memberships & payments
Youth programming setting for rolling programs
Rolling event programs are backed by a membership behind the scenes, and that membership was always marked as youth programming, whether the program was for kids or adults. There was no setting anywhere to change it, so an adult training team would turn up under the youth programming filters in your reports and customer list.
The "Is this membership used for youth programming?" setting now appears in the Setup section of a rolling event type's pricing and membership page, working the same way as the equivalent setting on a regular membership. Note that rolling programs still default to Yes, so if you run rolling programs for adults, set them to No.
Private events: record a partial offline payment
Groups booking a private event often pay a deposit by check well ahead of time and settle the rest closer to the date. Marking an event paid offline always recorded the full outstanding balance, so there was no way to record that deposit.
"Mark event as paid offline" on a private event's payment page now opens the same Select Payment Amount step that Pay Now and Request Payment use, where you choose Pay Full Balance or Make Partial Payment and enter the amount. The remaining balance stays outstanding and can be settled later by any method, including another offline payment. The confirmation that an offline payment can't be undone still appears, and now states the amount.
Front desk & customer profiles
Customer profile action buttons fit any screen, and can be reordered
The action buttons at the top of a customer's profile, such as Open Sell Screen, Add Alert, and Edit Profile, now lay themselves out to fit the window: as many as will fit are shown directly, and the rest move under a More dropdown, updating as you resize. On a wide enough screen, every button shows and there's no More dropdown at all. On a very narrow screen, the profile grid moves below the customer's photo.
You can choose the order those buttons appear in from the new Action Button Order section of the Configure Customer Profile Layout page, between Profile Grid and Sidebar Card Order. The buttons also appear in that page's example profile preview.
Limit automatic barcodes by age
If you have Capitan generate customer barcodes automatically, you can now stop that happening for young children, which is useful if you don't want climbers under a certain age using self check-in.
In Organization Settings, selecting "Limit automatically generated barcode to customers over a certain age?" reveals a Minimum age field. New customers below that age don't get a barcode generated at all, so nothing appears for them in emails or the Climber App. Existing barcodes aren't affected, and a customer who is already below the age won't automatically receive a barcode later when they get older.
Proficiencies: set an exact expiration date
Adding or editing a proficiency on a customer's profile previously let you choose only Never Expires or a whole number of years. The expiration dropdown now also offers "On a specific date", which reveals a date picker so you can set the exact date the proficiency expires.
Fixes
- Climber App payment pages now tell you when something has gone wrong. If a card payment couldn't be started, the buttons would grey out and the page would simply sit there, which could leave staff or a customer believing a sale had gone through when no payment had been taken. These pages now show "Sorry, we couldn't start the payment. Please try again, or contact us if the problem continues." and re-enable the buttons. This covers all of the Climber App's payment pages and all payment processors.
- Apple Wallet passes can be added again. The certificate Capitan uses to sign Apple Wallet membership passes had expired, so a customer who deleted their pass couldn't add it back. The certificate has been renewed and passes work normally again. Customers with a pass still installed were never affected and don't need to do anything. An automatic alert now warns us well before the certificate next expires.
- Waiver reminder emails include the document link again. When an event's email settings had a waiver reminder document selected, the reminder went out with no link to the document, so recipients were asked to sign something with no way to do it. The email now includes a Go To Document button and a plain-text link.
- The emailed Redemption Codes report can be filtered by location. When setting up a scheduled email of the Redemption Codes report from the Emailed Reports page, the Redemption Location filter listed no locations and couldn't be set. It now lists your locations.
- Freeze fee quotes match what gets billed. The freeze fee previewed on the Staff Site could differ from the amount actually charged when a discount applied or when a membership billed at a different location than its owner's home location. The preview is now produced the same way as the real bill.
- The Climber App shows the right fee when freezing one member. On the Freeze Individual Member page, the fee shown was the whole membership's freeze fee rather than the fee for the single member being frozen, so a family membership could appear to cost twice what it would. The page now shows the fee for the selected member at their own rate, updating as you change the selection. The amount billed was always correct.
- Saving a group event no longer drops participants. Saving a private or group event could intermittently fail with a server error and, in doing so, change the event's capacity and remove participants who had already been added. Saving is now all-or-nothing: if it fails, the event is left exactly as it was. If a participant can't be matched to an active customer profile, you now get a message naming that person instead of a generic error, and participants whose profiles have been merged are matched to the surviving profile automatically.
- Joining an event type's waitlist no longer errors. A customer who had previously been on a specific event's waitlist would get an error page when joining that event type's waitlist. The entry was created but the staff notification email was never sent. Both now work correctly.
- No waitlist invites for cancelled events. A customer on a waitlist for an event that was later cancelled could still receive an automatic "spot available" invite leading to a dead link, and their waitlist entry was used up in the process. Invites are no longer sent for cancelled events, and the customer keeps their place in line.
- Marking a private event paid offline can't record a duplicate payment. Double-clicking, or two staff users acting at once, could record the same offline payment twice and double the event's revenue in your reports. Only one payment is now recorded. Confirmation buttons throughout the Staff Site also show a loading state once clicked, so a second click has no effect.
- No duplicate $0 membership purchases. Double-clicking the submit button on a free membership purchase in the Climber App could create two or three identical active memberships. It now creates one, in both the individual and group purchase flows.
- Missing document alerts stand out on the event participants list. The alert icon for a participant missing a waiver or participant agreement is now red rather than the yellow used for general account alerts, so staff can tell at a glance which participants need something signed.