Docs/Transaction Processing/Expense Management

Expense Management

Employee expense reports with per-diem, mileage, receipt collection, and automated reimbursement

8 min read

Overview#

The expense management system handles employee expense reports from submission through approval, GL posting, and reimbursement. It supports three types of expense lines -- standard reimbursements, per-diem claims, and mileage claims -- each with automatic rate lookups and calculations.

AspectDetail
Submission channelsClaude conversation, email, admin dashboard
Line typesReimbursement, per-diem, mileage
ApprovalRisk-based: under $500 auto-approved, $500-$5k manager approval, over $5k multi-level
GL postingExpense accounts per line debited, Employee Payable credited
ReimbursementVia payment proposal agent, paid through bank transfer
CurrencyEntity's functional currency (enforced)

Expense Report Lifecycle#

An expense report moves through distinct states from creation to payment:

  draft  <-- create / reject (can edit)
    |
    | submit
    v
  submitted --+--> reject --> can update & resubmit
    |         |
    |         +--> modify (approver adjusts amounts)
    | approve
    v
  approved
    |
    | GL posting
    v
  posted --> transaction created
    |
    | payment batch
    v
  paid --> reimbursement complete

  cancelled <-- cancel from draft or submitted

State Transitions#

FromToWhoTrigger
--DraftEmployee or agentReport created
DraftSubmittedEmployeeSubmits for approval
SubmittedSubmittedManager/FinanceModifies amounts before approving
SubmittedApprovedManager/FinanceApproves the report
SubmittedRejectedManager/FinanceRejects with reason
ApprovedPostedSystemGL entry created automatically
PostedPaidPayment agentBank confirms reimbursement
RejectedDraftEmployeeUpdates and resubmits
Draft/SubmittedCancelledEmployee/AdminCancels the report

Line Types#

Reimbursement Lines#

Standard out-of-pocket expenses with a receipt. The employee provides the amount, merchant, date, description, and expense category.

Per-Diem Lines#

Daily allowance for travel expenses. The system looks up the applicable rate based on:

  • Country (required)
  • City (optional, most specific)
  • Region (optional, mid-level specificity)

Lookup priority: City-specific rate > Region-specific rate > Country-level rate

Calculation:

Adjusted rate = Daily rate - Meal deductions (for provided meals)
Amount = Number of days x Adjusted rate

Tiered rates are supported for extended trips. For example, the first 20 days at the full rate, then a reduced rate for subsequent days.

Meal deductions are applied when meals are provided (breakfast, lunch, or dinner), reducing the daily allowance accordingly.

Example: 3-day trip to New York City with hotel breakfast included:

  • Rate: $79.00/day, breakfast deduction: $18.00
  • Calculation: 3 x ($79.00 - $18.00) = 3 x $61.00 = $183.00

Mileage Lines#

Reimbursement for business travel using a personal vehicle. The system looks up the rate based on vehicle type and distance unit.

Supported vehicle types: Personal car, motorcycle, bicycle, electric car

Calculation:

Amount = Distance x Rate per unit

Tiered rates are supported for high-mileage claims. For example, $0.70/mile for the first 5,000 miles, then $0.35/mile above that threshold.

Example: 150.5 miles at $0.70/mile = $105.35


Approval Workflow#

Risk-Based Lane Assignment#

When an expense report is submitted, the total amount determines the approval path:

Amount RangeLaneBehavior
Under $500GreenAuto-approved, posts immediately
$500 -- $4,999YellowRequires manager approval
$5,000 and aboveRedRequires multi-level approval

Approve with Modifications#

Approvers can modify line amounts and details on a submitted report before approving it. This supports common scenarios like:

  • Reducing per-diem days based on policy
  • Correcting mileage distance
  • Capping reimbursement amounts per company policy

Modifiable fields include amount, description, expense category, per-diem days (triggers automatic recalculation), and distance (triggers automatic recalculation).

The report stays in "submitted" status after modifications, allowing the approver to then approve separately.


GL Posting#

When an expense report is approved, a transaction is created in the unified transaction ledger with the following pattern:

DR  Meals & Entertainment (per line)     $45.50
DR  Travel (per line)                   $237.00
DR  Transportation (per line)           $100.84
    CR  Employee Payable                        $383.34

Account Resolution#

