Assign Entry Fees Based on the Number of Registered Participants

Some events offer tiered pricing for registrations: the earlier you register, the cheaper the entry fee. Although RACE RESULT 12 does not provide this as a built-in feature, such a pricing structure can be implemented by combining Additional Fields, conditional Entry Fee filters, and expressions in the Online Registration Form.

Example Scenario

Consider a tiered pricing model where the first 100 participants pay 10 EUR, participants 101 to 200 pay 15 EUR, and all subsequent participants pay 20 EUR. Implementing this model requires assigning a dynamic registration number at the time of form submission and using this value to determine the appropriate entry fee.

Create an Additional Field to Store Registration Order

To track the order of registration, an additional field must be added to the participant dataset.
In Basic Settings ⇒ Participants Data ⇒ Additional Fields, create a new field of type Number (integer), for example named RegCount. This field will store each participant's position in the registration order.

Define Entry Fees Using Conditional Filters

Once the RegCount field is in place, define the entry fees based on this value.
Under Finance ⇒ Entry Fees, create three separate fee entries and assign filters as follows:

These filters ensure that the correct fee is applied automatically based on the stored registration count. The participant will see and pay the appropriate price during registration, based on the data at the time of submission.

Calculate and Store the Registration Count

The next step is to calculate and store the correct value in the RegCount field during the registration process.
Open the Registration Form, go to Advanced Settings > Store Additional Values, and add the RegCount field. Set the Source to Expression, and use the following formula:

DCount("[Contest]=" & [Contest]) + 1

This expression counts the number of participants already registered for the same contest and adds one, assigning the next available number to the incoming registration.

Handling Group Registrations

When using Group Registration instead of single registration, the calculation must account for the position of each participant within the group. In this case, the following expression should be used instead:

DCount("[Contest]=" & [Contest]) + [GroupRegPos]

This ensures that each member of the group receives a unique and incremented value for RegCount. The field [GroupRegPos] indicates the sequence of the participant within the group registration. It starts at 1 for the first person and increases for each additional group member. In single registrations, this value is 0, which is why the +1 expression is required instead.

Limitations and Considerations

The [RegCount] value is only saved after a registration is submitted. This means that if multiple users register simultaneously - especially near a pricing tier threshold - they may receive the same RegCount and be charged the same fee, even if one should fall into the next tier.

This can happen during periods of high demand or when tier ranges are very narrow compared to the registration volume. While such overlaps are rare and self-correcting, they should be considered when configuring the pricing model.