Bring Your Own Data Guide
Use our tools on your portfolio or experiment with hypothetical market properties.
Upload a flat TSV/CSV spreadsheet with property & performance info per row. Add as many files as you like; your data is private to you. Invalid rows are skipped.
Sample DataProperty Columns
| Column | Description | Example |
|---|---|---|
prop.location.coordinates.latrequired
|
Latitude in decimal degrees. Needed together with longitude. | 39.7478 |
prop.location.coordinates.lonrequired
|
Longitude in decimal degrees (negative in the Americas). An address alone can't be placed on the map yet, so coordinates are required. | -104.9987 |
prop.bedroomsrequired |
Whole number of bedrooms; 0 for a studio. | 2 |
prop.bathroomsrequired |
Number of bathrooms; halves allowed for partial baths. | 1.5 |
prop.people_capacityrequired |
Most people (guests or residents) the dwelling allows, at least 1. | 4 |
prop.ownerrequired |
Any short label for who owns or hosts it, such as a name or an account id. | jane-doe |
prop.on_market_sincerequired |
Earliest date you know it was on the market, as YYYY-MM-DD. |
2026-06-01 |
prop.building_typerequired |
One of:
|
apartment |
prop.property_idoptional |
Your own identifier. Give one to update or replace this property later, or to tell apart identical units. | unit-4B |
prop.titleoptional |
A short listing title. Useful to analyze marketing efforts | Sunny 2BR near downtown |
prop.interior_surfaceoptional |
Indoor area in square feet, whole number. | 950 |
prop.exterior_surfaceoptional |
Outdoor area (garden, terrace) in square feet, whole number. | 300 |
prop.floorsoptional |
Number of floors in the dwelling. A split-level counts by its highest level. | 2 |
prop.terms.min_stay_daysoptional |
Shortest stay allowed, in days (nights for short-term, lease length for long-term). | 2 |
prop.terms.max_stay_daysoptional |
Longest stay allowed, in days. Not below the shortest. | 30 |
prop.amenitiesoptional |
Your own words, separated by ;. They are matched to the standard
amenity list; any we can't place are dropped.
|
wifi;parking |
prop.photosoptional |
Up to 30 picture web addresses, separated by ;. |
x.co/a.jpg;x.co/b.jpg |
prop.source.observed_atoptional |
The day your figures were true, as YYYY-MM-DD. Decides which monthly
snapshot the row shows in (see dates). Its performance follows
the same date.
|
2026-08-15 |
prop.source.channeloptional |
The marketplace it's listed on. | airbnb |
Performance Columns
| Column | Description | Example |
|---|---|---|
perf.spec.granularityrequired |
Marks the row as carrying results; without it every performance column is ignored.
Enter monthly.
|
monthly |
perf.currencyoptional |
Three-letter code for the currency of every amount on the row. USD when blank. Rows in other currencies are kept but left out of the valuation, so amounts of different currencies are never mixed. | USD |
perf.review_countoptional |
Total reviews received to date. | 128 |
perf.star_ratingoptional |
Guest rating as a share of the best score, from 0 to 1 (4.8 of 5 stars is 0.96). | 0.96 |
perf.badgesoptional |
Platform badges, separated by ;. |
superhost |
perf.rent.amountoptional |
The rent you actually earned or charged, above 0. | 185 |
perf.rent.unitoptional |
What the amount is per; required whenever an amount is given.
|
daily |
perf.utilization.occupiedoptional
|
Number of days (short-term) or months (long-term) it was rented or occupied. | 22 |
perf.utilization.vacantoptional |
Number of days or months it was available but empty. Required when occupied is given. | 9 |
perf.ask_priceoptional |
Listed sale price, above 0. | 425000 |
perf.sale_priceoptional |
Price it closed at, above 0. | 410000 |
perf.bid_countoptional |
Number of offers received. | 3 |
NOTE
Exclusively analyzing with your properties not blended with the market needs enough rows
with perf.rent.amount or perf.sale_price filled in for our tools
to work standalone.
Custom Columns
| Column | Description | Example |
|---|---|---|
extra column(s)optional |
Any number of additional unique column names. Their values must be numeric or binary to be accepted. Sporadic empty values are tolerated. These custom columns only take effect when analyzing in MINE mode as they aren't available in the shared BASE/MIXEDdataset. | foo@email.com |
Dates & Snapshots
The shared market is kept as monthly snapshots. Without a date your properties show in every
snapshot. Give prop.source.observed_at & it shows only in that month's.