All posts
Custom Software Business Systems

When your approval workflow has outgrown your tools

Made Right Software

Made Right Software builds MVPs and custom software for founders and small business owners, and audits or rescues code that already exists. Fixed price. Delivered in 4 to 10 weeks.

Your ops team is spending 15 hours a week coordinating approvals across Slack, email, and Airtable. You have 12 people running 200 approvals a month. The tools worked fine when you were 5 people doing 50 a month. Now someone asks “where is this approval?” five times before lunch, and nobody can answer without checking three places.

The question is not whether this is frustrating. The question is whether it has crossed the line from inefficient to actually expensive, and whether the cost of staying on your current tools exceeds the cost of building something better.

The specific signals that your tools are inadequate

There are observable metrics that separate “this could be better” from “this is costing us real money every week.” You can measure these today without changing anything.

If your ops team is spending more than 20 percent of their time coordinating approvals rather than reviewing them, you have crossed the first threshold. Coordination means tracking down where something is, following up on stalled requests, assembling context from multiple systems, and routing items to the right person. This is not review work. This is overhead created by tools that do not fit the actual workflow.

In a fintech ops team we worked with, the person responsible for routing was spending the first two hours of every morning just preparing items for review. The work was pulling data from three systems, confirming nothing was missing, and forwarding each item by email to the right reviewer. Twenty to 40 minutes per item, every item, before a reviewer even saw it. That pattern scales badly. At 200 approvals a month, it is 80 hours of pure coordination work.

The second signal is exception rate. If more than 20 percent of your approvals require workarounds because the tool cannot handle them, the tool is not solving the problem anymore. It is solving the easy 80 percent and forcing manual work on the 20 percent that actually matters. A workflow tool that handles the happy path but breaks on exceptions becomes more expensive than no tool at all, because you are paying for the subscription and doing the manual work anyway.

The third signal is context assembly. If reviewers need data from three or more systems to make a decision, and someone has to manually pull that data together before each review, you are paying the coordination tax on every single approval. The cost is not the tool subscription. The cost is the time spent opening systems, copying information, and formatting it so a reviewer can actually decide.

The fourth signal is how often people ask “where is this?” If the answer requires checking multiple places and nobody can give a status update without doing research, your visibility gap is creating delay. The median time from submission to approval in manual workflows is not slow because reviewers are slow. It is slow because items sit invisible in queues that nobody is monitoring.

The final signal is rejection rate. Pull the last 90 days of approval decisions for your highest-volume workflow and count how many were actually rejected. If the rate is under 5 percent, that step is functioning as a formality, not a control. Approvals that almost never get rejected are candidates for removal or for replacement with automated policy limits and exception triggers. Adding a workflow tool around an unnecessary step just makes the unnecessary step faster.

What staying on inadequate tools actually costs

The direct cost is easy to calculate. Take the hours per week your team spends on coordination, multiply by loaded cost, multiply by the number of people involved. For a team of 12 spending 20 percent of their time on approval coordination at a $75 per hour loaded cost, that is roughly $95,000 a year in pure overhead.

The indirect cost is delay. In one vendor onboarding process we rebuilt, the average cycle was 11 days from submission to final approval. The actual review time across all three reviewers was under 30 minutes total. The other 10.5 days were waiting. Not waiting for a decision. Waiting for an email to get noticed, waiting for someone to return from travel, waiting because the request was invisible until someone manually checked on it.

After rebuilding the workflow with structured routing and automatic escalation, the same process averaged 1.4 days. The reviews did not get shorter. The waiting became visible, and visible delays get addressed faster than invisible ones.

The hidden cost is the triple-pay trap. You are paying for the tools you have. You are paying in coordination labor to work around their limitations. And you will pay again when you finally migrate to something that fits. The longer you wait, the more entrenched the workarounds become, and the more expensive the migration gets.

The break-even question is whether the coordination overhead you are paying right now, multiplied by 18 months, exceeds the cost of building something that eliminates it. For most workflows processing more than 100 approvals a month with a team larger than 10 people, the answer is yes.

When volume is not the only thing that changed

Outgrowing a tool happens when the work itself changes in ways the tool was never designed to handle, well before the volume alone becomes a problem.

Routing logic that was simple at 50 approvals a month gets complex at 200. Early on, everything went to one person. Now you have routing rules based on item type, value band, and reviewer availability. You have backup reviewers when the primary is overloaded. You have escalation paths when something sits too long. You have 40 edge cases that do not fit any of the rules, and someone has to handle those manually because the tool cannot encode that kind of conditional logic.

