An implementation example from operational SaaS work. Company and customer details are omitted.
The situation
One set of approved time records supported two different business activities: payroll and customer billing. Completing payroll changed the records’ status. The billing workflow interpreted that change as a reason the records were no longer ready, even when their approvals and billable activity were otherwise valid.
The visible symptom was a blocked billing action. The underlying issue was a business rule: the system had allowed the completion state of one process to stand in for the eligibility of another.
The decision
I traced the workflow through export behavior, readiness checks, exception settings, and the review interface. The correction needed to preserve two responsibilities at the same time: payroll-exported records could still be eligible for billing, while the payroll path still needed to prevent an unintended second export.
The solution also needed to explain genuine blockers. A record without billable activity should not look like a record blocked only because another workflow had completed.
The work
The billing eligibility rules were updated to account for the payroll-exported state. The review interface made that status explicit and displayed specific blocking reasons with counts.
Exception handling was connected to the configuration that determines whether an exception blocks billing. That kept the business setting authoritative instead of treating severity alone as the decision.
Focused backend and interface checks covered the corrected billing path, records with no billable activity, and configured nonblocking exceptions. Payroll’s protection against another export remained a separate rule.
The implemented behavior
Completing payroll no longer made an otherwise eligible record fail billing readiness solely because of its payroll status. Records with a real billing blocker remained blocked, with a more specific explanation in the review interface.
This is the kind of architecture decision that can hide inside an apparently small bug: two departments use the same data, but they do not share one lifecycle. Fixing the screen alone would have left that distinction unresolved.
If your team is repeatedly working around unclear status, ownership, or approval rules, Technical Advisory can help connect the business process to the implementation that needs to support it.