Skip to main content Enter
ERP.AI Expense Reporting System

Expense Reporting System

Start now
Pricing Frequently asked questions Get started
Build with Proto

Modules

Expense captureTurn receipts and expense details into a report ready for review. Expense policiesMake expense rules clear before a report reaches approval. Mileage and travelKeep travel claims connected to their dates, routes and approved rates.
Approval workflowGive each expense decision a clear owner and a lasting record. ReimbursementsTrack eligible claims from approval to confirmed payment. Corporate cardsMatch company-card spending and close each statement with evidence.

Expense Reporting System

Start now
Pricing Frequently asked questions Get started
Build with Proto

Processes

Capture and submit expensesPrepare an evidenced report and send the right revision for review. Approve and reimburse expensesFollow the required decisions through to a confirmed employee payment.
Review high-value expensesAdd the required Controller decision without losing the report history. Reconcile corporate-card statementsExplain the closing balance before approving issuer settlement.

Expense Reporting System

Start now
Pricing Frequently asked questions Get started
Build with Proto

Industries

Field sales and serviceKeep on-the-road expense evidence close to the claim. Professional servicesKeep project expense context with the financial evidence.
Distributed teamsGive employees a consistent submission and approval experience.

Expense Reporting System

Start now
Pricing Frequently asked questions Get started
Build with Proto

Reference

Roles and permissionsGive each employee and reviewer the scope their expense work requires. Reports and analyticsUnderstand approved spending, policy findings and payment follow-up. Data modelKeep expense evidence, approvals and payment identities connected.
IntegrationsConnect the actual sources and retain their confirmed outcomes. ImplementationStart with a small policy and employee population you can reconcile. Agent and automationPrepare expense work with an agent while retaining assigned decisions.

Expense Reporting System

Start now
Pricing Frequently asked questions Get started
Build with Proto
All systems
Modules
Expense captureTurn receipts and expense details into a report ready for review.Expense policiesMake expense rules clear before a report reaches approval.Mileage and travelKeep travel claims connected to their dates, routes and approved rates.Approval workflowGive each expense decision a clear owner and a lasting record.ReimbursementsTrack eligible claims from approval to confirmed payment.Corporate cardsMatch company-card spending and close each statement with evidence.
Processes
Capture and submit expensesPrepare an evidenced report and send the right revision for review.Approve and reimburse expensesFollow the required decisions through to a confirmed employee payment.Review high-value expensesAdd the required Controller decision without losing the report history.Reconcile corporate-card statementsExplain the closing balance before approving issuer settlement.
Industries
Field sales and serviceKeep on-the-road expense evidence close to the claim.Professional servicesKeep project expense context with the financial evidence.Distributed teamsGive employees a consistent submission and approval experience.
Reference
Roles and permissionsGive each employee and reviewer the scope their expense work requires.Reports and analyticsUnderstand approved spending, policy findings and payment follow-up.Data modelKeep expense evidence, approvals and payment identities connected.IntegrationsConnect the actual sources and retain their confirmed outcomes.ImplementationStart with a small policy and employee population you can reconcile.Agent and automationPrepare expense work with an agent while retaining assigned decisions.
Sign in
Sign in Start now
Expense Reporting System References
Data model3 of 6
  • Roles and permissions1 of 6
  • Reports and analytics2 of 6
  • Data model3 of 6
  • Integrations4 of 6
  • Implementation5 of 6
  • Agent and automation6 of 6

Data model

Keep expense evidence, approvals and payment identities connected.

18 tables · 33 relationships

