The difference between a toy and a tool isn't how smart the AI is β it's whether the output is controllable, predictable, and reusable. This article shows what that looks like in practice.
1. Introduction: What This Article Is About
This article presents a complete financial approval process design β from application submission to final archiving β as a concrete example of how to move from probabilistic guesswork to deterministic execution.
The core idea is simple:
When you predefine every node, every routing path, and every condition in a process, execution no longer requires guessing. Input an application, and the output is a deterministic result.
This isn't just about finance approvals. It's a design pattern that can be applied to engineering reviews, project initiations, task assignments, procurement, reimbursement β any structured workflow that requires predictable outcomes.
Throughout this article, I'll walk through the full process design, explain every node and condition, and show how this structure addresses three critical concerns:
- Controllability β Every path is predefined, no surprises
- Coverage β Every application is routed somewhere, nothing is dropped
- Verifiability β Verification is embedded in every node, not added at the end
2. Design Philosophy
2.1 The Core Problem It Solves
Traditional workflows often rely on human judgment at every step β which is unpredictable, inconsistent, and unscalable. AI-assisted workflows add another layer of uncertainty: if the AI has to "guess" what to do next, the output is probabilistic, not deterministic.
This design solves that problem by predefining the entire execution path.
2.2 Design Principles
| Principle | Description |
|---|---|
| Top-down logic | Process flows hierarchically, from application to final approval |
| Complete coverage | Every possible condition leads to a defined next step β no dead ends |
| Precise conditions | Every routing decision is triggered by explicit, measurable criteria |
| Bidirectional flow | Supports both approval (forward) and rejection (backward) |
| Reusable template | The same logic applies to any structured approval workflow |
| Embedded verification | Every node is a verification point β verification is the process itself |
2.3 Key Symbols Used
| Symbol | Meaning |
|---|---|
Dept |
Department field |
Roles |
Roles field |
Counts |
Amount/quantity field |
== |
Equals |
<> |
Does not equal |
[BC] |
Belongs to department set |
[bc] |
Belongs to role set |
& |
And (both conditions must be satisfied) |
Yes |
Approval granted |
No |
Approval rejected |
[5000,10000] |
Amount β₯ 5000 and β€ 10000 |
3. The Complete Process Flow
Process Overview
This process contains 8 nodes that represent every stage from submission to closure. Each node has:
- A name and assignee (who acts at this stage)
- Routing paths (where the application can go next)
- Condition settings (what triggers each path)
Node 1: Submit Application
| Attribute | Value |
|---|---|
| Node Name | Submit Application |
| Assignee | All personnel |
| Routing Path | β Node 2 (Supervisor Approval), Node 3 (Department Head) |
Conditions:
| Route | Condition | Meaning |
|---|---|---|
1β2 |
Dept == A |
Department equals A β go to Supervisor Approval |
1β3 |
Dept <> A |
Department does not equal A β go to Department Head |
Explanation:
The applicant submits a request. The system automatically determines the first routing destination based on the department. This ensures different departments enter the appropriate approval channel from the start.
Node 2: Supervisor Approval
| Attribute | Value |
|---|---|
| Node Name | Supervisor Approval |
| Assignee | Applicant's immediate supervisor |
| Routing Path | β Node 3, Node 4, Node 5, or Node 1 (return) |
Conditions:
| Route | Condition | Meaning |
|---|---|---|
2β3 |
Dept == A |
Department A β Department Head |
2β4 |
Dept[BC] & Roles[bc] |
Dept β BC set AND Role β bc set β Finance Approval |
2β5 |
Dept[DE] & Roles[de] |
Dept β DE set AND Role β de set β General Manager |
2β1 |
No |
Supervisor rejects β return to applicant |
Explanation:
The supervisor reviews and routes based on department + role combination:
- Department A follows the standard path
- BC Department + bc Role bypasses Department Head, goes directly to Finance
- DE Department + de Role goes directly to General Manager
- Rejection returns the application to the submitter
Node 3: Department Head Approval
| Attribute | Value |
|---|---|
| Node Name | Department Head |
| Assignee | Department head |
| Routing Path | β Node 4, Node 5, or Node 1 (return) |
Conditions:
| Route | Condition | Meaning |
|---|---|---|
3β4 |
Dept[FG] & Roles[fg] |
Dept β FG set AND Role β fg set β Finance Approval |
3β5 |
Dept[KP] & Roles[kp] |
Dept β KP set AND Role β kp set β General Manager |
3β1 |
No |
Department Head rejects β return to applicant |
Explanation:
The department head reviews and routes based on department + role combination:
- FG Department + fg Role β Finance Approval
- KP Department + kp Role β General Manager
- Rejection β return to applicant
Node 4: Finance Approval
| Attribute | Value |
|---|---|
| Node Name | Finance Approval |
| Assignee | Deputy General Manager |
| Routing Path | β Node 5, Node 6, or Node 1 (return) |
Conditions:
| Route | Condition | Meaning |
|---|---|---|
4β5 |
Yes & Counts[5000,10000] |
Approved AND amount β [5000, 10000] β General Manager |
4β6 |
Yes & Counts[0,5000] |
Approved AND amount β [0, 5000] β Chairman |
4β1 |
No |
Finance rejects β return to applicant |
Explanation:
Finance is the key amount-based decision node:
- Amounts between 5000β10000 β General Manager Approval
- Amounts between 0β5000 β Chairman Approval (skips General Manager)
- Rejection β return to applicant
This ensures different spending levels follow different approval channels.
Node 5: General Manager Approval
| Attribute | Value |
|---|---|
| Node Name | General Manager Approval |
| Assignee | General Manager |
| Routing Path | β Node 6 or Node 1 (return) |
Conditions:
| Route | Condition | Meaning |
|---|---|---|
5β6 |
Yes |
Approved β Chairman |
5β1 |
No |
Rejected β return to applicant |
Explanation:
The General Manager makes the highest management-level decision. Approval moves to the Chairman for final confirmation; rejection returns to the applicant.
Node 6: Chairman Approval
| Attribute | Value |
|---|---|
| Node Name | Chairman Approval |
| Assignee | Chairman |
| Routing Path | β Node 7 |
Conditions:
| Route | Condition | Meaning |
|---|---|---|
6β7 |
Default | Approved β Cashier Payment |
Explanation:
The Chairman provides the final executive confirmation. Once approved, the application moves to the execution phase (payment). This ensures top-level sign-off on all approved requests.
Node 7: Cashier Payment
| Attribute | Value |
|---|---|
| Node Name | Cashier Payment |
| Assignee | Cashier |
| Routing Path | β Node 8 |
Conditions:
| Route | Condition | Meaning |
|---|---|---|
7β8 |
Default | Payment executed β Archive & Close |
Explanation:
The cashier executes the actual payment. This node transitions the application from "approved" status to "executed" status.
Node 8: Archive & Close
| Attribute | Value |
|---|---|
| Node Name | Archive & Close |
| Assignee | AI (system auto-executed) |
| Routing Path | Terminal node (end of process) |
Explanation:
The process endpoint. All approval records, payment confirmations, and condition logs are automatically archived. Notably, the assignee here is AI β archiving is fully automated, requiring no manual intervention.
The process is now complete.
4. Complete Path Overview
Based on different combinations of department, role, and amount, applications follow one of these paths:
| Path | Route | Scenario |
|---|---|---|
| A (Standard) | 1β2β3β4β5β6β7β8 | Department A, standard routing |
| B (BC Dept + bc Role) | 1β2β4β6β7β8 | BC dept + bc role, skips Dept Head |
| C (DE Dept + de Role) | 1β2β5β6β7β8 | DE dept + de role, skips Dept Head & Finance |
| D (FG Dept + fg Role) | 1β2β3β4β5β6β7β8 | FG dept + fg role, full standard path |
| E (KP Dept + kp Role) | 1β2β3β5β6β7β8 | KP dept + kp role, skips Finance |
| F (Rejection) | Varies β returns to 1 | Any node where approval is denied |
5. Why This Design Matters
5.1 It Answers the "Coverage" Question
One of the hardest questions in any automated workflow is:
"How do you know your system actually examined everything it was supposed to?"
This design answers that question directly:
| Concept | In This Process |
|---|---|
population_size |
All applications that enter the process |
eligible_seen |
Applications that reached each specific node |
| Coverage proof | Every node's entry/exit conditions create a complete audit trail |
This flowchart itself is the coverage anchor.
You don't need to add a separate verification step at the end β verification is embedded in every node's conditions.
5.2 It Embeds Verification in the Process, Not at the Boundary
In many systems, verification is treated as a separate step β a check added at the end to catch errors.
This design takes a different approach:
| In this design | Not this |
|---|---|
| Verification is in every node condition | Verification is a single final check |
| The process itself is the verification | Verification is added after the process |
| No need for a separate "verification step" | A separate step that itself needs verification |
Verification is not an action. It's the whole process.
5.3 It Bridges to AI Discussions
This design has direct relevance to ongoing conversations about AI reliability:
| AI Concern | How This Design Responds |
|---|---|
| "Semantic blindness" | The process is deterministic β no semantic interpretation required |
| "Probabilistic outputs" | Every path is pre-defined β no probability involved |
| "Coverage uncertainty" | Every node logs what it processed β coverage is transparent |
| "Who verifies the verifier?" | No separate verifier exists β verification is the structure itself |
6. Key Takeaways
| Takeaway | Statement |
|---|---|
| 1 | This flowchart itself is the coverage anchor. |
| 2 | Verification is not at the boundary β it's in every node's conditions. |
| 3 | Forms define the spec, conditions define the coverage, logs record the verification. |
| 4 | Every step is verification. Every step is deterministic judgment. |
| 5 | You don't need to add a population_manifest at the end β this diagram IS the manifest. |
| 6 | The difference between a toy and a tool: is the output controllable, predictable, and reusable? |
| 7 | Verification isn't an action β it's the whole process. |
7. Conclusion
This financial approval process is more than just a workflow diagram. It's a design pattern for building deterministic, verifiable, and reusable systems.
The principles here apply far beyond finance:
| Domain | Application |
|---|---|
| Engineering reviews | Code review routing based on file paths, author roles, and severity |
| Project initiations | Project approval based on scope, budget, and department ownership |
| Task assignments | Task routing based on skills, availability, and priority |
| Procurement | Purchase approvals based on amount, vendor, and department |
| Reimbursement | Expense approvals based on amount, category, and policy rules |
When you predefine the nodes, paths, and conditions, the process stops being probabilistic and starts being deterministic. The "guessing" disappears. The "coverage anxiety" disappears. The "verification overhead" disappears.
Verification is not an action. It's the whole process.
And when verification is the process itself, fixing it isn't an engineering project β it's a celebration.
Built from a conversation with @heinrichneb on veto heartbeats, @james_anderson_h on semantic blindness, and the OWP team on coverage anchors. This is what "verification as process" looks like in practice.












