3-Year Campground PMS Cost Sheet: Flat vs Per-Booking

You are on the third demo this week. One vendor says “no monthly fee.” Another says “starts at thirty dollars.” A third will “just take it from the guest.” Nobody asks how many pull-throughs you actually book in a year. You hang up with three PDFs and no way to compare them.

A campground PMS must be compared on three-year shape, not the monthly teaser. Flat, per-reservation, hybrid minimums, and marketplace commissions change who wins at your volume. Card processing is a separate bill. Switching cost is a real line. Build the sheet with your reservation count before you sit through another demo.

TL;DR - Pricing models in this category are not one number. They are flat subscription, per-unit / per-reservation, hybrid minimums, and marketplace take-rates. - Industry comparison advice is blunt: run 3-year true cost, including per-booking fees, processing, and onboarding (Firefly’s 2026 roundup). - Competitor comparison pages disagree on each other’s prices. Use them as shape examples. Get your quote in writing. - Card processing is not the PMS fee. Do not let a demo mix them. - Switching cost (export, dual calendars, staff retraining, one messy holiday) belongs on the sheet even if cash out the door is $0. - Related: how to judge a ResNexus alternative and why config portability matters.

What pricing shapes exist for campground software?

Four shapes show up in campground PMS pricing: flat monthly, per-reservation (or per unit), hybrid minimum-plus-per-res, and marketplace or commission on some or all bookings. Most real quotes are a mix.

ShapeHow you payPublic example of the shape
Flat / subscriptionMonthly (often scales with units or season)ResNexus markets a flat rate by units/season, starting at $30/month for a single property, and says it does not charge a total-booking-value fee on direct online or phone reservations (ResNexus comparison copy). Their own example table for a 100 short-term RV unit park uses $220/month Professional+ (Campspot vs ResNexus table).
Per-unit / per-resA fee each time a site is bookedFirefly publishes $3.50 per unit on a new booking and $3.50/month while a long-term reservation is active; the park can pass the fee to the guest (Firefly vs Campspot).
HybridMonthly floor or per-res, not both stacked foreverRoverPass small parks: $99/month minimum, $3.50 per reservation credited toward it. Past about 30 reservations a month the minimum stops applying. Medium: $3.50/rez, no minimum. Large: from $1.50 (RoverPass pricing).
Marketplace / commissionPercent of stay, sometimes plus a booking feeCampspot’s pricing FAQ confirms a reservation fee exists and many parks add a surcharge to offset it (Campspot pricing). Competitor pages then invent different percents for the same vendor. Treat those percents as unverified until Campspot writes them to you.

None of these is automatically “more honest.” Flat is predictable and can look expensive when you are quiet. Per-booking looks cheap in February and loud in July. Marketplace can fill sites you would not have sold and still be the most expensive channel you have (OTA / take-rate framing).

Pass-through is not free. If the guest pays the $3.50, your software invoice shrinks and your checkout looks worse next to a park that absorbed it. That is a pricing decision, not a rounding error.

Why does the monthly teaser lie?

The monthly teaser lies because it hides volume, long-term stays, marketplace mix, and the work of leaving. A $0/month logo with $3.50 on every pull-through is not free. A $30/month floor that becomes $220 on a 100-site park is not $30.

Three specific traps:

  1. Volume mismatch. Per-reservation math is linear in bookings. If you double transient reservations, you double that line. Flat does not. Hybrid flips at a published threshold (RoverPass names ~30 rez/month for the $99 floor).
  2. Inventory mismatch. Firefly’s fee is per unit, not per confirmation. A two-site family reunion is two fees. Long-term / monthly guests become a monthly maintenance fee on their model, not a one-time $3.50.
  3. Channel mismatch. Direct web, office/phone, and marketplace are often priced differently. If 20% of nights come through a marketplace at a double-digit take-rate, that 20% can cost more than the other 80%.

Vendor comparison pages are marketing. ResNexus’s table and Firefly’s Campspot writeup do not even agree on how Campspot charges. That is your signal: do not paste a competitor’s attack page into your spreadsheet. Paste the PDF they email you after they have seen your site count and booking mix.

