Skip to main content

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:

GroupWhat it holds
TransactionThe link between the expense and the card charge that paid for it
CodingEverything your ERP needs to cost the expense
TotalsTax and total
DatesIssue, 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.

FieldWhat it is
Matched TransactionThe card charge this expense is attached to. Agave sets it when it finds a match, and you can set it by hand
UserThe person the expense belongs to. For a field app receipt, this is the submitter, and it decides which cards matching considers
Reversal ofSet when this expense reverses another one, such as a refund
ERP card accountThe 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​

FieldWhat it sets
VendorThe vendor record in your ERP
PayeeThe name on the receipt, when it differs from the vendor record
CustomerThe customer the cost belongs to
ItemThe ERP item, where your system uses one
Ledger AccountThe GL account the expense posts to
AssetThe asset the cost belongs to
EmployeeThe ERP employee record
DepartmentThe 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:

SourceWhat it fills
The receiptTotal, subtotal, tax, vendor name, date
The matched transactionVendor, date, amount, ERP card account, ERP employee
A coding profileVendor, department, ledger account, cost code, cost type, description
The submitterAnything 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:

  1. Typed on the expense. Anything a person typed here wins.
  2. Carried from a reversal. Copied from the expense this one reverses.
  3. Typed by the field user. Entered on the upload form.
  4. Set by a coding profile. The profile's saved description.
  5. 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.