Introduction to price sheets
Last updated: January 8, 2024
Price sheets are a powerful way of managing the pricing, visibility, and requirement rules of various parts of your booking process. Here are just a few examples of how price sheets can be used:
- Determine your prices for online bookings vs. direct bookings
- Hide certain custom fields from online customers and make them visible to only your staff
- Make certain fields required only for online customers (such as an “Accept Terms & Conditions” checkbox)
- Create a set of prices specifically for an affiliate
Here we’ll go over the fundamentals of how price sheets work and how they interact with each other.
Price sheets are one of FareHarbor’s power features. We encourage you to get to know how they work so you can make edits for yourself, but if you need a hand, we’re always here to help.
What are price sheets?
A price sheet is a collection of prices, visibility, and requirement rules that can be applied to the book form for a particular item.
You can create as many price sheets as you want, and specify which sheet to use in different scenarios, such as when you are entering a booking directly, when a customer is booking online, or when an affiliate is creating a booking.
Any time you see a table with a Visibility and Price column like the one below, you are looking at a price sheet.

Inheritance and the Base sheet
To reduce manual work and keep your pricing structures organized, price sheets use a concept called inheritance. This allows you to set a collection of base prices, which automatically get inherited by all other price sheets, so you only have to worry about making changes where you need to. To better understand this process, take a look at the example below.
Example

Let’s say we have three different sets of pricing options: Sheet A, Sheet B, and Sheet C.
The price of Adults for an evening cruise is usually $100, but we want it to be $80 when bookings are created with Sheet C.
Without inheritance, we would need to set the prices on each sheet individually, and if we ever needed to change the base price for Adults, we’d have to remember to go in and update both Sheet A and Sheet B.
This can start to get time-consuming when dealing with many price sheets.
This is where the Base sheet comes in. Instead of entering “$100” into both Sheet A and Sheet B, we make use of an additional price sheet called the Base sheet. This allows us to establish a “base price” which is then inherited by all the other sheets.
Now, if we set the price for Adults to $100 on the Base sheet, the other sheets will inherit that price by default. Then for Sheet C, we can override the inheriting price and change it to $80.

This way, Adults automatically cost $100 on both Sheet A and B, without us having to go in and enter those prices manually. And if we want to change the price to $120 in the future, we can just change the Base sheet and Sheet A and B will update automatically. (This won’t affect Sheet C, because we have told it to override the price of Adults instead of inheriting it.)
This is a powerful system that allows us to stay organized and avoid discrepancies when managing prices.
Visibility and Requiredness
This same concept applies to visibility and requiredness for all customer types and custom fields you set up on an item. These settings are established on the Base sheet, and all price sheets will automatically inherit those settings, unless changed.
For example, we could make a custom field hidden on the Base sheet for a particular item, which will hide it on all other inheriting sheets. And if we want that field to be visible on Sheet B only, we simply change the visibility on Sheet B.

Inheritance at different levels
To use price sheets effectively, it’s important to understand one more advanced concept related to inheritance.
Because price sheets can be updated at different levels (overall settings, item settings, and availability settings), this means that individual items and even availabilities can have their own base prices and inheriting sheets. As a result, the system may have to pass through several levels before it can determine which price or visibility setting to use.
Example
For instance, if we set a custom field to hidden at the overall custom field level, that setting will be inherited on all price sheets for all items and availabilities, by default. But let’s say we want the field to be visible for only a particular item, and on all of that item’s price sheets.
Instead of updating the visibility on every sheet for that item (which would be time consuming and may lead to inconsistencies as mentioned earlier), we can set the custom field to visible on the Base sheet for that item. This way, all of the sheets under that item’s Base sheet will inherit that value, but the field won’t be affected on any other items, or at the custom field level.

Order of inheritance
When determining whether the field should be visible or not, the system will check, in order:
- The custom field setting on the item for the current sheet
- The custom field setting on the item for the Base sheet
- The overall custom field settings for the current sheet
- The overall custom field settings for the Base sheet
In the example above, we’ve changed the custom field visibility on the Base sheet for Item 2 from hidden to visible. So to determine the setting for Sheet A on that item, the system only needs to check up to the item’s Base sheet before knowing which setting to use.

If we hadn’t changed the visibility on the item’s Base sheet, the system would instead look back further to determine which setting to use.

In this case, the system is checking all the way back to the Base sheet on the custom field settings to determine the visibility on Sheet A for Item 2.
When changing pricing or visibility on an individual availability, the same idea applies. When looking at a custom field’s visibility on a single availability, for example, the system will first check the custom field setting on the availability’s current sheet, then the custom field setting on the availability’s Base sheet, and so forth: up through the item settings, then the overall custom field settings.
Working with price sheets
By default, every Dashboard comes with a Base sheet, along with a Direct sheet (commonly used for direct bookings made within the Dashboard) and an Online sheet (for customers booking online).
Note: Some Dashboards may also have a sheet marked with the note Does not extend from Base (often called a No Prices sheet). This sheet does not inherit from the Base sheet, and by default, has no prices assigned to it. It can be used when working with third parties who are invoiced instead, or if you want to create a brand new set of pricing and visibility from scratch.
Where to locate price sheets
1. In your Dashboard Settings
To view all of your existing price sheets, navigate to Settings > Price Sheets. If needed, you can create a new price sheet from this section, or reorder your existing sheets. It’s also where you can update a sheet’s general settings, such as whether it is taxed or can be used by online customers.

Go to the Overview tab to see a complete overview of all your prices. Here, you can update pricing and visibility across different items, customer types, and custom fields. Use the toolbar to choose a price sheet, filter your view, or print. When printing, the current view (including any filters) will be printed.

Remember: Depending on their permission group, individual Dashboard users might not have access to view a company’s price sheets.
2. In an individual item’s settings
You can view and update price sheets for an individual item by going to the item’s Options & Prices. From here you can set prices and visibility for the customer types and custom fields on that item.

In the example above, we are updating the Base sheet for Person(s) on our Walking Tour. The name of the price sheet is listed in the toolbar at the top, next to Prices and Visibility.
For more information on how to update customer type prices in an item’s settings, see our step-by-step guide.
3. On an individual availability
Note: We do not recommend updating updating price sheets for individual availabilities, as this can conflict with price schedules, invoice sheets that have been configured for affiliates, and price schedules with dynamic rules. Before updating individual availability price sheets in the availability’s Advanced > Prices settings, reach out to FareHarbor Support.
Note: Your price sheets might not have the same names and uses as the ones in these examples. You can always change the names and settings of the default price sheets provided to you, or create new price sheets for different purposes such as seasonal pricing changes or affiliate bookings.
Remember, if you have any questions about setting up or managing your price sheets, our Support team is always here to help!
Internal-only content. Don't copy and paste to anyone.
Companies use price sheets—including the default sheets we give them—in different ways. So don’t assume that a client is using their Online or Direct sheet the same exact way we’d expect them to. They might not even use the Online or Direct sheets, or maybe they’ve renamed them to something else. When dealing with a client’s pricing, always check their Dashboard to see what kinds of price sheets they’re using.
We generally don’t tell clients to use the pricing inspector as it can confuse them. However, this is a useful way for us to see internally what sheets are in play. Access the inspector by clicking into a pricing table, then clicking the Inspect button. The table is read from the bottom up; the first price encountered from the bottom is the price that is being used.

In this simple example, the Base sheet on Adults is being used. This table can get more complicated as you add more layers. For instance, custom field pricing and visibility can be updated at many different levels, from the overall custom field settings to a specific item to a specific availability.