Skip to content

Per Diem Administration

Required Permissions

Timesheets > User: all timesheets to view per diem records. Accounting > Invoicing or higher to mark as paid and create journal entries.

How per diem works

Per diem is a flat daily cash payment to field service engineers for time spent away from home or office on Nugget-related work. It's calculated automatically from time entries — no manual computation, no expense reports, no trip logging.

When an FSE logs time against an per-diem-eligible task, the system creates (or updates) a per diem record for that employee and date. Records appear in real time as time is logged.

FSE logs time on offsite job

Per diem record auto-created
(one per employee per calendar day)

Admin reviews pending per diems

Mark as Paid → journal entry created

Per diem rates

Hours worked offsite (per day)TypeAmount
8 or more hoursFull day$100
4 to 8 hoursHalf day$50
Less than 4 hoursNo record

Hours are summed across all per-diem-eligible tasks for the same employee on the same day. Two 4-hour jobs = one full-day per diem.

These thresholds and amounts are configurable in Settings > Accounting > Per Diem Tracking.

Reviewing per diems

Navigate to Accounting > Reporting > Management > Per Diems.

The list defaults to the Pending filter — these are per diems that haven't been paid yet. Each record shows:

  • Employee name and date
  • Total offsite hours
  • Per diem type (full or half day)
  • Amount
  • Whether it's a service task (Service Task column)

Use the filters and group-by options to slice the data:

  • This Month / Last Month — time-based review
  • Employee — review by person
  • Service Tasks / Non-Service — separate by job type
  • Status — pending vs. paid

Marking as paid

  1. Open a pending per diem record
  2. Review the source timesheets in the Source Timesheets tab
  3. Click Mark as Paid

This creates a journal entry with:

  • Debit to the per diem GL account (with analytic distribution)
  • Credit to the per diem GL account (no analytic)

The GL account is selected automatically based on the task type:

  • Service tasks → Per Diem Account (Service)
  • All other per-diem-eligible tasks → Per Diem Account (standard)

If you need to reverse a payment, open the record and click Reset to Pending. This only works if the linked journal entry has been reversed or cancelled first.

GL account routing

Per diem journal entries post to different accounts depending on whether the work was a service task:

Task typeAccount used
Service task (is_service_task = True)Per Diem Account (Service)
Non-service taskPer Diem Account

If the Service account is not configured, the system falls back to the standard account.

What happens when things change

Per diem follows a simple rule: pending records always reflect current state; paid records are frozen.

EventEffect on per diems
FSE edits timesheet hoursPending per diem updates automatically
FSE deletes a timesheetPending per diem recalculates (or deletes if below threshold)
Admin changes task's analytic accountUnvalidated timesheets update, pending per diem rebuilds distribution
Admin toggles task Per Diem Eligible flagPending per diems created or removed
Per diem is already paidNo changes — the journal entry is the audit trail

Configuration

Required Permissions

Settings access required to configure per diem.

All settings are at Settings > Accounting > Per Diem Tracking:

SettingPurposeDefault
Per Diem AccountGL account for non-service per diem entries(must be set)
Per Diem Account (Service)GL account for service task per diem entries(falls back to standard)
Full Day AmountPayment for a full day$100.00
Half Day AmountPayment for a half day$50.00
Full Day ThresholdMinimum hours for full day8.0 hours
Half Day ThresholdMinimum hours for half day4.0 hours

WARNING

The Per Diem Account must be configured before "Mark as Paid" will work. Without it, the journal entry has no account to post to.

Nugget Scientific internal documentation