top of page

Cannon Beach's $600K Lodging Tax Line Isn't Your Occupancy

Sep 2
11 min read
Moss-covered sea stacks off Cannon Beach / Ecola coast under overcast sky. Wikimedia: Oregon Coast at Cannon Beach (8237556025).jpg

Every summer, Cannon Beach fills with visible proof of tourism — packed sidewalks on Hemlock Street, a lot at Haystack Rock that fills before noon, an Instagram feed full of the same rock at sunset. None of that is a booking number. A host who reads visible crowding as evidence their calendar should be full is confusing foot traffic with a filled reservation, and those two things move independently more often than you'd expect.


There are three genuinely different data lines a Cannon Beach host should be able to name and keep separate: what the city collects in lodging tax, what the county and state report at a broader level, and what STR aggregators like AirROI and AirDNA scrape from actual booking platforms. Treating any one of these as a stand-in for the others produces a distorted picture.


This post keeps those three columns separate, on purpose, because collapsing them into one number is exactly how a host ends up mispricing a calendar based on the wrong evidence.


None of this requires a data background to apply correctly. It requires a habit of asking one question before repeating any number you encounter: what, exactly, does this figure measure, and does that match the decision I'm trying to make with it. This is not legal advice.


Column One: City Lodging Tax Revenue

Finance Director Tim Collier told council the general fund receives roughly $600,000 annually in lodging tax revenue tied to short-term rentals — a July 2025 council recap figure. This is a city-level fiscal series: it tells you how much tax revenue the city collected from STR stays across the whole permitted listing stock, not how any individual listing performed, and not what occupancy rate produced it.


It's a useful number for understanding how significant STR activity is to Cannon Beach's budget — significant enough that it's shaping the cap conversation happening in parallel — but it says nothing about your specific listing's calendar. A host quoting this figure as if it predicts their own booking rate is applying a citywide fiscal total to a single-property question it wasn't built to answer.


It's worth understanding roughly how a figure like this gets generated: it's collected across every currently permitted STR in the city, at whatever occupancy and rate each individual property actually achieved, then summed into one fiscal total. A handful of consistently strong-performing properties can meaningfully lift that total without the average listing performing anywhere near as well — which is exactly why the citywide sum tells you nothing reliable about a specific address.


Column Two: County and State Reporting

Clatsop County lodging tax figures and Travel Oregon's broader coastal reporting sit at a different altitude entirely — they aggregate visitor spending and lodging activity across a much wider geography than the city of Cannon Beach alone. These figures are useful for understanding regional trends, but they blend Cannon Beach in with neighboring towns and unincorporated areas, which makes them the wrong tool for a Cannon Beach-specific pricing decision.


If you see a county or state figure quoted in a market report, check what geography it actually covers before treating it as a Cannon Beach number. A county-wide visitor spending trend moving up doesn't guarantee your specific village listing is seeing more bookings — it might mean Seaside or Astoria picked up the growth instead.


This matters especially for a host reading a regional tourism press release and assuming it translates directly into their own booking pipeline. A headline about record coastal visitor spending is genuinely good context for the region's overall health, but it's not a substitute for checking your own reservation calendar against your own market's actual figures.


When you do need a county- or state-level figure — for a broader investment conversation, say, or context in a press mention — cite it explicitly as regional, and pair it with a Cannon Beach-specific figure rather than letting the regional number stand in for the local one. That small habit keeps your own reporting honest and keeps a reader from assuming a countywide trend describes your specific village.


Column Three: STR Aggregator Data — And Why the Two Don't Match

AirROI's read on Cannon Beach shows roughly $61,005 in typical annual revenue at 43.8 percent occupancy and a $474 ADR, for the window August 2025–July 2026. AirDNA's figure for a similar stretch shows roughly $72.2K at 59 percent occupancy and a $414 ADR. These are two different methodologies pulling from different data sources and sample sizes, and they disagree meaningfully on both revenue and occupancy.


Don't average them. Pick one source, understand what window and sample it's drawing from, and use it consistently for your own planning. Quoting both numbers together as if they converge on one truth misrepresents what either one is actually telling you — treat them as two separate estimates with their own margins of uncertainty, not two data points confirming the same fact.


What Visible Tourism Volume Doesn't Tell You

A packed Haystack Rock parking lot or a heavy volume of geotagged Instagram photos is evidence of day-trip and drive-in visitor volume, not booked overnight stays. Cannon Beach draws a substantial day-trip crowd from Portland and the broader coast corridor that never touches a short-term rental listing at all — they visit, they leave, and they show up in visible foot traffic without appearing in any STR revenue figure.