Each expense line resolves its GL account through a three-tier priority:

  1. Direct account -- If an account number is specified on the line, use it
  2. Item default -- If an expense category item is specified, use its default expense account
  3. Posting profile -- Fall back to the configured posting profile for expense reports

If none of the above resolves an account, the report cannot be posted. Every line must have either an expense category or a direct GL account.

Credit Side#

The total reimbursable amount is credited to the Employee Payable account, creating a liability that is cleared when the reimbursement payment is made.


Reimbursement Payment#

The full reimbursement lifecycle:

  1. Expense report posted -- Employee Payable balance created
  2. Payment proposal generated -- The payment proposal agent identifies outstanding employee payables
  3. Payment batch approved -- Finance approves the batch including employee reimbursements
  4. Bank payment sent -- Wire or ACH sent to the employee's bank account
  5. Bank statement confirms -- A reimbursement payout transaction clears the Employee Payable balance
Step 1 - Expense Report:
  Travel Expense debited $500
  Employee Payable credited $500

Step 2 - Reimbursement Payment:
  Employee Payable debited $500
  Bank account credited $500

Result: Employee Payable balance = $0

Per-Diem Rate Management#

Per-diem rates are configured per legal entity with geographic specificity:

LevelExample
CountryUnited States: $59/day
RegionNew York state: $69/day
CityNew York City: $79/day

Each rate includes:

  • Full-day rate -- Standard daily allowance
  • First/last day rate -- Typically 75% of the full rate for travel days
  • Meal deductions -- Amounts deducted when breakfast, lunch, or dinner is provided
  • Tiered rates (optional) -- Reduced rate after a threshold number of days
  • Effective dates -- Rate validity period for historical accuracy

Tiered Per-Diem Example#

Estonia, 25-day trip, no meals included:

  • Standard rate: EUR 50/day for the first 20 days
  • Tiered rate: EUR 30/day for days 21+
  • Calculation: (20 x EUR 50) + (5 x EUR 30) = EUR 1,150.00

Mileage Rate Management#

Mileage rates are configured per legal entity by vehicle type:

Vehicle TypeRateUnit
Personal car$0.70per mile
Motorcycle$0.70per mile
Bicycle$0.20per mile
Electric car$0.30per km

Each rate includes:

  • Rate per unit -- Amount per mile or kilometer
  • Distance unit -- Miles or kilometers
  • Tiered rates (optional) -- Reduced rate above a distance threshold
  • Effective dates -- Rate validity period

Expense Category Mapping#

For corporate card transactions, Merchant Category Codes (MCC) are automatically mapped to expense categories:

MCC CategoryMaps ToConfidence
Restaurants (5812-5814)Meals & Entertainment90-95%
Airlines (4511-4512)Travel - Airfare95-97%
Hotels (7011, 3501)Travel - Lodging95-97%
Office supplies (5942-5944)Office Supplies85-90%
Software (5734, 7372)Software Subscriptions85-88%
Cloud services (4816, 7379)Cloud & IT Services88-92%

The AI-powered expense processor agent uses these mappings along with merchant name analysis to automatically categorize card transactions.


Submission Channels#

Claude Conversation#

Employees describe their expenses in natural language. Claude creates the expense report, calculates per-diem and mileage amounts, and submits for approval.

Email#

Employees forward receipts to a designated email address. The expense processor agent extracts data from the receipt using OCR, creates the expense line, and attaches the receipt image.

Admin Dashboard#

Employees can create and manage expense reports through the web dashboard, with forms for each line type and drag-and-drop receipt upload.


Key Capabilities#

  • Three line types: reimbursement, per-diem, and mileage with automatic calculations
  • Risk-based approval: auto-approve small amounts, escalate large ones
  • Approve with modifications: approvers can adjust amounts before approving
  • Automatic GL posting: proper double-entry accounting on approval
  • Full reimbursement lifecycle: from expense report through bank payment
  • Geographic per-diem rates: country, region, and city-level with tiered support
  • Vehicle-specific mileage rates: with distance-based tiers
  • MCC-based categorization: automatic expense classification for card transactions
  • Multi-channel submission: Claude chat, email, or admin dashboard
  • Receipt management: OCR extraction, validation, and reminders

Subscribe to new posts

Get notified when we publish new insights on AI-native finance.