Chapter 4 Resources

From English Policies to Executable Rules

← Back to Book Resources


Key Concept

Policies written in English are suggestions. Policies written as rules are how your systems learn to behave.

Dual-Language Policy: The same rule expressed in two forms—one for humans to understand the reasoning, one for machines to enforce automatically.


Figures (Full Resolution)

Figure 4.1: Invoice Approval Dashboard

Invoice Approval Dashboard The manager’s view of Invoice #4847 in the approval queue. Three policy findings flagged: missing business purpose, amount exceeds auto-approval threshold, and documentation deadline approaching.

Figure 4.2: n8n Automation Workflow

n8n Workflow The automation workflow that syncs invoices from QuickBooks, evaluates them against policies, and routes exceptions for human review.

Figure 4.3: OPA Policy Evaluation

OPA Policy Call How the policy engine (Open Policy Agent) evaluates an invoice against your rules and returns findings.

Figure 4.4: Dual-Language Architecture

Dual-Language Architecture The architecture of dual-language policies: English policies translate to executable rules that the policy engine evaluates automatically.

Figure 4.5: Invoice Approval Queue Flow

Invoice Approval Queue How Invoice #4847 flows through the approval queue—from entry to policy evaluation to manager review to final approval.


Downloadable Resources

Policy Templates

Implementation Guides


Understanding the Invoice #4847 Example

Throughout this chapter, we follow Invoice #4847 from ABC Office Solutions. Here’s what the policy evaluation found:

Finding English Policy Executable Rule Status
Missing business purpose “All expenses must have documented business purpose” IF invoice.business_purpose IS NULL THEN flag Flagged
Exceeds threshold “Invoices over $2,000 require manager approval” IF invoice.amount > 2000 THEN require_approval("manager") Routed
Documentation deadline “Documentation required within 10 days” IF days_since(invoice.date) > 7 AND NOT documented THEN warn Warning

What the Manager Sees

When Invoice #4847 lands in the approval queue, the manager sees: – Invoice details: Vendor, amount, date, line items – Policy findings: Specific issues requiring attention – Action options: Approve, reject, request more info – Context: Why this invoice was flagged (not just “needs approval”)

This is the power of dual-language policies: the manager has context, not just a list of invoices to rubber-stamp.


The 10-Day Documentation Window

One of the most powerful executable rules is the documentation deadline:

English Policy:
"Business purpose and supporting documentation must be
provided within 10 business days of the transaction date."

Executable Rule:
IF transaction.date + 10_business_days < today
   AND transaction.documentation_status != "complete"
THEN alert_owner AND flag_for_review

Why 10 Days?

Timeframe Memory Accuracy Documentation Quality
Same day 95%+ Excellent
Within 3 days 85-90% Good
Within 10 days 70-80% Acceptable
30+ days 40-50% Poor
Year-end 10-20% Guessing

The 10-day window catches documentation while memory is fresh—not at year-end when you’re reconstructing from credit card statements.


Don’t Worry About the Code

Important: You don’t need to write code to benefit from dual-language policies.

The code examples in this chapter show what’s possible—they’re the “machine” side of dual-language policies. Your job is:

  1. Define the English policies – What rules should govern your business?
  2. Work with an implementer – They translate to executable rules
  3. Review the results – Are policies being enforced correctly?

Think of it like hiring an electrician: you decide where you want outlets, they handle the wiring.


Real Results: Case Study

Client: Regional professional services firm, 45 employees

Before Dual-Language Policies: – 23% of invoices missing business purpose at year-end – Average 47 days between transaction and documentation – 180+ hours of year-end cleanup

After Implementation: – 3% of invoices missing business purpose (caught within 10 days) – Average 4 days between transaction and documentation – 12 hours of year-end cleanup

Key Change: The 10-day documentation window caught issues while memory was fresh. Problems surfaced in days, not months.


Key Takeaways

  1. Policies that sit in binders don’t work – They depend on human memory
  2. Dual-language bridges the gap – Same rule, two expressions
  3. Machines enforce, humans decide – Automation catches issues, people make judgments
  4. The 10-day window is powerful – Catch documentation gaps while memory is fresh
  5. You don’t need to code – Define the policies, let implementers handle the rules

Your Next Step

Take one policy you already have (even if unwritten) and try expressing it as an executable rule:

Example: – English: “Large purchases need owner approval” – Executable: IF purchase.amount > [threshold] THEN require_approval("owner")

What’s your threshold? $500? $1,000? $5,000? Defining this is the first step.

Want help translating your policies? Apply for a complimentary Tax Ready Assessment


← Chapter 3 | Back to Book Resources | Next: Chapter 5 →

Scroll to Top