Firefly’s own 2026 buyer’s guide, to its credit, tells you to calculate 3-year cost and to demo with your map and rates (comparison post). Do that. Bring the ugly rules: holiday minimums, 30/50-amp splits, pet fees, seasonal months.

How do you run a 3-year sheet at two volumes?

You run a 3-year sheet by locking two honest volumes, applying each vendor’s written shape, and refusing to mix processing into the software column. The numbers below are illustrative, using public shape examples, not a quote for your park.

Inputs (label these as yours when you rebuild):

Park S (quiet independent)Park B (busier independent)
Sites4080
Transient reservations / year6001,800
Long-term / monthly sites in inventory820
Years33

Assume one site per transient reservation unless you know otherwise.

Software-only, 3-year, park absorbs the fee (illustrative):

Shape (public example)Park SPark BWhat the math is
Flat at $220/mo (ResNexus 100-unit example rate)$7,920$7,920$220 × 36. Real flat quotes scale with units/season; your number will move.
Flat at the marketed $30/mo floor$1,080$1,080Only useful as a floor check. Do not budget this unless the contract says it.
$3.50 / transient rez (Firefly-style, 1 unit each)$6,300$18,900$3.50 × reservations × 3. Add $3.50 × long-term sites × 36 if those stay occupied.
RoverPass-style hybrid ($99 min or $3.50/rez)$6,300$18,900Park S: 600 × $3.50 = $2,100/yr > $1,188 min, so per-res wins. Park B the same, louder.
Marketplace 10% on 20% of nights, $140 avg stay~$5,040~$15,1200.20 × reservations × $140 × 0.10 × 3. Only if that commission is actually in the contract.

Read the table the way an owner should: at 600 reservations, flat-at-$220 and $3.50-per-res are in the same neighborhood. At 1,800, per-res triples and flat does not. That is the whole lesson.

Add the long-term line before you celebrate a “cheap” per-booking vendor. Eight occupied monthlies × $3.50 × 36 months is another $1,008 on Park S. Twenty occupied monthlies is $2,520. Seasonal parks with a full winter row of annuals feel this.

If you pass the $3.50 to the guest, the park software column can go toward $0 and the guest’s checkout grows. Model both. A $70 Tuesday night that becomes $73.50 is a different conversation than a $180 holiday weekend.

Do not put Lunaria, or anyone else without a public rate card, into this table as a fake price. Ask for the same three-year shape in writing and drop it in.

How is software fee different from card processing?

Software fee is what you pay the PMS or booking vendor to run reservations. Card processing is what the card networks and processor take to move money. They are different invoices, even when one dashboard shows both.

Stripe’s published US domestic online rate is 2.9% + 30¢ per successful charge (Stripe pricing). Firefly’s own FAQ says card fees depend on which processor you connect. That is the right split.

Illustrative processing only (not a park statistic): Park S: 600 charges × $140 average stay. 2.9% × $84,000 = $2,436, plus 600 × $0.30 = $180, ≈ $2,616 / year. Over three years that is about $7,800 — in the same zip code as several software rows above.

If a demo says “we are cheaper than 2.9%,” they are talking merchant rates, not PMS. If a demo bundles processing and software so you cannot see the split, ask them to unbundle it. You cannot compare shapes if one quote is software and the other is software-plus-interchange.

Also ask who eats chargebacks, refunds, and failed cards. Those are not “PMS features.” They are money movement.

What belongs in switching cost?

Switching cost is every dollar and hour you spend leaving the current system and getting the new one trustworthy before peak. It belongs on the 3-year sheet even when the vendor says onboarding is free.

Put these on the line:

LineWhat to estimate
Export / importSites, future reservations, guest history, gift cards, deposits
Map rebuildPull-throughs, 30/50-amp, sewer, pets, “no fifth-wheels past the dump turn”
Dual-runTwo calendars for 2–4 weeks so you do not double-book
Staff timeOwner + seasonal desk learning the new grid
Lost bookingsThe Friday the widget was wrong
Contract leftoversEarly termination, unused annual, SMS credits
Channel cutoverGoogle Business link, OTAs, “Book now” buttons