Data model 18 tables
mastertransactionline item CorporateCards.Cardholder → Employees CardTransactions.Card → CorporateCards CardTransactions.MatchedExpenseLine → ExpenseLines ExpenseReports.Submitter → Employees ExpenseReports.Policy → ExpensePolicies Reimbursements.Report → ExpenseReports Reimbursements.Employee → Employees MealsAndEntertainment.ExpenseLine → ExpenseLines CardReconciliations.Card → CorporateCards CardReconciliations.PreparedBy → Employees Receipts.ExpenseLine → ExpenseLines MileageEntries.ExpenseLine → ExpenseLines MileageEntries.Vehicle → Vehicles MileageEntries.MileageRate → MileageRates PolicyViolations.ExpenseLine → ExpenseLines PolicyViolations.Rule → PolicyRules PolicyViolations.AcknowledgedBy → Employees PolicyRules.Policy → ExpensePolicies PolicyRules.Category → ExpenseCategories PolicyRules.PerDiemRate → PerDiemRates ExpenseLines.Report → ExpenseReports ExpenseLines.Category → ExpenseCategories ExpenseLines.PerDiemRate → PerDiemRates ExpenseLines.CardTransaction → CardTransactions ExpenseApprovalSteps.Report → ExpenseReports ExpenseApprovalSteps.Approver → Employees Vehicles.Employee → Employees ExpenseCategoriesmasterCategoryCodeNameGroup ExpensePoliciesmasterPolicyCodeNameScope MileageRatesmasterTaxYearRateScopeRatePerMile PerDiemRatesmasterLocalityCodeLocalityNameState CorporateCardsmasterStatusCardholderCardNickname EmployeesmasterEmployeeNumberManagerName CardTransactionstransactionStatusCardMatchedExpenseLine ExpenseReportstransactionReportNumberStatusSubmitter ReimbursementstransactionReimbursementNumberStatusReport MealsAndEntertainmenttransactionExpenseLineClassificationBusinessPurpose CardReconciliationstransactionReconciliationNumberStatusCard ReceiptslineOCRStatusExpenseLineFileURL MileageEntrieslineExpenseLineVehicleMileageRate PolicyViolationslineStatusExpenseLineRule PolicyRuleslineRuleCodePolicyCategory ExpenseLineslineReceiptStatusStatusReport ExpenseApprovalStepslineReportApproverReportRevision VehicleslineStatusEmployeeVehicleName
Data modelTable names and relationships

Migration order

  1. 1 Employees, ExpensePolicies, PolicyRules and ExpenseCategories establish ownership and the governing rules.
  2. 2 Vehicles, MileageRates and PerDiemRates retain reviewed travel references and effective intervals.
  3. 3 CorporateCards and CardTransactions preserve card assignment and stable issuer transaction identities.
  4. 4 ExpenseReports, ExpenseLines, Receipts, MileageEntries and MealsAndEntertainment retain the claim and its evidence.
  5. 5 PolicyViolations and ExpenseApprovalSteps retain findings and revision-specific decisions.
  6. 6 Reimbursements and CardReconciliations preserve the separate employee and issuer settlement trails.

Financial identity

18 tables

EmployeePayableAmount includes eligible approved OutOfPocket, Mileage and PerDiem lines and excludes company-card costs. A stable SourceKey and external confirmation reference prevent duplicate reimbursement. Preserve approved report revisions and source calculation bases; correction must not silently rewrite earlier decisions.

EmployeePayableAmount includes eligible approved OutOfPocket, Mileage and PerDiem lines and excludes company-card costs. A stable SourceKey and external confirmation reference prevent duplicate reimbursement. Preserve approved report revisions and source calculation bases; correction must not silently rewrite earlier decisions.

