GA4 shows fewer purchase events than the confirmed reservations in your PMS. Three things shape that comparison on a HomeRunner site.
Bookings made outside the website. GA4 only sees bookings that end on your website’s confirmation page. Bookings entered directly in your PMS or arriving from an OTA never load that page, so they never fire a purchase event. Expect your PMS count to be higher by those bookings.
Inquiries and requests. Bookings that arrive as an inquiry or request fire generate_lead instead of purchase, and stay that way even after your PMS confirms them. When you reconcile, count generate_lead alongside purchase. If every reservation should count as a purchase, enable Trigger Purchase on Inquiry in the HomeRunner plugin under Advanced settings > Analytics.
Transaction IDs. By default, the transaction ID on the purchase event is the HomeRunner reservation ID. To join GA4 data against your PMS, set GA4 Transaction ID Source to PMS Reservation ID in the same settings section. This applies to bookings from that point on.
Purchase fires once per booking per browser, so reloading the confirmation page or reopening it from a confirmation email does not add a second event.
Full event details, parameters, and reconciliation notes are in the Conversion tracking event reference page in the HomeRunner docs.