What are Program Groups?
A program group bundles similar programs together so that only one of them runs per conversion. This page explains what they're for and when to use one.
Last updated: April 10, 2026
A program group bundles a set of similar programs together so that only one program in the group runs when a customer converts. Normally Siren tries to pay every program that matches a conversion. A program group overrides that default and forces the group to pick a single winner based on rules you configure.
Why you’d want one
The most common reason to reach for a program group is tiered commission rates. Imagine you want to pay your top affiliates a higher rate than the rest of your affiliates. If you run both programs independently, a top affiliate would match both of them and get paid twice. A program group solves this by letting you say “these two programs are really one program with two tiers, pick the one that applies.” The tiered affiliate program recipe is a working example.
The same pattern works for any situation where programs overlap and you need Siren to choose between them instead of running all of them. Seasonal promotions that temporarily replace a base program, VIP-only rates, and region-specific commission overrides all fit this shape.
How the winner gets picked
When a customer converts, the program group’s structure decides which program in the group runs. See Program Group Structures for the available options and how each one chooses a winner.
Once a program group picks a winning program, that program runs as if it were the only one matched. It generates a conversion, the conversion follows the normal approval flow, and the resulting obligation pays the collaborator tied to the winning engagement.
When you don’t need one
Program groups are only useful when programs overlap. If your programs cover entirely different products, customer segments, or reward types, they can safely run side by side without a group. Siren is designed to pay every program it can, and reaching for a program group just because you have multiple programs is usually more friction than it’s worth. Group programs together only when you actively need to prevent Siren from paying more than one of them.
For developers: This concept maps to the
ProgramGroupConversionTriggeredevent. See the events reference for the full pipeline.