
#1
16 tracked markets
Source: BNBCalc market metadata · Reviewed by Parker Place, CTO of BNBCalc.com · Data updated October 21, 2026
South Hill is the top Virginia short-term rental market across Airbnb and Vrbo by gross yield. Average-tier listings in South Hill have median annual room-revenue potential of $28,219 and gross yield of 13.7%, with 32% occupancy at an average daily rate of $274. South Hill has 689 average active listings.
Top gross yield
13.7%
South Hill
Median gross yield
10.4%
16 markets with yield data
Median annual room potential
$33.8K
Median across market-level medians
Tracked markets
16
Statewide market coverage
Filter market rankings
Default rankings show all bedrooms at the average performance tier.
Bedroom count
Performance tier

#1

#2

#3

#4

#5

#6

#7

#8

#9

#10
Every market below links to its full BNBCalc market page. Rankings use gross yield first, then annual revenue when yield is missing.
Average active listings is the average number of Airbnb and Vrbo listings active in a market each month over the last 12 months. It counts every performance tier, so it doesn't change when you pick a tier, and it's the same figure you'll see on that market's page. It isn't broken out by bedroom count, so the column shows a dash when you filter by bedrooms.
| Rank | Market | Gross yield | Median annual room potential | Monthly room potential | ADR | Occupancy | Average active listings | Median home value |
|---|---|---|---|---|---|---|---|---|
| #1 | South Hill | 13.7% | $28,219 | $2,352 | $274 | 32% | 689 | $192,252 |
| #2 | Damascus | 13.2% | $24,511 | $2,043 | $189 | 34% | 1,217 | $190,463 |
| #3 | Norfolk | 12.9% | $41,254 | $3,438 | $276 | 44% | 3,032 | $310,757 |
| #4 | Frederick County | 12.7% | $40,780 | $3,398 | $269 | 40% | 2,007 | $318,764 |
| #5 | Lynchburg | 11.0% | $27,630 | $2,302 | $197 | 41% | 919 | $247,445 |
| #6 | Winchester | 10.7% | $33,592 | $2,799 | $237 | 40% | 405 | $281,260 |
| #7 | Harrisonburg | 10.6% | $45,449 | $3,787 | $338 | 37% | 1,113 | $409,052 |
| #8 | Charlottesville | 10.6% | $36,858 | $3,071 | $288 | 38% | 1,587 | $344,800 |
| #9 | Roanoke | 10.2% | $30,720 | $2,560 | $264 | 32% | 2,211 | $277,775 |
| #10 | Richmond | 9.8% | $34,013 | $2,834 | $245 | 42% | 2,165 | $315,984 |
| #11 | Roseland | 9.3% | $35,663 | $2,972 | $294 | 32% | 1,753 | $322,808 |
| #12 | Williamsburg | 8.5% | $28,673 | $2,389 | $241 | 37% | 2,007 | $363,027 |
| #13 | Stafford | 8.3% | $32,472 | $2,706 | $256 | 36% | 1,073 | $408,925 |
| #14 | Northampton County | 8.2% | $42,343 | $3,529 | $358 | 33% | 805 | $410,768 |
| #15 | Chincoteague | 7.1% | $28,427 | $2,369 | $216 | 38% | 801 | $450,555 |
| #16 | Bull Run Mountain | 6.9% | $41,636 | $3,470 | $259 | 42% | 301 | $616,206 |
Markets are ranked by the median of each eligible home’s annual room-revenue potential divided by its ZIP- and bedroom-matched home value. Cleaning income is excluded. Gross yield is before expenses, financing, taxes, and local rules.
Revenue uses the same matched homes as yield and excludes estimated cleaning income. Monthly potential is annual potential divided by 12.
ADR is the average booked nightly rate. It includes cleaning fees, which are bundled into the nightly rate, and excludes other guest fees.
Occupancy is adjusted occupancy of bookable nights, excluding host-blocked nights.
Gross yield is the median of individual home yields, rather than a ratio of the displayed medians.