15% off your first purchase with code WELCOME15, up to 25 GB.

See pricing

Travel fares · Ski pass prices

Ski pass price monitoring: dynamic lift-ticket pricing by resort and date

Ski pass price monitoring records what a lift ticket costs for a given resort, ski date and age category on each day you look. Where resorts price dynamically, the same day pass gets more expensive as the ski date approaches or as demand rises, so the purchase date belongs in every observation.

Pay per GB · No subscription · Prices in EUR, excl. VAT

Illustration. The URLs and values are fictional; the connection string is the real grammar.
€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

  • Ski resort revenue and ticketing teams
  • Ski holiday comparison and booking sites
  • Tour operators packaging lift passes
  • Tourism economists

The short answer

  • One observation is resort × ski date × pass length × age category × purchase date. Without the purchase date, a dynamic price cannot be compared.
  • Dynamic pricing is widespread in the Alps: the Swiss cableway association said in 2023 that half of the large Swiss ski areas used it. Others keep fixed or tiered prices, so record the model per resort.
  • Resorts say what moves the price. Zermatt's ticket FAQ names demand, number of orders and the weather forecast, and says early bookers get the best price.
  • Ticket shops are light, calendar-driven pages. The rotating ISP pool covers most of them at the lowest cost.

The problem

What goes wrong without the right IPs

The calendar shows a 'from' price

Shops often show the lowest price of a period on the calendar and the real price only after choosing a date, age and pass length. Collect the selected-product price, not the calendar label.

Age categories and pass lengths multiply

Adult, youth, child and senior prices for one to fourteen days quickly become hundreds of products per resort. Pick the products your readers or packages use; the adult one-day and six-day passes cover most comparisons.

Online and counter prices differ

Some resorts charge more at the ticket office than online; others guarantee the same price everywhere. Store the channel the price applies to, and note the resort's stated policy.

Combined areas and partner passes

One lift pass can cover several linked areas, and regional passes cover many resorts. Map each product to the lifts it covers, or a price comparison will put a small area against a large one.

What to collect

What you can collect

Resort and ski area coverage
Which lifts and linked areas the pass includes.
Ski date
Peak weeks, weekends and holidays price differently.
Purchase date and days ahead
The axis of the advance-purchase curve.
Pass length and age category
Each combination is its own price series.
Price and currency
CHF, EUR or other local currency, as displayed.
Pricing model
Dynamic, tiered by purchase time or fixed, per resort and season.
Channel
Online shop, ticket office or partner, where the shop states it.
Season pass price and deadline
Early-bird season passes have dated price steps.

How it runs

How a collection run works

  1. 01

    List resorts, products and the season grid

    For each resort, record its shop, pricing model and the products you track. Choose ski dates across the season: opening, school holidays, regular weekdays and weekends, late season.

  2. 02

    Query the selected-product price daily

    Ticket shops typically expose a price endpoint per date, product and age. Query it for every ski date on each collection day; the daily snapshots form the advance-purchase curve.

    Daily snapshot of a resort's price calendar
    from datetime import date, timedeltaimport httpxPROXY = "http://USERNAME_pool-arcfast_country-de:PASSWORD@proxy.arcproxies.io:8000"   # rotating pool, country of the resortPRODUCTS = [("adult", 1), ("adult", 6), ("child", 6)]def snapshot(shop, season_start: date, season_end: date) -> list[dict]:    today = date.today()    rows = []    with httpx.Client(proxy=PROXY, timeout=20) as client:        d = max(season_start, today)        while d <= season_end:            for age, days in PRODUCTS:                price = shop.price(client, ski_date=d, age=age, days=days)                rows.append({"ski_date": d, "bought_on": today,                             "days_ahead": (d - today).days,                             "age": age, "days": days, "price": price})            d += timedelta(days=1)    return rows
  3. 03

    Add covariates

    Store snow and weather forecasts, school holidays in the main source markets, and the day of week. Resorts that price on forecasts move with them, and a curve without covariates is hard to read.

  4. 04

    Build curves and indices

    Per resort and product, plot price against days ahead for each ski date, and summarise the gap between the earliest and the day-of price. Storing price time series covers the schema.

Setup

Recommended setup

Lift-ticket shops are public and light, and most show the same price to every visitor. Start cheap.

PlanRoleSessionTargetingPrice
ARC Basic
Rotating ISP
Default for ticket shop calendars
Many small JSON or calendar requests per day. The rotating ISP pool has the lowest price per GB.
RotatingCountry of the resort
€0.75 / GB
€0.59 at 1 TB (−21%)
ARC Fast
Rotating residential
Shops that vary by visitor market or hold a basket
For shops that switch currency or language by visitor country, or that only show a price after a session-bound selection.
Sticky, about 10 minutes per product selectionCountry of the guest market
€2.00 / GB
€1.12 at 1 TB (−44%)

Prices 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.

sticky · Germany · 10 min
http://USERNAME_pool-arcfast_country-de_session-k3f9a1x2_sesstime-10:PASSWORD@proxy.arcproxies.io:8000

Swap _country-de for any market you quote. The full grammar is on the residential proxies page.

Illustration

What a 50-resort lift-ticket index costs

An illustration with round numbers — your pages, payloads and retry rate will differ. The arithmetic is the real price ladder.

Assumptions

Resorts
50
Ski dates per season
90
Products per date
2
Cadence
daily (30 a month)
Weight per price request
50 KB
Bandwidth per month
≈ 14 GB

On ARC Basic

€10.50per month, excl. VAT

14 GB bought in one purchase at €0.75 / GB (list price).

The same 14 GB on ARC Fast: €28.00 at €2.00 / GB. Route only the jobs that need it through the pricier pool.

