Kennisbank

Hotelmarketing

Hoe meet ik winst per hotelboeking in GA4?

Leer hoe we kameromzet, arrangementen, annuleringskosten en variabele kosten combineren tot een bruikbare winstmeting in GA4.

29 oktober 2026 · 5 min lezen

Dashboard waarin kameromzet, arrangementen, annuleringskosten en variabele kosten per hotelboeking samenkomen

GA4 meet standaard geen winst per hotelboeking. Het platform registreert omzet wanneer de boekingsmodule correcte e-commercegegevens verstuurt, maar kent niet vanzelf de kosten van ontbijt, schoonmaak of betaalverwerking. Ook wijzigingen en annuleringen vragen om aanvullende gegevens. Daarom maken we eerst per reservering een berekening van netto-opbrengst minus variabele kosten. Vervolgens sturen we de uitkomst naar GA4 of combineren we de gegevens buiten GA4 met de verkeersbron en campagne.

Bepaal wat winst per boeking betekent

Voor marketingrapportages gebruiken we meestal de contributiemarge per reservering: de opbrengst van de boeking minus kosten die door die boeking ontstaan. Dit is niet hetzelfde als de bedrijfswinst. Vaste lasten zoals huur, salarissen van vast personeel, verzekeringen en algemene softwarekosten zijn lastig betrouwbaar aan één reservering toe te wijzen. Door deze buiten de berekening te houden, kunnen we kanalen en campagnes onderling vergelijken zonder een kunstmatige kostentoerekening.

Een werkbare formule is: kameromzet plus opbrengsten uit arrangementen en andere bijgeboekte producten plus geïnde annuleringskosten, minus kortingen, belastingen die niet als omzet gelden, terugbetalingen en variabele kosten. Leg daarbij vast of bedragen inclusief of exclusief btw worden gebruikt. Anders ontstaan verschillen tussen GA4, de boekingsmodule en de financiële administratie.

Leg kameromzet en arrangementen apart vast

Bij een voltooide boeking sturen we een GA4 purchase-event met een unieke transaction_id, de betaalde boekingswaarde, valuta en afzonderlijke items. De transaction_id verbindt GA4 later met het reserveringssysteem of datawarehouse. Gebruik nooit namen, e-mailadressen of andere persoonsgegevens als transactie-ID.

  • Kamerverblijf: kamerprijs voor de geboekte nachten, na toegepaste korting.
  • Arrangement: bijvoorbeeld een diner-, wellness- of vergaderpakket als apart item.
  • Extra's: ontbijt, parkeren, late check-out of andere bijgeboekte diensten.
  • Belastingen en toeslagen: afzonderlijk vastleggen wanneer deze niet tot de eigen omzet behoren.
  • Coupon of tariefcode: optioneel meesturen om prijsacties en arrangementstarieven te analyseren.

Splits arrangementen alleen op als de boekingsmodule of het reserveringssysteem daarvoor betrouwbare bedragen levert. Een pakket willekeurig verdelen over kamer, ontbijt en diner maakt de rapportage minder controleerbaar. Bewaar naast de items altijd het reserveringsnummer in een toegestaan, niet-persoonsgebonden veld of in de eigen database, zodat correcties op hetzelfde boekingsrecord terechtkomen.

Verwerk annuleringen en annuleringskosten

Een boeking kan na het purchase-event wijzigen of volledig vervallen. Zonder correctie blijft de oorspronkelijke omzet in GA4 staan en lijkt een kanaal winstgevender dan het werkelijk is. Bij een volledige terugbetaling sturen we een refund-event met dezelfde transaction_id. Bij een gedeeltelijke terugbetaling geven we het terugbetaalde bedrag en, waar mogelijk, de betreffende items door.

Een annuleringsbedrag dat het hotel daadwerkelijk behoudt, is een opbrengst maar geen normale kameromzet. In de bronadministratie leggen we daarom drie bedragen apart vast: oorspronkelijke boekingswaarde, terugbetaald bedrag en geïnde annuleringskosten. Als een reservering van 300 euro volledig vervalt en 75 euro annuleringskosten oplevert, moet de uiteindelijke netto-opbrengst 75 euro zijn, niet 300 euro en ook niet nul.

