A child pays less than an adult; a foreign visitor pays more than a citizen; a customs fee equals the declared value. When the SRD gives more than one price, set the pricing mode to Dynamic and describe each case as a scenario: IF these conditions are true, THEN charge this.
Which pricing type the SRD is asking for
| SRD says… | Set Price To | Lesson |
|---|---|---|
| "Children pay 5,000, citizens 10,000, foreigners 20,000" | Price Value: you type the amount | B2 |
| "The fee equals the value the applicant declares" | Price From Attribute: a number field of the form is the price | B3 |
| "50,000 plus 2,000 per year of practice" | Price From Formula: a calculation over number fields | B4 |
| "Use the central tariff maintained by Finance" | Not a scenario: pricing mode Price Logic | B5 |
▶ Video walkthrough in the Rise course.

Anatomy of a scenario
Comparators by field type (from the portal code)
| Field type | Comparators offered |
|---|---|
| Number, date, time | Equal To, Not Equal To, Greater Than, Greater Or Equal To, Less Than, Less Or Equal To |
| Dropdown, radio, checkbox, text, phone | Equal To, Not Equal To (Greater/Less only when the attribute is numeric) |
| Multi-select dropdown | Contains |
| Other fields | All seven |
When the applicant submits, the application engine walks the scenarios in order and takes the first one whose conditions are all true. There is no "best match" and no default. Two facts follow:
INVALID_DYNAMIC_PRICE_CONFIGURATION_WITHOUT_PRICE_VALUE: the applicant sees an error and cannot apply.Gotcha · a condition on a hidden field is false
A condition is true only if the field is in the submitted data. A field hidden by the form logic is not submitted, so even Not Equal To on it is false. Build conditions on fields that are always shown, or add a scenario for the hidden case.
Gotcha · paid but free: the bill action decides
The engine computes a price only if the service is Paid and the APPLY transition contains a
BILL_ID_GENERATIONaction. Remove the bill action and every application becomes free, whatever your scenarios say.
Scenario 1: Age < 18 → 2,000 RWF. Scenario 2: Student = Yes → 3,000 RWF. A 16-year-old student applies. What is charged?
C. The engine stops at the first scenario whose conditions are all true. Order your scenarios, or make them mutually exclusive (Age < 18 AND Student = No).
Tip · reference
Pricing overview · Value-based pricing · Attribute-based · Formula.
← A14 · Assignment 1: build a simple service · B2 · Value-based pricing →