Don't use Ecola State Park's parking lot fullness or Hemlock Street's sidewalk crowding as evidence your own calendar should be booking at a higher rate. Those visuals describe day-use volume. Your booking calendar describes overnight demand, which is a narrower and different number entirely.


This distinction matters most when a host is trying to explain a soft month to themselves. A visibly busy Saturday downtown followed by a quiet week on your own booking calendar isn't a contradiction — it's two different populations moving through the same town for different reasons. Chasing your pricing strategy around what looks busy on Hemlock Street, rather than what your actual reservation data shows, is a good way to misprice a listing based on the wrong signal.


Keeping the Three Columns Separate in Practice

When you're building a pricing or investment case for a Cannon Beach property, write out the three columns explicitly rather than folding them into one paragraph: city lodging tax revenue (the ~$600,000 fiscal figure), county/state visitor data (Clatsop County and Travel Oregon reporting), and STR aggregator revenue (AirROI or AirDNA, chosen and cited separately, never averaged). Each answers a different question, and each has its own limitations.


Don't import Manzanita's Rabbu monthly figures into a Cannon Beach tourism-data conversation either — that's a different geography with its own separate reporting, covered in its own post. This is not legal advice; it's a data-literacy framework for reading market numbers correctly before you build a pricing or purchase decision on top of them.


This same discipline is worth applying anytime a new data point shows up in a conversation with a lender, a buyer, or a prospective co-host — ask what geography it covers, what window it's drawn from, and whether it's a fiscal total, a regional aggregate, or a platform-level scrape before treating it as directly applicable to your own listing.


A Worked Example: Building Your Own Three-Column Sheet

Say you're preparing for a conversation with a lender or a prospective co-host about your Cannon Beach property's performance. Rather than reaching for whichever number sounds most impressive, build a simple three-row table: row one is the city lodging tax context (the citywide ~$600,000 fiscal figure, clearly labeled as a total across all permitted STRs, not your property specifically), row two is your chosen STR aggregator figure for the broader market (AirROI's roughly $61,005 at 43.8 percent occupancy, or AirDNA's roughly $72.2K at 59 percent occupancy — pick one and note which), and row three is your own property's actual trailing-twelve-month booking data pulled directly from your own platform account.


That third row is the only one that actually describes your specific listing, and it's the one too many hosts skip because it requires exporting their own numbers rather than quoting someone else's. A lender evaluating your property cares far more about your own trailing performance than about a citywide fiscal total or a market-level aggregator estimate — those other two rows are context for the conversation, not a substitute for your own data.


Once you've built that sheet, you have a genuinely defensible answer to 'how is your Cannon Beach property performing' — one grounded in three clearly labeled sources rather than a single borrowed number that may not even describe your own address. That habit, repeated every time you're asked to characterize your market, is what separates a host who understands their own numbers from one who's just repeating whatever figure came up most recently in a Facebook group.


How This Reading Habit Should Change From Year One to Year Three

A first-year Cannon Beach host, still waiting on a full trailing-twelve-month calendar of their own, has a real reason to lean on the market-level columns described above — the AirROI or AirDNA figure, understood as an estimate rather than a guarantee, is the best available stand-in until their own listing has produced enough booking history to be statistically meaningful. That's a legitimate use of aggregator data: filling a gap that a new listing genuinely has, not a permanent substitute for the host's own numbers.


By year three, that same host should be leaning far less on any of the three market-level columns and far more on their own trailing-twelve-month export. A property with three years of its own booking history has a dataset that's more specific, more current, and more directly tied to that exact listing than any citywide fiscal total or aggregator estimate could ever be. A third-year host still quoting the AirROI or AirDNA market figure as their primary evidence, rather than their own actual results, is choosing a noisier, less relevant number over one they already have sitting in their own platform dashboard.


The practical shift is simple to describe even if it's easy to skip: a new host cites the market data because they have to, and should say so plainly when doing it — 'the market shows roughly X, my own listing doesn't have a full year yet.' An established host cites their own trailing data because it's the better evidence, and should lead with it in any pricing, lender, or buyer conversation, treating the citywide and aggregator columns as background context rather than the headline number. Hosts who never make that shift end up making pricing decisions in year four the same way they did in month two — off someone else's number, when their own is sitting right there.


Common Mistakes Hosts Make Reading Cannon Beach Tourism Data

The most common mistake is quoting the citywide $600,000 lodging tax figure in a conversation about a single property's expected performance, as if a fiscal total divided evenly across permitted listing stock would predict any one listing's results. It doesn't work that way — a handful of strong performers can carry that total well above what a typical listing actually achieves, and there's no way to reverse-engineer your own expected occupancy from a citywide sum.