GA4 ondersteunt refunds, maar complexe correcties zijn vaak duidelijker in een externe rapportage. Daar koppelen we de actuele reserveringsstatus aan de oorspronkelijke acquisitiegegevens. Kies bovendien één meetmoment: boekdatum, annuleringsdatum of verblijfsdatum. Voor campagneanalyse gebruiken we doorgaans de boeking en haar oorspronkelijke bron, terwijl financiële aansluiting vaak op verblijf- of factuurdatum plaatsvindt.

Gegevensstroom van boekingsmodule en reserveringssysteem via GA4 naar een winstrapport

Trek variabele kosten van de netto-opbrengst af

Variabele kosten komen meestal niet uit de website. We halen ze uit het reserveringssysteem, kassasysteem, betaalplatform of een beheerde kostentabel. Denk aan schoonmaak per verblijf, linnengoed per kamer of persoon, ingrediënten voor ontbijt en diner, transactiekosten en kosten van inbegrepen extra's. Commissie van een distributiekanaal kan ook relevant zijn, maar een directe webboeking heeft doorgaans geen externe boekingscommissie. Advertentiekosten houden we apart: die beoordelen we op campagne- of kanaalniveau en trekken we niet zonder betrouwbare toerekening van één reservering af.

Kosten veranderen per kamertype, bezetting, verblijfsduur en arrangement. Gebruik daarom waar mogelijk kostregels per boeking. Als alleen normbedragen beschikbaar zijn, documenteren we de aannames en ingangsdatum. De berekening wordt dan: netto-opbrengst na refunds plus behouden annuleringskosten minus variabele kamer-, arrangement-, betaal- en servicekosten. Het resultaat noemen we contributiemarge per boeking, zodat niemand het verwart met boekhoudkundige nettowinst.

Bouw de rapportage rond één reserveringsnummer

Een volledig winstrapport past zelden alleen in de standaardinterface van GA4. De meest controleerbare opzet is een tabel waarin iedere rij één reservering vertegenwoordigt. We exporteren GA4-gegevens bijvoorbeeld naar BigQuery of gebruiken een andere rapportageomgeving, en koppelen die op transaction_id aan reserverings- en kostengegevens.

  • Dimensies: reserveringsnummer, boekdatum, verblijfsdatum, bron, medium, campagne, kamertype en arrangement.
  • Opbrengsten: kameromzet, extra's, arrangementen en geïnde annuleringskosten.
  • Correcties: korting, refund, gedeeltelijke annulering en belastingen buiten de omzet.
  • Kosten: schoonmaak, linnengoed, voeding, betaalverwerking en andere variabele kostensoorten.
  • Uitkomsten: netto-opbrengst, totale variabele kosten en contributiemarge per reservering.

Als import naar GA4 gewenst is, kunnen niet-persoonsgebonden margevelden als aangepaste eventparameters worden meegestuurd en als aangepaste statistieken worden geregistreerd. Dat maakt analyse in verkenningen mogelijk, maar kent beperkingen rond historische verwerking, correcties en datakwaliteit. Voor actuele reserveringsstatussen blijft een gekoppelde externe rapportage meestal beter uitlegbaar.

Controleer definities en aansluiting

We testen eerst enkele reserveringen handmatig: een normale boeking, een arrangement, een gedeeltelijke refund, een volledige annulering met kosten en een gewijzigde verblijfsduur. Controleer per reservering de transaction_id, valuta, belastingbehandeling, items, terugbetaling en variabele kosten. Vergelijk totalen daarna met het reserveringssysteem en de financiële administratie. Verschillen kunnen ontstaan door tijdzones, boek- versus verblijfsdatum, latere wijzigingen, ontbrekende toestemming voor analytische opslag of blokkering van metingen. GA4 blijft daarmee een marketingbron, niet de financiële administratie. Betrouwbare winstmeting ontstaat pas wanneer elke opbrengst, correctie en kostensoort aantoonbaar bij dezelfde reservering hoort.

Meer lezen over dit onderwerp? Hotelmarketing

Vragen hierover? Even sparren kan altijd, vrijblijvend.

Plan een gesprek