Coding an Expense
Coding an expense means filling in the fields your ERP needs to post it: which job it belongs to, which budget line it hits, and which vendor and account. Agave fills in what it can from the receipt and the matched transaction. You fill in the rest.
This guide is for reviewers and admins working expenses in the Agave web app. Field users submitting from their phone see a shorter version of the same form.
This guide covers:
- The four groups of fields on an expense
- Why project comes before job costing
- Where each pre-filled value comes from
- What changes when a coding profile is applied
For how values get filled in before you open the expense, see How Receipt Matching and Automatic Coding Work.
Before you start
- Your ERP data has to be in Agave. Projects, vendors, cost codes, and ledger accounts only show up in a dropdown once Agave has fetched them from your ERP. If a record is missing, refresh your ERP data or check that the connection is healthy.
- Your account decides which fields you see. Any field below can be hidden or required on your account, so your form may be shorter than this guide.
The four field groups
An expense is laid out in four groups, in this order:
| Group | What it holds |
|---|---|
| Transaction | The link between the expense and the card charge that paid for it |
| Coding | Everything your ERP needs to cost the expense |
| Totals | Tax and total |
| Dates | Issue, due, and posting dates, plus accounting period |
The groups run top to bottom on the right side of the expense, next to the receipt:
Transaction
These fields record which charge this expense accounts for.
| Field | What it is |
|---|---|
| Matched Transaction | The card charge this expense is attached to. Agave sets it when it finds a match, and you can set it by hand |
| User | The person the expense belongs to. For a field app receipt, this is the submitter, and it decides which cards matching considers |
| Reversal of | Set when this expense reverses another one, such as a refund |
| ERP card account | The card account in your ERP. Filled from the matched card when empty, and never overwritten |
Changing Matched Transaction fixes more problems than any other correction on this screen. Most coding trouble traces back to the wrong charge being attached.
Coding
This is where most of the work happens.
Project comes before job costing
Select Project first. The Job Costing field doesn't appear until a project is selected, because budget options are scoped to the project. Agave has nothing to offer until it knows which job you mean.
Changing the project later clears the sub job and rebuilds the budget options for the new project. That's on purpose. A cost code that's valid on one job is often meaningless on another.
Job Costing is what Expense Management calls your ERP's budget code. It resolves into three parts:
- Sub Job
- Cost Code
- Cost Type
If your team codes those three separately instead of picking one budget line, turn on Split Budget Fields under Settings > Account. Job Costing then shows as three separate fields.
Not every ERP uses all three. QuickBooks Online has no cost codes, so it shows Class in the same spot.
With a project selected, Job Costing appears below it:
The rest of the coding fields
| Field | What it sets |
|---|---|
| Vendor | The vendor record in your ERP |
| Payee | The name on the receipt, when it differs from the vendor record |
| Customer | The customer the cost belongs to |
| Item | The ERP item, where your system uses one |
| Ledger Account | The GL account the expense posts to |
| Asset | The asset the cost belongs to |
| Employee | The ERP employee record |
| Department | The department the expense belongs to |
Totals and Dates
Tax and Total come off the receipt, unless Expense Amount Source is set to Get amount from transaction.
When Agave takes the date from a matched transaction, it stamps the same value on Issue Date, Due Date, and Posting Date. Accounting Period decides which period the expense posts into.
Where pre-filled values come from
Most fields already have a value when you open an expense. Four sources put them there:
| Source | What it fills |
|---|---|
| The receipt | Total, subtotal, tax, vendor name, date |
| The matched transaction | Vendor, date, amount, ERP card account, ERP employee |
| A coding profile | Vendor, department, ledger account, cost code, cost type, description |
| The submitter | Anything they typed in the field app, including description |
Whether the receipt or the transaction wins on vendor, date, and amount is set under Settings > Account. The transaction only overwrites the receipt while the expense is a draft. See What a match fills in.
Description has its own order
Description is the one field with a fixed pecking order. A weaker source never overwrites a stronger one:
- Typed on the expense. Anything a person typed here wins.
- Carried from a reversal. Copied from the expense this one reverses.
- Typed by the field user. Entered on the upload form.
- Set by a coding profile. The profile's saved description.
- Generated by Agave. Built from your account's description template.
Hover the field to see which source wrote the current value. When a coding profile set it, the tooltip names the profile.
This is the expense description. What syncs to your ERP line items can be different: with Use Matched Transaction As Description on, the line items carry the transaction name, the user, and the card mask.
How applying a coding profile works
Selecting a coding profile fills several fields at once from saved defaults. You can still edit every field afterward.
A profile never sets the project. Profiles are company-level, so you still pick the job.
An overhead profile removes the project field. Overhead expenses aren't job-costed. Selecting an overhead profile hides Project, and if one was already selected, it's dropped along with the sub job and budget tied to it.
If a user has a Default Coding Profile assigned, it's applied automatically when they submit, so their expenses arrive partly coded.
See How Coding Profiles and Policies Work.
When a field won't accept a value
Job Costing isn't showing.
- Select a Project first.
- If a project is selected, check whether an overhead profile is applied. Overhead expenses have no job costing.
A cost code you expect is missing.
- Confirm the Project is right, since budget options are scoped to it.
- Confirm the cost code exists on that job in your ERP.
A dropdown is empty.
- Agave hasn't fetched those records yet, or the ERP connection needs attention.
The Project field is gone.
- An overhead coding profile is applied. Switch to a standard profile to job-cost the expense.
Related guides
- How Receipt Matching and Automatic Coding Work: how values arrive before you open the expense
- How Coding Profiles and Policies Work: saved defaults, and who can reach them
- Reviewing and Approving Expenses: checking coding and sending the expense on
- Account Settings: Split Budget Fields and the vendor, date, and amount source settings