ExpenseCategoriesThe category catalog. Drives default GL coding, receipt-requiredmaster
FieldTypeRequiredDetails
CategoryCodetextyes
Nametextyes
GroupselectyesTravelAir, TravelHotel, TravelGround, Meals, Entertainment, OfficeSupplies, Equipment, SoftwareSub, Telecom, Mileage, PerDiem, Other
DefaultGLAccounttextyesGL account code in fin-accounting ChartOfAccounts
ReceiptRequiredAbovecurrencyCompany policy threshold; validate lodging, category and documentary-evidence exceptions before activation
MealsAndEntertainmenttoggleyesRequires reviewed classification and effective-date treatment; no universal deduction rate
AllowBillableToProjecttoggleyes
Activetoggleyes
ExpensePoliciesPolicy header. Scope: Org / Department / Role. One default Orgmaster
FieldTypeRequiredDetails
PolicyCodetextyes
Nametextyes
ScopeselectyesOrg, Department, Role
ScopeReftextDepartment code or Role name when Scope != Org
JustificationWindowDaysnumberyesConfigured card-transaction justification period; default 30 days
HighValueThresholdcurrencyReports above this add a Controller approval step
ReimbursementChannelselectyesPayrollAddOn, SeparateACH
EffectiveFromdateyes
EffectiveTodate
Activetoggleyes
PolicyRulesThe declarative rules. One row per per-diem cap, alcohol limit, Line item of ExpensePolicies.line item
FieldTypeRequiredDetails
Policyreferenceyes→ ExpensePolicies
RuleCodetextyes
RuleTypeselectyesPerDiemCap, SingleMealCap, AlcoholLimit, WeekendApprovalRequired, ReceiptRequired, MileageCap, AttendeeListRequired, JustificationRequired, BlockedCategory, FraudPattern
Categoryreference→ ExpenseCategories (null = all)
PerDiemRatereference→ PerDiemRates (when RuleType = PerDiemCap)
CapAmountcurrency
CapPercentnumber0–100 (e.g. AlcoholLimit = 0)
AppliesDayOfWeekselectAny, Mon, Tue, Wed, Thu, Fri, Sat, Sun, Weekend
SeverityselectyesSoft, Hard, Block
MessagetextyesShown to submitter on violation
Activetoggleyes
MileageRatesThe per-tax-year mileage reimbursement rate. Defaults to the IRSmaster
FieldTypeRequiredDetails
TaxYearnumberyes
RateScopeselectyesStandard, Medical, Charitable, MovingMilitary
RatePerMilecurrencyyesUSD per mile
SourceselectyesIRS, CompanyOverride
EffectiveFromdateyes
EffectiveTodate
Activetoggleyes
VehiclesThe submitter's registered personal vehicle(s) used for Line item of Employees.line item
FieldTypeRequiredDetails
Employeereferenceyes→ Employees
VehicleNametextyese.g. "2022 Honda Civic"
LicensePlatetext
StateselectUS state of registration
YearMakeModeltext
InsuranceCarriertext
InsuranceExpirydate
StatusselectyesActive, Inactive
RegisteredAtdateyes
PerDiemRatesGSA-style per-diem rates by US city / locality and effectivemaster
FieldTypeRequiredDetails
LocalityCodetextyesGSA locality code (e.g. "NY-NYC", "DC-WAS", "Standard CONUS")
LocalityNametextyes
StateselectyesUS state (or "DC")
FiscalYearnumberyes
LodgingPerNightcurrencyyes
MIEPerDaycurrencyyesMeals & Incidental Expenses
ConferencePerDaycurrency
EffectiveFromdateyes
EffectiveTodate
SourceselectyesGSA, CompanyOverride
Activetoggleyes
CorporateCardsIssued company cards. One Cardholder per card; a Cardholder maymaster
FieldTypeRequiredDetails
CardNicknametextyes
CardLast4textyesMasked everywhere except cardholder + Finance Reviewer + Audit
Cardholderreferenceyes→ Employees
ProgramTypeselectyesVisaCommercial, MastercardCorporate, AmexCorporate, AmexBusiness
Issuertexte.g. "JPMorgan Chase", "Bank of America", "American Express"
GLAccounttextyesCorporateCardPayable account in fin-accounting
CreditLimitcurrency
StatusselectyesActive, Frozen, Closed
ActivatedAtdateyes
ClosedAtdate
CardTransactionsThe daily transaction feed from the card program. One row pertransaction
FieldTypeRequiredDetails
Cardreferenceyes→ CorporateCards
MerchantNametextyes
AmountcurrencyyesSigned: positive = charge, negative = refund
CurrencyselectyesUSD only at this tier
TransactionDatedateyes
PostedDatedateyes
MCCtextMerchant category code
RawDescriptiontextMasked from non-cardholder, non-Finance, non-Audit
FeedRefIDtextyesCard-program unique ID — dedupe key
MatchedExpenseLinereference→ ExpenseLines (set when matched)
StatusselectyesUnmatched, Matched, Reconciled, Disputed, Excluded
DisputedAtdate
ReconciledAtdateSet on CardReconciliation close
ExpenseReportsThe submitter's report header. One report aggregates manytransaction
FieldTypeRequiredDetails
ReportNumbertextyes
Submitterreferenceyes→ Employees
ReportTitletextyes
PurposetextTrip / project / business reason
ReportDatedateyes
TripStartdate
TripEnddate
ProjecttextOptional default BillableTo for all lines
Policyreferenceyes→ ExpensePolicies (resolved at submit by submitter scope)
TotalAmountformulayesfx: SUM(ExpenseLines.Amount)
ApprovedAmountformulayesfx: SUM(ExpenseLines.ApprovedAmount)
OOPAmountformulayesfx: SUM(ExpenseLines.ApprovedAmount where PaymentMethod = OutOfPocket)
CardAmountformulayesfx: SUM(ExpenseLines.ApprovedAmount where PaymentMethod = CorporateCard)
ViolationCountformulayesfx: COUNT(PolicyViolations across lines)
StatusselectyesDraft, Submitted, ApprovedByMgr, ApprovedByFinance, Reimbursed, Rejected, Held
SubmittedAtdate
RejectedAtdate
RejectionReasontext
HighValueformulayesfx: TotalAmount > Policy.HighValueThreshold
SubmissionRevisionnumberyesIncrement on resubmission after a material change; prior decision evidence retained
ApprovalCompleteformulayesfx: all required Manager, Finance and conditional Controller decisions for this SubmissionRevision are Approved by permitted non-submitter actors
EmployeePayableAmountformulayesfx: SUM(ExpenseLines.ApprovedAmount where PaymentMethod IN (OutOfPocket, Mileage, PerDiem) AND Status = Approved)
ExpenseLinesThe line grain. One row per receipt / per per-diem day / per Line item of ExpenseReports.line item
FieldTypeRequiredDetails
Reportreferenceyes→ ExpenseReports
LineDatedateyes
Categoryreferenceyes→ ExpenseCategories
Vendortextyes
Amountcurrencyyes
CurrencyselectyesUSD
Descriptiontext
BillableTotextProject code (validated against PM Projects on submit)
TaxAmountcurrencySales tax portion of Amount, when broken out
DepartmenttextyesDepartment cost code snapshotted for the report revision
PerDiemRatereference→ PerDiemRates; reviewed basis for per-diem lines
GLAccounttextyesDefaults from Category.DefaultGLAccount; any submitter suggestion requires Finance review
PaymentMethodselectyesOutOfPocket, CorporateCard, PerDiem, Mileage
CardTransactionreference→ CardTransactions (set on match)
ApprovedAmountcurrencyInitialized from Amount for review; final value requires the authorized Finance decision
Disallowancecurrencyfx: Amount − ApprovedAmount when partial
ReceiptRequiredformulayesfx: Amount > Category.ReceiptRequiredAbove
ReceiptStatusselectyesNotRequired, Missing, Attached, Verified
StatusselectyesDraft, Submitted, Approved, Rejected, Held
ReceiptsThe supporting documentation — phone snap, PDF, emailed Line item of ExpenseLines.line item
FieldTypeRequiredDetails
ExpenseLinereferenceyes→ ExpenseLines
FileURLtextyes
FileTypeselectyesImage, PDF, EmailEML
UploadedAtdateyes
OCRStatusselectyesPending, Parsed, LowConfidence, Failed, Skipped
OCRVendortext
OCRDatedate
OCRTotalcurrency
OCRMerchantTaxIDtextEIN when present on receipt
OCRConfidencenumber0–100
VerifiedtoggleSet true on Finance Reviewer sign-off
MileageEntriesOne row per business trip drive. Either the user enters Line item of ExpenseLines.line item
FieldTypeRequiredDetails
ExpenseLinereferenceyes→ ExpenseLines (the auto-created Mileage line)
Vehiclereferenceyes→ Vehicles
EntryDatedateyes
FromAddresstext
ToAddresstext
RoundTriptoggleyes
MilesnumberyesOne-way × 2 if RoundTrip
MileageRatereferenceyes→ MileageRates (resolved from EntryDate.year)
CalculatedReimbursementformulayesfx: Miles × MileageRate.RatePerMile
Purposetextyes
MapsValidatedtoggleSet true after Google Maps Distance Matrix call
SourceselectyesManualMiles, GoogleMaps, OdometerCapture
PolicyViolationsOne row per breached PolicyRules row per ExpenseLine. The Line item of ExpenseLines.line item
FieldTypeRequiredDetails
ExpenseLinereferenceyes→ ExpenseLines
Rulereferenceyes→ PolicyRules
RuleTypeselectyesPerDiemCap, SingleMealCap, AlcoholLimit, WeekendApprovalRequired, ReceiptRequired, MileageCap, AttendeeListRequired, JustificationRequired, BlockedCategory, FraudPattern
SeverityselectyesSoft, Hard, Block
Messagetextyes
ExceededBycurrencyAmount over the cap (for cap-type rules)
JustificationtextRequired when Severity = Hard
AcknowledgedByreference→ Employees (the approver who passed it through)
AcknowledgedAtdate
StatusselectyesOpen, Justified, Waived, Blocking
ExpenseApprovalStepsThe audit trail of approver actions on the report. One row per Line item of ExpenseReports.line item
FieldTypeRequiredDetails
Reportreferenceyes→ ExpenseReports
ReportRevisionnumberyesExpenseReports.SubmissionRevision to which the decision applies
StepNumbernumberyes
StepTypeselectyesManager, Finance, Controller, Audit
Approverreferenceyes→ Employees
ActionselectApproved, Rejected, Held, Delegated, Pending
ActionAtdate
Commenttext
ApprovedAmountcurrencyThis approver's running ApprovedAmount snapshot
ReimbursementsThe paid-out record. One row per ExpenseReport pertransaction
FieldTypeRequiredDetails
ReimbursementNumbertextyes
Reportreferenceyes→ ExpenseReports
Employeereferenceyes→ Employees
AmountcurrencyyesEmployeePayableAmount at final approval; includes eligible OutOfPocket, Mileage and PerDiem lines, never company-card costs
ReimbursementMethodselectyesPayrollAddOn, SeparateACH
PayrollOneTimePaymentReftextSet when ReimbursementMethod = PayrollAddOn
PaymentRunReftextAP PaymentsMade ID when ReimbursementMethod = SeparateACH
SourceKeytextyesStable report revision and reimbursement identity; unique across retries
PaymentConfirmationReftextConfirmed external payment reference; scheduling alone cannot populate this
StatusselectyesPending, Scheduled, Paid, Returned, Cancelled
ScheduledFordateNext pay date or next AP run date
PaidAtdate
MealsAndEntertainmentThe meals and entertainment classification log for tax review. One rowtransaction
FieldTypeRequiredDetails
ExpenseLinereferenceyes→ ExpenseLines
ClassificationselectyesMeal-Travel, Meal-Client, Entertainment-Client, Meal-Office, Meal-Conference
BusinessPurposetextyes
AttendeeNamestextyesComma-separated attendee names captured for IRS §274 audit display/export only; never queried as relations. Per-attendee tracking would require an Attendees line-item child table — out of scope for v1.
AttendeeCountnumberyes
ClientCompanyNametext
DeductiblePercentnumberyesReviewed percentage for classification and expense date; do not apply a universal default or infer tax eligibility from reimbursement approval
DeductibleAmountformulayesfx: ExpenseLine.ApprovedAmount × DeductiblePercent / 100
CardReconciliationsPeriod-end (typically monthly) reconciliation per CorporateCard.transaction
FieldTypeRequiredDetails
ReconciliationNumbertextyes
Cardreferenceyes→ CorporateCards
StatementPeriodStartdateyes
StatementPeriodEnddateyes
OpeningBalancecurrencyyesIssuer statement opening balance
StatementPaymentscurrencyyesIssuer payments not already included as signed CardTransactions; never subtract the same payment twice
StatementBalancecurrencyyesClosing balance reported by the issuer
ImportedTransactionsTotalformulayesfx: SUM(CardTransactions.Amount where Card = self.Card AND PostedDate in period)
MatchedTotalformulayesfx: SUM(CardTransactions.Amount where Card = self.Card AND Status IN (Matched, Reconciled) AND MatchedExpenseLine.Status = Approved AND MatchedExpenseLine.Report.ApprovalComplete = true AND PostedDate in period)
UnmatchedTotalformulayesfx: ImportedTransactionsTotal − MatchedTotal
Differenceformulayesfx: OpeningBalance + ImportedTransactionsTotal − StatementPayments − StatementBalance
StatusselectyesInProgress, Balanced, Unbalanced, Approved
PreparedByreferenceyes→ Employees
ApprovedByreference→ Employees (Controller / CFO signs the reconciliation)
ApprovedAtdate
EmployeesA scoped employee identity directory synchronized from the organization identity or HR source. This reference supports ownership and approval attribution; it does not add payroll or HR administration. Role membership alone never grants access to every directory field. External auditors and portal users receive only the identities needed for their granted work.master
FieldTypeRequiredDetails
EmployeeNumbertextyesStable source identifier; unique within the organization
NametextyesDisplay name for an assigned owner or approver
UserKeytextyesBound to the authenticated platform user; never supplied as authority by a client
DepartmenttextOrganization-scoped department key
Managerreference→ Employees; synchronized reporting relationship
ActivebooleanyesInactive identities retained for historical attribution; cannot receive new work
ERP•AI workspace