A second mistake is treating a regional Travel Oregon or Clatsop County headline as if it describes Cannon Beach specifically, when the underlying geography actually spans multiple towns and unincorporated areas. A third mistake, already covered but common enough to restate directly: averaging AirROI and AirDNA into one blended figure, which produces a number that doesn't represent either source's actual methodology or finding.


A fourth and more subtle mistake is anchoring pricing decisions to visible tourism volume — a full parking lot, a crowded sidewalk, a busy-looking Instagram feed — rather than to actual reservation data. Visible crowding is real and worth understanding as a signal of the town's overall draw, but it measures a different population than your overnight booking calendar, and conflating the two leads to pricing decisions built on the wrong evidence. The fix for all four mistakes is the same discipline this whole post is built around: name what a number actually measures before you let it inform a decision.


Related Reading

More Cannon Beach's $600K Lodging Tax Line Isn't Your Occupancy host reading on desks, calendars, and listing clarity.


Frequently Asked Questions

Does Cannon Beach's $600,000 lodging tax figure tell me my own occupancy rate?

No. That figure, cited by Finance Director Tim Collier in a July 2025 council recap, is a citywide fiscal total collected across all permitted STRs. It doesn't describe any individual listing's occupancy or revenue — it's a budget number, not a booking calendar.


Should I use Clatsop County or Travel Oregon data to price my Cannon Beach listing?

Be careful — county and state reporting aggregates a much wider geography than the city of Cannon Beach alone, blending in neighboring towns and unincorporated areas. It's useful for regional trend context, but it's the wrong tool for a Cannon Beach-specific pricing decision.


Why do AirROI and AirDNA show different numbers for Cannon Beach?

They use different methodologies, sources, and sample sizes. AirROI shows roughly $61,005 at 43.8 percent occupancy; AirDNA shows roughly $72.2K at 59 percent occupancy for a similar window. Both are estimates, not confirmed facts, and they shouldn't be averaged together into one number.


Does a crowded Haystack Rock parking lot mean my listing should be booked more?

Not necessarily. A full parking lot reflects day-trip and drive-in visitor volume, which is a different, larger population than overnight STR guests. Cannon Beach draws heavy day-use traffic that never books a rental at all — don't use visible crowding as a proxy for your own booking calendar.


Can I use Manzanita's tourism figures for a Cannon Beach listing?

No. Manzanita sits in a different county with its own separate reporting and its own Rabbu monthly figures. Blending the two markets' tourism data produces numbers that don't accurately describe either town.


What's the difference between city lodging tax data and STR aggregator data?

City lodging tax revenue (roughly $600,000 annually per council materials) is a fiscal collection total across the whole permitted STR listing stock. STR aggregator data like AirROI or AirDNA scrapes actual booking-platform activity to estimate occupancy, ADR, and revenue at the market level. They answer different questions and shouldn't be substituted for each other.


Is Arch Cape's tourism data relevant to Cannon Beach village pricing?

No. Arch Cape sits in unincorporated Clatsop County, a separate geography from the city of Cannon Beach, with its own leftover AirROI figure around $89,301. Keep it as its own line, not part of a Cannon Beach village average.


Why shouldn't I average AirROI and AirDNA figures for Cannon Beach?

Because they're separate estimates built on different data and methodology, not two samples converging on the same truth. Averaging them produces a number that doesn't accurately represent either source's actual finding — pick one, understand its window, and use it consistently.


Does Cannon Beach's tourism data tell me anything about STR permit compliance?

No. None of these figures — city lodging tax, county/state reporting, or aggregator revenue — function as a compliance record. They describe spending and booking activity, not whether a specific listing holds a current permit under Chapter 17.84.


What's the best way to use tourism data when planning a Cannon Beach listing's pricing?

Keep the three columns separate and explicit: city lodging tax revenue, county/state visitor reporting, and your chosen STR aggregator figure. Understand what each one actually measures before using it to inform a pricing or investment decision, rather than blending them into one impression.


Work with Crest & Cove Creative

Reading a packed Haystack Rock parking lot as proof your calendar should be full is how a Cannon Beach host mistakes day-trip volume for overnight demand. Name the failure mode the guest can check on the listing.


We help Cannon Beach hosts translate the real data — not the visible crowds — into listing pricing and positioning that actually reflects booking demand. Name the failure mode the guest can check on the listing.


Reach out at crestcove.co or (256) 998-7502.

Comments


bottom of page