Travel fares · Trade fair hotel prices
Trade fair hotel prices: measure the Messe surcharge city by city
Trade fair hotel price monitoring records what rooms near a fairground cost before, during and after a fair, and compares it with the same hotels on an ordinary week. Shop from the countries your exhibitors book from, because most of them are not local.
Pay per GB · No subscription · Prices in EUR, excl. VAT
- €2.00
- per GB on ARC Fast, excl. VAT
- −44%
- at 1 TB (€1.12 / GB)
- 185+
- countries, city targeting
- Never
- expires — no subscription
Written for
- Exhibitor travel managers
- Trade fair and congress organisers
- Hotel revenue teams in Messe cities
- Business and data journalists
The short answer
- A fair surcharge only means something against a baseline: the same hotels, the same weekday pattern, on weeks without a major event.
- Bauma 2025 gave Munich its highest daily average room rate on record, on 8 April, at 97.2% occupancy (CoStar). Single fair days move a city's whole month.
- Two thirds of exhibitors at German trade fairs in 2025 came from abroad (AUMA), so the point of sale that matters is the exhibitor's country, not Germany.
- Fair dates bring minimum stays and prepaid, non-refundable rates. Record the conditions, or a sold-out one-night search looks like no supply.
The problem
What goes wrong without the right IPs
A spike without a baseline is an anecdote
"Rates tripled during the fair" needs a reference week. Compare against the same hotels and weekdays four to six weeks either side, with other events flagged, or the number is not defensible to a budget holder or an editor.
Fair dates hide behind restrictions
Many hotels close one-night stays and sell only the full fair period. Searching a single night returns nothing, which a naive collector records as sold out. Shop the fair's actual pattern (arrive the day before, leave the last day) as well as single nights.
Rates are set months ahead, then move again
Hotels load fair pricing long before the event and adjust it as pickup arrives. A single snapshot a week out misses the story; a weekly series from the announcement shows when the price was set and when it eased.
The overflow goes to the next town
When the city sells out, exhibitors book in neighbouring towns and commute. A study limited to the city boundary understates the market. Define rings by travel time to the fairground, not by postcode.
Local levies change the total
Berlin taxes overnight stays at 7.5% of the net room price and Frankfurt charges a per-person, per-night tourism contribution. Store them separately, or a city looks dearer than it is in the headline rate.
What to collect
What you can collect
- Event and venue
- Fair name, edition, opening and closing dates, venue. The anchor every other row hangs from.
- Hotel and distance ring
- Your own hotel ID plus travel time to the fairground, so overflow towns sit in the right ring.
- Stay pattern
- Single night, full fair period, or arrival the day before. Restrictions only show up when you shop the pattern guests actually book.
- Point of sale
- The exhibitor market the request came from. A German and an Italian visitor may see different rates and different tax display.
- Rate and conditions
- Total stay price, nightly average, refundable or prepaid, deposit, minimum stay. The fair premium is often in the conditions, not only the number.
- Local levy
- City tax or tourism contribution as shown, kept apart from the room rate.
- Baseline reference
- The matching observation from the reference weeks: same hotel, weekday, length of stay and market.
- Observation date
- Days before the fair opens. Plotting price against lead time is the chart every organiser asks for.
How it runs
How a collection run works
- 01
Build the fair calendar
List the fairs and congresses you care about with their dates and venues. Add every other large event in the same city, so you can exclude contaminated weeks from the baseline.
- 02
Fix the hotel panel per city
Pick the hotels within your travel-time rings and keep the panel stable across the season. Adding hotels halfway through changes the average for reasons that have nothing to do with the fair.
- 03
Shop fair and reference dates from exhibitor markets
For each fair, shop the fair dates and the reference weeks with the same pattern, from the countries your exhibitors come from. Hold one session per hotel and date so search and room list come from one exit.
Fair dates and reference dates, same hotel, same market21 linesimport secrets, datetime as dt, requestsBASE = "USERNAME_pool-arcfast_country-de".split("_country-")[0] # USERNAME_pool-arcfastdef proxy(country: str) -> dict: user = f"{BASE}_country-{country}_session-{secrets.token_hex(4)}_sesstime-10" url = f"http://{user}:PASSWORD@proxy.arcproxies.io:8000" return {"http": url, "https": url}def stay_dates(fair_open: dt.date, nights: int, offsets=(-42, -35, 0, 35, 42)): """Arrive the day before the fair; same weekday in the reference weeks.""" arrive = fair_open - dt.timedelta(days=1) for off in offsets: yield off, arrive + dt.timedelta(days=off), nightsdef shop(hotel_url: str, country: str, fair_open: dt.date, nights: int = 3): for offset, checkin, n in stay_dates(fair_open, nights): with requests.Session() as s: s.proxies = proxy(country) # e.g. "it", "fr", "us" r = s.get(hotel_url, params={"checkin": checkin.isoformat(), "nights": n, "adults": 1}, timeout=30) yield {"offset_days": offset, "checkin": checkin, "status": r.status_code, "html": r.text} - 04
Classify, then normalise
Every observation ends as available with a price, closed by restriction, sold out, or not retrieved. Normalise available rates to a total per stay in one currency, with the local levy and tax as separate columns.
- 05
Report the premium as a ratio
Express the fair rate as a multiple of the matched baseline per hotel, then summarise by ring and star category. Ratios survive currency moves and year-on-year inflation better than absolute differences.
Setup
Recommended setup
Fair monitoring is many small, stateful searches spread over months. Residential exits in the exhibitors' countries do the priced work; city targeting is only needed when you want the local guest's view.
| Plan | Role | Session | Targeting | Price |
|---|---|---|---|---|
ARC Fast Rotating residential | Default for fair and baseline shops Residential IPs in Italy, France, the US or wherever your exhibitors book from, so you store the rate they were quoted. | Sticky, 10 minutes per hotel and date | Country of the exhibitor market | €2.00 / GB €1.12 at 1 TB (−44%) |
ARC Basic Rotating ISP | Hotel panel and event calendar Hotel addresses, star ratings and fair calendars change rarely. Refresh them on the cheapest pool and keep them out of the priced run. | Rotating | Country | €0.75 / GB €0.59 at 1 TB (−21%) |
ARC Fast Rotating residential | The local guest's view When a story or a hotel's own pricing is about what a German visitor sees, shop from Germany with the fair city as the exit. | Sticky per shop | Country + city (Frankfurt, Cologne, Munich, Berlin, Hamburg) | €2.00 / GB €1.12 at 1 TB (−44%) |
http://USERNAME _pool-arcfast _country-de _city-munich _session-k3f9a1x2 _sesstime-10:PASSWORD@ proxy.arcproxies.io:8000Prices are list prices in EUR, excl. VAT. Volume discounts apply automatically at checkout — full ladder on the pricing page.
Connect
One connection string per market
The country, city and sticky session are tokens in the username. Change the token, change the market; keep the session handle, keep the IP.
http://USERNAME_pool-arcfast_country-de_session-k3f9a1x2_sesstime-10:PASSWORD@proxy.arcproxies.io:8000Swap _country-de for any market you quote. The full grammar is on the residential proxies page.
Illustration
What four fairs in their booking window costs
An illustration with round numbers — your pages, payloads and retry rate will differ. The arithmetic is the real price ladder.
Assumptions
- Fairs being tracked at once
- 4
- Hotels per fair
- 60
- Stay dates per hotel (fair + reference)
- 10
- Cadence
- daily, 30 days
- Exhibitor markets
- 1 per fair
- Weight per shop
- 300 KB
- Bandwidth per month
- ≈ 22 GB
On ARC Fast
€44.00per month, excl. VAT
22 GB bought in one purchase at €2.00 / GB (list price).
The same 22 GB on ARC Basic: €16.50 at €0.75 / GB. Move down as soon as the cheaper pool holds up.
Weekly shops for fairs more than three months out cut this by roughly a factor of seven. Each additional exhibitor market adds the same amount again, so pick the two or three markets that send the most exhibitors.
Bandwidth never expires, so a bigger single purchase is only ever cheaper per GB. See the ladder.
In depth
Trade fair hotel prices, in depth
How big the trade fair effect on hotel prices is
Large fairs fill a city for a few nights, and hotels price that compression in advance. CoStar's data for Munich during bauma (7 to 13 April 2025) shows the scale: the city's April average daily rate rose 59.3% year on year, occupancy for the month reached 71.0%, and Tuesday 8 April set the highest daily average rate on record in Munich, at 97.2% occupancy.
Germany is where this matters most often. AUMA counted 304 trade fairs in 2025 with about 192,000 exhibitors and more than 12.7 million visitors; 66% of exhibitors and just over a third of visitors came from abroad. That foreign share is why a fair study shopped only from German IPs misses the price most exhibitors actually saw.
Who measures trade fair hotel prices, and what they need
| Reader | Question | What to collect |
|---|---|---|
| Exhibitor travel manager | When should we book, and where? | Price against lead time, by ring, from your own market |
| Fair or congress organiser | Is accommodation cost putting off exhibitors? | Fair premium per edition, compared with competing fairs |
| Hotel revenue team | Are we priced in line with the city for fair nights? | Comp-set rates and restrictions on fair dates; see hotel rate shopping |
| Journalist | Is the surcharge as large as people say? | A matched baseline, documented method, dated observations |
Corporate travel teams can feed the same series into policy caps; the method for comparing booked rates against public ones is on the corporate travel benchmarking page.
Building a baseline that holds up
- Same hotels: a fixed panel, chosen before the fair, never topped up with whatever still has rooms.
- Same weekday pattern: a Monday-to-Thursday fair is compared with Monday-to-Thursday stays.
- Same lead time: observe the reference dates as far ahead as the fair dates, or you compare an early price with a late one.
- Clean weeks: drop reference weeks that overlap another fair, a congress, a football final or a public holiday.
- Same market: the exit country stays constant per series; see why in comparing prices across markets.
Store each daily observation rather than the summary. A time-series layout that survives method changes is described in storing price time series.
Messe city levies to keep out of the room rate
Local accommodation levies differ by city and change over time, so treat them as their own column with the city's current rule beside it. Two examples from the Messe cities:
| City | Levy | Basis | Since |
|---|---|---|---|
| Berlin | Übernachtungsteuer | 7.5% of the net accommodation price, without extras such as breakfast; business stays included | Business stays taxable since 1 April 2024 |
| Frankfurt am Main | Tourismusbeitrag | Flat amount per person per night for non-local paying guests, with listed exemptions | 1 October 2024 |
For Cologne, Munich and Hamburg, check the city's own page before you add a levy column; do not copy another city's rule.
Collecting fair-week rates responsibly
- Public, logged-out rates only. Corporate and member rates behind a sign-in are out of scope.
- Fair dates are when hotel and booking sites are busiest. Shop at night, keep concurrency low and back off on 429 responses.
- Never place holds or abandon bookings to test availability; observe what search returns.
The general rules for travel sites are in collecting travel data responsibly.
Works with anything that takes a proxy URL
- Python requests / httpx
Playwright
- Scrapy
Crawlee
- Docker
FAQ
Questions
Something not covered? Write to contact@arcproxies.io.
Why are hotel prices so high during trade fairs?
Because a large fair fills most rooms in the city for a few nights, and hotels price that demand in advance. During bauma 2025 Munich recorded its highest daily average room rate on record, at 97.2% occupancy, according to CoStar.
Which country should a trade fair hotel study shop from?
From the countries the travellers come from. Two thirds of exhibitors at German fairs in 2025 came from abroad, so a study for an Italian exhibitor group should shop from Italy, and a local-guest view from Germany is a separate series.
How far ahead of a fair do hotel prices move?
Hotels often load fair pricing months before the event and adjust it as bookings arrive. Shop weekly from the moment the dates are announced and daily in the final four to six weeks to see both the initial level and the late moves.
Can I target the exact fair city with a proxy?
Yes for Frankfurt, Cologne, Munich, Berlin and Hamburg on the rotating residential pools, with country and city tokens in the username. City targeting matters only when you want the local guest's view; most exhibitor studies need the exhibitor's country instead.
Should city tax be part of the fair premium?
Keep it separate. Berlin's levy is a percentage of the net room price and Frankfurt's is a flat per-person amount, so including them blurs the comparison between cities. Report the premium on the room rate and show levies beside it.
Sources & review
Last reviewed by the ARC Proxies team. Prices are read from the live catalog at build time.
- [1]CoStar, via Hospitality Net: Munich hotel room rates spiked during Bauma (14 May 2025)
- [2]AUMA (Association of the German Trade Fair Industry): Final statement for 2025 entirely positive: Strong growth among international audiences
- [3]Land Berlin (service.berlin.de): Übernachtungsteuer
- [4]IHK Frankfurt am Main: Tourismusbeitrag der Stadt Frankfurt am Main
Travel fares
More on travel fares
Get started
Buy a gigabyte and try it on your own targets.
No subscription, no sales call. Code WELCOME15 takes 15% off your first purchase, and whatever you do not use is still there next quarter.