Start now Expense Reporting System

Create your ERP.AI account and get started with Proto.

Start now Download agent
Previous · reference 2 of 6Reports and analyticsNext · reference 4 of 6Integrations

Customize Expense Reporting System. With Proto, your desktop AI agent.

Ask Proto to help you customize Expense Reporting System.

Customize
Expense Reporting System.
Ask: “Adapt Expense capture.”
ProtoYour desktop AI agent
Download nowFree install · ~1 GB · AI usage extra
macOSWindowsLinux

Bring your first idea to Proto.

Keep this page open while you install Proto. Connect your account and model, then paste this into a new chat.

AI usage is paid separately. You can edit the prompt before copying.

ERP.AI

Business apps and the Proto desktop agent.

  • Business Apps
  • Proto
  • Workflows
  • Headless SaaS
  • Enterprise
  • Pricing
  • Contact
  • Terms of Service
  • Privacy Policy
  • Cookie Policy
© 2026 ERP•AI. All rights reserved.
System status

Your Privacy, Your Choice

We use essential cookies to run the site and optional cookies for features, analytics, and relevant content. See Cookie policy

Manage Your Cookie Preferences

We use cookies to enhance your experience, analyze site traffic, and serve relevant content. By clicking "Accept All," you agree to our use of cookies. You can customize your preferences at any time.

Learn more about how we use cookies

These cookies are required for the website to function properly. They ensure security, enable basic features like page navigation, and store user session data. You cannot disable these cookies.

These cookies enable additional features that enhance your experience, such as live chat, video playback, personalized content recommendations, and remembering user preferences.

These cookies help us understand how visitors interact with our site by collecting anonymous usage data. This allows us to measure performance, detect issues, and continuously improve the user experience.

These cookies allow us and advertising partners, including X, to deliver ads tailored to your interests. They track browsing habits across sites to provide relevant advertising and measure ad effectiveness.