In the approval workflow we built for a fintech team, what they described as “simple rules” turned out to have 40 exceptions that lived entirely in one person’s head. A subset of items went to a specific reviewer not because of any written rule, but because that reviewer had industry knowledge that everyone assumed but never documented. Automating that required two weeks of process documentation before we wrote any code. The knowledge capture was harder than the technical build.

Integration requirements also change as you scale. Early on, all the information a reviewer needed lived in one system. Now it is spread across three, and someone has to manually assemble it before forwarding the request. The tool does not pull data from your internal systems. It does not cross-reference values. It does not flag anomalies based on historical patterns. Every approval requires manual prep work that takes longer than the review itself.

Reporting and audit requirements grow as well. Early on, nobody asked for aggregate metrics. Now leadership wants to know average cycle time, where delays occur, and how many items are pending by category. The tool shows individual requests but cannot answer questions about patterns. Producing a weekly status report requires manually compiling data from multiple places, and that work falls to someone on the ops team every Friday afternoon.

The business logic that drives approvals is also specific to your operations in ways that generic tools cannot accommodate. Your routing decisions depend on factors the tool does not know about. Your exception handling requires judgment calls the tool cannot make. Your compliance requirements need audit trails the tool does not capture in the format you need. At a certain point, the gap between what the tool does and what your workflow requires becomes too expensive to bridge with manual labor.

What the alternative actually looks like in practice

Custom approval automation is not about replacing reviewers with algorithms. It is about eliminating everything that happens before and after the actual decision.

Intake runs automatically on a schedule. Every morning at 8am and every four hours after that, the system pulls from all source systems without anyone needing to trigger it. Items appear in queues without manual forwarding.

Validation happens before routing. The system checks whether all required data is present, whether values across systems match, and whether anything looks anomalous based on historical patterns. Items that pass go directly to the review queue. Items that fail go to a triage queue with specific flags explaining what is missing or wrong. Reviewers see only items that are ready to decide.

Routing is rule-based and encoded. Each item is assigned to the right reviewer based on type, value, and current queue depth. If the primary reviewer has more than eight open items, it routes to the secondary. If both are overloaded, it escalates to a manager. The rules are in code, not in someone’s head, which means they are consistent and auditable.

The review interface shows everything in one screen. Reviewers do not open email, do not switch between systems, do not hunt for context. They open their queue, and every item displays all the data they need to decide. Data from multiple source systems, validation results, any flags that were triggered, and a decision history if this is a repeat request. One screen, full context, no manual assembly required.

Escalation is automatic. If an item sits in a queue for more than 24 hours with no activity, it escalates to a backup reviewer with a notification. Delays become visible immediately instead of invisible until someone manually checks.

The audit log is built in. Every assignment, every decision, every flag is timestamped and exportable. Compliance reporting is a query, not a manual compilation project.

Reviews happen as soon as items are ready, instead of after days of invisible waiting. In the fintech engagement, approval cycle time went from four days to same-day. The reviewers spent the same amount of time reviewing. The difference was eliminating the two hours of daily prep work and the waiting time between submission and assignment.

The calculation that tells you whether to act now

The decision to build custom automation has a straightforward break-even analysis. Calculate what you are currently paying in coordination overhead per month. Multiply by 18 months. Compare that to the cost of an 8 to 12 week build.

For a team of 12 people spending 20 percent of their time on coordination at $75 per hour loaded cost, the monthly overhead is roughly $8,000. Over 18 months, that is $144,000. An eight-week custom build at standard agency rates is typically $60,000 to $80,000 depending on complexity. The payback period is six to eight months, and after that you are eliminating $8,000 a month in recurring overhead.

The coordination overhead you are paying is not a one-time cost. It recurs every month. It grows as your team and approval volume grow. It compounds when people leave and the knowledge about how to route things walks out the door with them.

The build cost is one-time. The maintenance cost after launch is a small fraction of what you are currently spending on manual coordination. The system does not forget the routing rules when someone goes on vacation. It does not require re-explaining every time a new person joins the team. It scales with volume without adding headcount.

If your team is spending more than 20 percent of their time coordinating approvals, processing more than 100 per month, and dealing with exception rates above 20 percent, the math favors custom software. The coordination overhead you are paying right now is higher than the build cost amortized over 18 months.

The risk is not building too early. The risk is waiting until the workarounds are so entrenched that nobody can explain how things actually work anymore. If you want to compare the numbers for your specific situation, let’s talk about custom software.