Track outcomes, not just workflow runs: Count each eligible paid order with a confirmed fulfilment request by its dispatch deadline.; On-time rate is 82 out of 100 eligible orders confirmed by deadline, not the total confirmed.; Match source IDs to destination result IDs to avoid mismatches in reporting.
Image: Workflow Automation Guide

Observability

Part of Workflow monitoring and observability

Tracking successful outcomes rather than execution counts

Define eligible work, confirm destination results and calculate outcome and on-time rates without counting retries as extra successes.

Count a workflow outcome when an eligible business item reaches its defined destination state. An execution count measures runs, not completed orders, cases or requests. One item may cause several runs, and eligible work may produce no run at all.

Choose the counting unit

Write one outcome statement, such as: “Each eligible paid order has one confirmed fulfilment request by its dispatch deadline.” The order is the counting unit. Trigger events, retries and runs are supporting records, not additional orders.

Define eligibility from the authoritative source and fix the point at which an item enters a reporting cohort. Decide how cancellation before the deadline changes its status or eligibility, then apply that rule consistently. A later edit to an existing order should not silently add a second obligation.

Item statusIn the eligible total?Confirmed outcome?
Destination result confirmedYesYes; check its completion time for the on-time measure
Processing or awaiting confirmationYesNo, while pending
Exception or unknown writeYesNo, until resolved
Ineligible under the agreed ruleNoNo; report separately
Repeated event for a counted itemNo new itemNo new outcome

Agree on these states with the source and destination owners. If the destination only acknowledges a request, call that milestone accepted, not completed.

Calculate the outcome rate

For a defined source cohort, divide the number of distinct eligible items with a confirmed destination outcome by the number of eligible source items. State the cohort period and the point at which results are measured. For an on-time rate, use items whose deadlines have passed and count only outcomes confirmed by those deadlines. Show still-pending items separately.

Suppose 100 eligible orders have passed their deadlines. By then, 82 had confirmed fulfilment requests. Another eight were confirmed late and ten remain unresolved.

The on-time rate is 82 out of 100, or 82%. The currently confirmed share is 90 out of 100; it is not the on-time rate. Five other orders judged ineligible are reported separately.

Reconcile identities, not just totals

Join each eligible source ID to its intended destination result ID under an agreed matching rule. Investigate a source item without a result, a destination result without a matching obligation and more than one result for one intended action. Equal totals alone cannot reveal those mismatches.

Azure Logic Apps documents trigger statuses including Skipped when the trigger finds no data meeting the specified criteria. AWS says Step Functions CloudWatch metrics are delivered on a best-effort basis, with completeness and timeliness not guaranteed.

Display the cohort, deadline rule, numerator, denominator, pending and overdue counts and data refresh time together. Before relying on the measure, check how it classifies a normal item, repeat, ineligible item, missed run and late completion against the actual source and destination records.

More from Observability

Observability

Measuring the delay between trigger and completed action

Measure workflow delay from source event to confirmed destination action, including queue and retry time.