A device determines that a policy is to be executed. The device retrieves rules, resource identifiers, and data provider identifiers associated with the policy. The device asynchronously retrieves resources from data providers that are called for by the rules, and executes each of the rules as their corresponding resources are retrieved. The device identifies a group of rules that have failed. The device calculates a risk score for each rule of the group and generates an alert for each rule of the group. The device outputs a report including each alert, each of the alerts being prioritized in the report based on the risk score of their corresponding rule.