Season Pricing & Trainer Fees¶
Rental fees and trainer fees are configured per season. The price calculation engine combines these with option fees and convenience fees to produce the final reservation price.
Rental Fees (Berleti dij)¶
Navigate: Szezon konfiguracio → Berleti dij — /Club/SportsFieldRent
| Column | Description |
|---|---|
| Season_ID | FK to Season |
| SportsFieldType_ID | FK to SportsFieldType_Enum |
| SportsField_ID | Nullable — for field-specific price overrides |
| RentPricingPeriod_ID | FK to RentPricingPeriod |
| BaseRentalFee | Standard casual price |
| DiscountedRentalFee | Group-discounted casual price |
| BaseRentalFeeClubMember | Standard member price |
| DiscountedRentalFeeClubMember | Group-discounted member price |
4-Tier Pricing Model¶
HellaBooking uses a 4-tier pricing structure:
- Casual base — standard price for non-members
- Casual discounted — group discount applied for non-members
- Member base — standard price for club members
- Member discounted — group discount applied for club members
Demo Pricing (Season 1, currency: Ft)¶
| Field Type | Period | Base Casual | Discounted Casual | Base Member | Discounted Member |
|---|---|---|---|---|---|
| Tennis court | Low | 4,000 | 3,500 | 3,500 | 3,000 |
| Tennis court | High | 6,000 | 5,500 | 5,500 | 5,000 |
| Padel | Anytime | 8,000 | — | — | — |
Field-specific overrides
When SportsField_ID is set, the fee applies to that specific field only, overriding the type-level price. Leave it NULL to apply the fee to all fields of the given type.
Trainer Fees (Edzoi dij)¶
Navigate: Szezon konfiguracio → Edzoi dij — /Club/TrainerPayGradeFee
| Column | Description |
|---|---|
| Season_ID | FK to Season |
| TrainerPayGrade_ID | FK to trainer pay grade |
| AttendanceType_ID | FK to attendance type |
| FeeAmount | Fee charged to casual customers |
| FeeAmountClubMember | Fee charged to club members |
| SalaryAmount | Salary paid to the trainer |
| SalaryAmountAcquirer | Salary paid to the acquirer (referral fee) |
A unique constraint exists on (Season_ID, TrainerPayGrade_ID, AttendanceType_ID).
Demo data
15 rows configured — 5 pay grades x 3 attendance types.
Convenience Fee¶
| Parameter | Value |
|---|---|
| ConvenienceFeePercent | 0 |
| ConvenienceFeeAmount | 0 |
Note
Convenience fees are charged for receptionist-initiated actions. Both values are currently set to 0 (disabled).
Price Calculation¶
The CalculateReservationPriceCallout stored procedure computes the total reservation price:
Total = Rental Fee + Trainer Fee + Option Fees + Convenience Fee
| Component | Source |
|---|---|
| Rental fee | SportsFieldRent (matched by season, field type, pricing period) |
| Trainer fee | TrainerPayGradeFee (matched by season, pay grade, attendance type) |
| Option fees | Option.FixedPrice or Option.HourlyPrice x hours |
| Convenience fee | SystemParameter (flat amount or percentage) |
Additional Settings¶
| Parameter | Value | Description |
|---|---|---|
| TrainerBookAndPayNow | NO | Trainer fee is not collected at booking time |