Rate Import
The rate import tool lets you upload rates for multiple properties and seasons at once from a CSV file. This is especially useful when onboarding new properties, updating rates from a partner's spreadsheet, or loading an entire year's pricing in a single step.
Overview
Instead of creating property seasons one at a time through the UI, you can prepare a CSV file with all your rates and upload it to Rates > Import Rates. The system validates each row, matches properties and seasons by name, and creates or updates property season records accordingly.
The import also supports a dry run mode that validates your file without saving anything -- so you can catch errors before committing changes.
CSV File Format
Your CSV file must include a header row with column names. The system recognizes the following columns:
Required Columns
| Column | Description | Example |
|---|---|---|
property_name | Property name (must match an existing property in your account) | Casa del Sol |
season_name | Season template name (matched case-insensitively) | High Season 2026 |
nightly_rate | Rack nightly rate | 350.00 |
Optional Columns
| Column | Description | Example |
|---|---|---|
start_date | Season start date (YYYY-MM-DD or MM/DD/YYYY) | 2025-12-15 |
end_date | Season end date (YYYY-MM-DD or MM/DD/YYYY) | 2026-04-15 |
net_rate | Net nightly rate paid to property owner/partner | 280.00 |
weekly_rate | Rack weekly rate (if different from 7x nightly) | 2200.00 |
net_weekly_rate | Net weekly rate paid to partner | 1750.00 |
min_nights | Minimum stay requirement | 5 |
cleaning_fee | Cleaning fee (for reference tracking) | 150.00 |
processing_fee | Processing fee (for reference tracking) | 25.00 |
Example CSV
property_name,season_name,start_date,end_date,nightly_rate,net_rate,min_nights
Casa del Sol,High Season 2026,2025-12-15,2026-04-15,350.00,280.00,5
Casa del Sol,Green Season 2026,2026-04-16,2026-11-30,200.00,160.00,3
Villa Pacifica,High Season 2026,2025-12-15,2026-04-15,500.00,400.00,7
Villa Pacifica,Green Season 2026,2026-04-16,2026-11-30,300.00,240.00,3Importing Rates
- Navigate to Rates > Import Rates.
- Click Choose File and select your CSV.
- Click Validate to run a dry run. The system checks every row and reports any errors without saving.
- Review the validation results. Fix any errors in your CSV and re-upload if needed.
- Once validation passes, click Import to save the rates.
[Screenshot: The Import Rates page showing a successful dry run with 12 valid rows and 0 errors.]
How Matching Works
Property Matching
The system matches the property_name column against existing properties in your company using a case-insensitive comparison. The name must match exactly (aside from casing) -- partial matches or fuzzy matching are not supported.
If a property name does not match, the row is flagged as an error and skipped.
Season Template Matching
The season_name column is matched against existing season templates in your company (case-insensitive).
- If the template exists: The system uses it and ignores any
start_date/end_datevalues in the CSV. - If the template does not exist and dates are provided: The system creates a new season template with the given name and date range, using the start date's year as the template year.
- If the template does not exist and no dates are provided: The row is flagged as an error.
This means you can use the import tool to create season templates and property seasons in one step -- just include the date columns.
New vs Existing Property Seasons
- New combination: If no property season exists for the given property + season template pair, a new one is created with the values from the CSV.
- Existing combination: If a property season already exists, its values are updated with the non-empty values from the CSV. Fields left blank in the CSV are not overwritten.
Validation and Error Handling
The import service validates each row individually. A single bad row does not prevent other rows from being imported -- errors are collected and reported at the end.
Common validation errors:
| Error | Cause | Fix |
|---|---|---|
| Property not found | property_name does not match any property | Check spelling and ensure the property exists |
| Season template not found, no dates | season_name is new but start_date/end_date are missing | Add dates or create the season template first |
| Invalid date format | Date is not in YYYY-MM-DD or MM/DD/YYYY format | Reformat the date column |
| Invalid decimal | Rate value contains non-numeric characters | Remove currency symbols, letters, or extra punctuation |
| Missing required field | property_name, season_name, or nightly_rate is blank | Fill in the required value |
Tips for Clean Imports
- Start with a dry run. Always validate before importing. It costs nothing and catches issues early.
- Match property names exactly. Copy property names from the Properties page to avoid typos. "Casa Del Sol" and "Casa del Sol" will not match if the casing differs on words other than articles.
- Use consistent date formats. Pick either YYYY-MM-DD or MM/DD/YYYY and stick with it throughout the file.
- Remove currency symbols. The parser strips
$and commas automatically, but other symbols (e.g.,EUR,USDprefixes) will cause errors. - Include net rates for partner properties. If you manage properties on behalf of owners, include the
net_ratecolumn to track your commission margin. - Keep a backup. Save your CSV files. There is no import history view in the UI currently, so your source file is the record of what was imported.
Key Concepts
- Dry Run -- A validation-only pass that checks every row without saving any data.
- Rack Rate -- The published nightly rate charged to guests (the
nightly_ratecolumn). - Net Rate -- The rate paid to the property owner or partner (the
net_ratecolumn). The difference is your commission.
Common Questions
Can I import overlays from CSV? No. The import tool creates property seasons only. Rate overlays must be created individually through the UI.
What happens if I import the same file twice? The second import updates the existing property seasons with the values from the CSV. It does not create duplicates.
Can I delete rates via import? No. The import tool only creates and updates. To remove a property season, delete it from the Property Seasons page.
Does importing trigger a channel sync? Yes. Created or updated property seasons trigger the same rate sync signals as manual edits. Your connected OTA channels will receive the updated rates.
Related
- Pricing Guide -- Full overview of the layered rate system and booking price calculations.
- Seasonal Rates -- Setting up season templates and property seasons through the UI.
- Rate Overlays -- Creating holiday and event-specific pricing overrides.
- Fees and Taxes -- Configuring cleaning fees, service fees, and tax rates.