Price endpoints return small JSON payloads; a full page render per date would multiply the weight several times.

Bandwidth never expires, so a bigger single purchase is only ever cheaper per GB. See the ladder.

In depth

Ski pass prices, in depth

How dynamic ski pass pricing works

With dynamic pricing, a day pass has no single price. It depends on the ski date and on when it is bought. Zermatt Bergbahnen's ticket FAQ says that, depending on demand, number of orders and weather forecast, the price may increase, and that those who book early are guaranteed the best price; at the time of checking it applied dynamic pricing to ski passes only.

The model has spread. Keystone-SDA reported in November 2023, citing the deputy director of the Swiss cableway association, that half of the large Swiss ski areas had adopted dynamic prices. It is the same family of techniques as dynamic pricing in hotels and airlines, applied to a perishable day of lift capacity.

Three pricing models to record per resort

ModelHow the price movesWhat to collect
DynamicBy ski date, demand and purchase time; can change dailyDaily snapshots for every ski date
Tiered by purchase timeFixed steps, e.g. early, regular, lateStep dates and step prices
Fixed seasonalOne price per season periodThe tariff once per season, plus changes

Do not assume a model from a neighbouring resort. Record it per resort and season from the shop's own terms.

What skiers do about it

A representative study by the Institute for Retailing, Sales and Marketing at Johannes Kepler University Linz, surveyed at the end of the 2024/25 season, found that half of the Austrian skiers asked plan their ski days further in advance to get lower prices, and half see dynamic pricing as a useful way to manage capacity. Respondents also said spontaneous visitors and families pay more.

For comparison sites and tour operators, this is the case for advance-purchase curves: readers want to know how much buying early saves at each resort, and packages need a price that holds until the guest books. The same thinking applies to tours and activities sold by time slot.

Works with anything that takes a proxy URL

  • Python requests / httpx
  • Node.js
  • Scrapy
  • changedetection.io
  • n8n

FAQ

Questions

Something not covered? Write to contact@arcproxies.io.

Is it cheaper to buy a ski pass in advance?

At resorts with dynamic or purchase-time pricing, usually yes; several resorts state that early online buyers get the best price. At resorts with fixed seasonal prices it makes no difference. Tracking the same pass over time shows the size of the saving per resort.

How do I build an advance-purchase curve for lift tickets?

Query the price of the same product, for the same ski date, every day from when it goes on sale until the day itself. Plot price against days ahead. Repeat for several ski dates, because peak and off-peak dates behave differently.

Why do ski pass prices change after a snow forecast?

Some resorts include the weather forecast in their pricing. Zermatt's FAQ lists demand, number of orders and the forecast as factors that can raise the price. Store forecasts with your price snapshots to see the effect.

Which proxies do I need for ski pass prices?

Mostly the rotating ISP pool, because ticket shops are public, light and usually show the same price to everyone. Use residential exits for shops that change currency or language by visitor country. Billing is per GB, so a seasonal job costs nothing in summer.

Can I compare lift ticket prices across countries?

Yes, if you compare like for like: same pass length and age category, similar ski area size, and prices converted at a stated reference rate on the observation date. Note the pricing model, since a dynamic price and a fixed price are not observed the same way.

Sources & review

Last reviewed by the ARC Proxies team. Prices are read from the live catalog at build time.

  1. [1]Zermatt Bergbahnen AG: FAQ: tickets and dynamic pricing
  2. [2]The Swiss Times (Keystone-SDA): Every second large ski resort already relies on dynamic prices (11 November 2023)
  3. [3]Johannes Kepler University Linz, Institute for Retailing, Sales and Marketing: What do skiers say about dynamic pricing? (4 December 2025)

Travel fares

More on travel fares

OverviewProxies for travel fare aggregationAirline, hotel and rail fares change with the point of sale. Query each market from an IP inside it so the fare you store is the fare a traveller is quoted.Deep diveAirline faresCollect airline fares per point of sale: the same flight priced from each market, taxes itemised, one sticky session per search, billed per GB.Deep diveLow-cost carrier faresMonitor low-cost carrier fares where they are sold: on the airline's own site, priced per leg and per seat bucket, with mandatory fees split out. Per GB.Deep diveAirline ancillary pricesTrack airline ancillary prices (checked bags, seats, priority and fare bundles) per route, date and market, so a trip's true cost can be compared.Deep diveRail and bus faresCollect European rail and intercity coach fares per operator, departure and fare family, including yield-managed long-distance tickets. Billed per GB.Deep diveFerry faresMonitor ferry fares by route, sailing, season and vehicle (foot passengers, cars, cabins) from each operator's own public booking site. Per GB.Deep diveFare alertsBuild fare alerts and deal newsletters on verified prices: cheap watch-list polling, live confirmation from the right market before sending, per-GB costs.Deep diveCorporate travel benchmarkingBenchmark booked and negotiated corporate fares against public fares on the same flights, lead times and markets, for TMCs, travel managers and audits.Deep diveTravel metasearchHow to build a travel metasearch engine: partner feeds, cached prices, live re-pricing and look-to-book. Where proxies fit, and what it costs per GB.Deep diveHotel rate shoppingCollect competitor hotel rates per stay date, length of stay and market from local residential IPs. Sticky sessions per shop, billed per GB.GuideWhy flight prices differ by countryThe same flight costs different amounts in different countries because fares are filed and sold per point of sale, and taxes follow the departure airport.GuideDo airlines raise prices when you search?What regulators and researchers found about cookie and IP tracking in airline pricing, and what actually makes a fare change between two searches.GuideHow often flight prices changeFlight prices can change many times a day: filed fares update constantly and seat availability moves with every booking. What that means for collection.

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.