A free onboarding call does not erase a weekend of owner labor. If you value that labor at even $50/hour, a 40-hour cutover is $2,000 — real money on a 40-site park.

Config portability changes this line. If the only copy of the park lives in vendor screens, you are re-typing the property. If sites, rates, and policies can move as readable files, the switch is smaller (why config belongs in markdown). That is a Lunaria Booking bias and also just good operations.

What must you get from vendors in writing?

You must get the shape, the volume assumptions, the pass-through rules, the processing split, and the exit terms in writing — on your site count, not on a generic one-pager.

Ask, and keep the email:

  1. Fee per what? Reservation, site-night, unit, or confirmation? What is a two-site booking?
  2. Long-term / seasonal / annual — monthly fee, or only the first booking?
  3. Phone and walk-in vs online vs marketplace. Three numbers, not one.
  4. Who may pay the booking fee, and can you charge more than you remitted?
  5. Processing: processor name, published rate, who is merchant of record, refund fees.
  6. Add-ons you will actually use: SMS, site map, POS, channel manager, extra users.
  7. Onboarding cash and calendar: data migration, training hours, go-live date relative to your season.
  8. Exit: export format, how long you can read old reservations, termination notice.
  9. Price change clause. Per-res vendors can raise $3.50 to $4.50 in year two. Flat vendors can jump tiers when you add a loop.

If they will not put it in a quote that names your reservation count, you do not have a number. You have a vibe.

What should you do this week?

This week, pull last year’s reservation count, split transient vs long-term, and drop three written quotes into the same sheet.

  1. Export 12 months of reservations. Count confirmations and units. Split monthly/seasonal.
  2. Estimate marketplace / OTA share of nights (even a rough 10/20/30 is better than zero).
  3. Copy the table above. Replace example rates with your PDFs.
  4. Add processing as its own column using your processor’s published rate.
  5. Add a switching line you would actually survive (hours × a wage you respect).
  6. Demo each finalist with your map: a 40-foot pull-through, two dogs, holiday weekend, one long-term site.
  7. Do not sign on the $0/month slide. Sign on the 36-month total plus exit.

Lunaria Booking is built for independent parks in the 20–200 site band, with a guest booking site driven from property truth you can actually read. We will not drop a fake public price into this sheet. Ask for the same three-year shape we just told you to demand from everyone else.

FAQ

Is a $0/month PMS actually free?

Only if you book nothing, or if every fee is paid by guests and you are fine with that checkout. Usage-based vendors still bill per reservation or per unit. Model both absorbed and passed-through.

Should I always pick flat so costs are predictable?

Not always. Flat wins when volume is high and the quote does not balloon with site count. Per-res can win on a quiet 40-site park. Run both volumes: last year, and a year that is 50% busier.

Do I include Stripe or other card fees in the PMS total?

Keep them visible, but in a separate column. Otherwise a vendor with cheap software and expensive merchant rates looks identical to the reverse. Use published processor rates (Stripe’s 2.9% + 30¢ online is a reference point, not your negotiated rate).

Why do Campspot numbers look different on every blog?

Because those blogs are often competitors. Campspot’s own pricing page talks about a reservation fee and guest surcharges without a single public percent in the FAQ extract we used. Get Campspot’s quote. Ignore the attack pages for the dollar cells.

How do long-term RV guests change the math?

They can dominate a per-unit monthly fee. Eight occupied annuals at $3.50/month is a quiet extra $336/year. Twenty is $840. Ask every vendor how monthlies are billed before you compare “per booking” headlines.

What if I pass every software fee to the guest?

Then your invoice shrinks and your rate integrity is the new problem. A guest comparing two parks will see different totals. Decide on purpose. Do not discover it at checkout on Friday.

Where does Lunaria Booking fit on this sheet?

As another row you fill with a written 3-year shape, plus a fit test: does the guest site book the right site, and do office and phone read the same park? We care about independents and readable config. We do not win by hiding a teaser month.

---

The logo price is a marketing object. The 3-year sheet is an operations object. Count last year’s pull-throughs, separate processing, price the switch, and only then decide who gets the next three seasons of your calendar.

← All posts
Home Products Demo Blog Register The Problem Try the demos AI Assistant Plans About Get started