@michael_soprano
You can choose between two options: Use multiple collections and order them according to evaluation criteria, or use a single collection and set offer-level priorities, depending on the requirement/need.
For Former: As you suggested, you put the “5% discount” in Collection 1 and “Free delivery” in Collection 2. In the evaluation criteria, you set the order for evaluation, e.g., Collection 2 (first priority), then Collection 1 (second priority).
In this case, the Decision Engine evaluates collections by your specified order. If two offers are requested and Collection 2 has an eligible offer, it will be returned first; if more are needed or none are found, it proceeds to the next collection. This lets you explicitly prioritize “types” of offers, e.g., always prioritize free delivery over a discount.
For Latter, both offers are part of the same Collection, and the evaluation criteria use this single collection. Here, every offer is prioritized using offer-level ranking/priority.
In this case, all eligible offers are stack ranked by your defined method (priority or formula), regardless of their nature. This is simpler, but you may lose some explicit control over category-level prioritization (e.g., if you always want to show a delivery offer before a discount offer, even if the discount has a higher offer-level score).