← Back to the catalog
E21FINANCE

Expense report processing

Reads expense submissions — receipts uploaded by employees, card transactions to be coded, mileage logs — and produces complete, policy-checked expense entries with the right GL category, project, and approval routing. Catches policy violations (out-of-policy meal, missing receipt, duplicate submission) at submission time rather than during approval. Routes flagged items back to the submitter with specifics. Different from E19 (bank reconciliation) because this pattern works with employee-driven submissions and policy enforcement; different from D12 (document extraction) because the document type and downstream workflow are narrower and more standardized. The pattern's value is compressing the expense cycle from days to hours while reducing the controller's role in chasing down corrections.

WHERE THIS FITS
BUSINESS SHAPES
B2B servicesProfessional servicesProduct companyNon-profit / mission-driven
VOLUME THRESHOLD
Below 50 expense submissions per month a month, the payback rarely earns the build. Patterns this shape reliably pay back at 500+.
REQUIREMENTS · 7 REQUIRED

Requirements describe capabilities the pattern needs in your environment, not the vendors you must buy. Any system that fills a requirement satisfies it — that’s what makes the catalog portable across the long tail of SMB tooling.

  1. expense_submission_channel
    REQUIREDREADevent

    Where employees submit expenses: receipt photos, statement card-coding interface, mileage entries.

    DATA SHAPE
    Submission with receipt or transaction details, submitter identity, claimed business purpose, amount, date.
    COMMONLY FILLED BY
    • expense management app where employees upload receipts
    • card-statement coding interface
    • company mobile app with submission feature
  2. expense_policy_library
    REQUIREDREADcorpus

    The firm's expense policies as testable rules: meal limits, receipt requirements, project coding requirements, prohibited expense types.

    DATA SHAPE
    Per-policy rule: conditions, limits, evidence requirements, exceptions.
    COMMONLY FILLED BY
    • expense policy in the firm handbook
    • structured policy library maintained by finance
    • rules configured in the expense management system
  3. employee_directory
    REQUIREDREADrequest

    Who the submitter is, what they can spend on, what their approval routing should be.

    DATA SHAPE
    Per-employee: department, role, manager, spending authority, project assignments, cost center.
    COMMONLY FILLED BY
    • HR system with reporting structure
    • expense system with employee profiles
    • internal directory with cost center mapping
  4. project_and_account_master
    REQUIREDREADrequest

    Valid GL accounts, projects, classes the expense can be coded to.

    DATA SHAPE
    Active accounts, projects, classes with descriptions and rules about who can use each.
    COMMONLY FILLED BY
    • chart of accounts and project list in the accounting system
    • ERP cost center and project structure
  5. approval_routing
    REQUIREDWRITEevent

    Where complete reports go for manager and finance approval per the firm's authority matrix.

    DATA SHAPE
    Approval requests with full context, prior policy checks, suggested approvers.
    COMMONLY FILLED BY
    • approval workflow in the expense system
    • task created for the manager and finance reviewer
    • structured approval routing in a workflow tool
  6. submitter_feedback_channel
    REQUIREDWRITEevent

    Where flagged or incomplete submissions go back to the submitter with specifics.

    DATA SHAPE
    Per-submission feedback: what's flagged, why, what needs to change, deadline if applicable.
    COMMONLY FILLED BY
    • notification in the expense app with revision interface
    • email to the submitter with edit link
    • chat alert with feedback details
  7. bookkeeping_destination
    REQUIREDWRITEevent

    Where approved expenses become journal entries.

    DATA SHAPE
    Categorized expense entries with full coding, attached receipts, audit trail.
    COMMONLY FILLED BY
    • bookkeeping system with expense entries
    • AP system if expenses get reimbursed via payment run
    • GL with structured entries
RUNTIME FLOW · 8 STEPS
  1. 01
    Employee submits expense through the submission channel
    expense_submission_channel
  2. 02
    Extract structured fields from receipt or transaction: amount, vendor, date, line items if available
  3. 03
    Look up submitter context for authority and routing
    employee_directory
  4. 04
    Match expense to appropriate GL coding using policy and submitter context
    project_and_account_masterexpense_policy_library
  5. 05
    Check against policy: amount limits, receipt requirements, prohibited types, duplicate detection
    expense_policy_library
    DECISION Three branches: clean → approval; minor issues → feedback to submitter; major issues → block.
  6. 06
    For clean submissions, route to approval with full context
    approval_routing
  7. 07
    For issues, send specific feedback to the submitter with revision interface
    submitter_feedback_channel
  8. 08
    On approval, write to bookkeeping destination with attached evidence
    bookkeeping_destination
EMISSIONS · 3

Structured outputs this pattern produces. Other patterns and client systems can subscribe to them, which is how the catalog composes over time.

  • expense_cycle_signal

    Submission-to-payment cycle time, per-employee and aggregate.

    CONSUMED BY
    • finance operations dashboards
    • employee experience metrics
    • controller workflows
  • policy_violation_pattern

    Which policies get violated most often, by whom, with what frequency.

    CONSUMED BY
    • policy review and refinement
    • manager coaching
    • finance leadership reviews
  • spend_pattern_signal

    Aggregate spending patterns by category, project, department.

    CONSUMED BY
    • budget vs. actual analysis
    • department head visibility
    • financial reporting