Business processes must account for exceptions to typical case behavior. Exceptions make a business process more complex. This complexity makes processes difficult to maintain and update as business conditions change.
For example, a company promises to respond to customer complaints within one business day. For customers with silver status, the company promises a response in five hours. Reduced response times for customers with elite status are exceptions to normal business processing.
Simple exceptions like these can be difficult or impossible to model with a single rule. For example, a service level only defines one set of service expectations, and an assignment only applies one service level. To apply three different response intervals, you might design a process with three assignments, and apply the correct service level to each assignment. If the process changes, you need to update three assignments instead of one.
Complex exceptions that depend on combinations of factors become difficult to maintain and update. Consider a bank that offers different promotions that reduce or waive fees for customers who meet specific conditions.
- A new customer receives 100 commission-free trades for the first three months after opening an investment account.
- A customer receives a rebate on commissions as long as the daily balance in their investment account exceeds certain thresholds—but the rebate amount, balance threshold, and number of rebate tiers vary by account type and country.
- A customer who refers a friend to the bank receives 10 commission free trades per month for six months.
A rule that models these commission discounts according to account type, account balance, and country can become complex. This complexity may lead to configuration errors resulting in dissatisfied customers.
In Pega applications, you model complex exceptions through circumstancing. With circumstancing, you create a variant of a rule—such as a decision or a service level—tailored to a specific circumstance. When an application uses a circumstanced rule, the system determines which rule variant best satisfies the need. Circumstancing allows you to customize the behavior of your application to address each exception condition you identify using a collection of targeted rules rather than one complex, difficult-to-maintain rule.