Expense Management
Employee expense reports with per-diem, mileage, receipt collection, and automated reimbursement
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.
| Aspect | Detail |
|---|---|
| Submission channels | Claude conversation, email, admin dashboard |
| Line types | Reimbursement, per-diem, mileage |
| Approval | Risk-based: under $500 auto-approved, $500-$5k manager approval, over $5k multi-level |
| GL posting | Expense accounts per line debited, Employee Payable credited |
| Reimbursement | Via payment proposal agent, paid through bank transfer |
| Currency | Entity'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#
| From | To | Who | Trigger |
|---|---|---|---|
| -- | Draft | Employee or agent | Report created |
| Draft | Submitted | Employee | Submits for approval |
| Submitted | Submitted | Manager/Finance | Modifies amounts before approving |
| Submitted | Approved | Manager/Finance | Approves the report |
| Submitted | Rejected | Manager/Finance | Rejects with reason |
| Approved | Posted | System | GL entry created automatically |
| Posted | Paid | Payment agent | Bank confirms reimbursement |
| Rejected | Draft | Employee | Updates and resubmits |
| Draft/Submitted | Cancelled | Employee/Admin | Cancels 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 Range | Lane | Behavior |
|---|---|---|
| Under $500 | Green | Auto-approved, posts immediately |
| $500 -- $4,999 | Yellow | Requires manager approval |
| $5,000 and above | Red | Requires 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:
- Direct account -- If an account number is specified on the line, use it
- Item default -- If an expense category item is specified, use its default expense account
- 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:
- Expense report posted -- Employee Payable balance created
- Payment proposal generated -- The payment proposal agent identifies outstanding employee payables
- Payment batch approved -- Finance approves the batch including employee reimbursements
- Bank payment sent -- Wire or ACH sent to the employee's bank account
- 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:
| Level | Example |
|---|---|
| Country | United States: $59/day |
| Region | New York state: $69/day |
| City | New 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 Type | Rate | Unit |
|---|---|---|
| Personal car | $0.70 | per mile |
| Motorcycle | $0.70 | per mile |
| Bicycle | $0.20 | per mile |
| Electric car | $0.30 | per 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 Category | Maps To | Confidence |
|---|---|---|
| Restaurants (5812-5814) | Meals & Entertainment | 90-95% |
| Airlines (4511-4512) | Travel - Airfare | 95-97% |
| Hotels (7011, 3501) | Travel - Lodging | 95-97% |
| Office supplies (5942-5944) | Office Supplies | 85-90% |
| Software (5734, 7372) | Software Subscriptions | 85-88% |
| Cloud services (4816, 7379) | Cloud & IT Services | 88-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.