Struxen Docs

Direct costs

The job costs incurred outside a commitment, entered in batches or read from a receipt, with an owned and rented equipment report

Direct costs are what the job spends outside its commitments: self-perform labor, direct-bought material, owned and rented equipment, and miscellaneous invoices. Open Direct Costs in the LEDGER rail.

This is the one financial tool a superintendent gets at STANDARD by default, because entering field costs is the point of the module. Approving one is Direct Costs ADMIN.

Enter costs

Batch entry is the primary path, because field entry is a batch reality: a week of equipment time, or a stack of receipts. The dialog is a keyboard-first grid, and the save is all or nothing. A failed batch comes back with per-row messages rendered against the rows, so a 20-row batch is fixed in one pass.

Each row carries:

FieldNotes
KindLabor, Material, Owned Equipment, Rented Equipment, Invoice, Other
DateThe date the cost was incurred, not the date it was entered
Budget codeValidated against the project's effective cost-code structure
Cost typeOne of the eight WBS cost types, checked for consistency with the kind
Description
VendorRented equipment and invoices usually have one; labor rarely does
AmountSigned, so a return or credit is negative and renders as one
HoursLabor only, to two decimals
Quantity, unit of measure, unit cost
Location
Invoice number
ReceiptA Drive item holding the scan

Amounts are signed. A return is a negative direct cost, first class, rather than being silently made positive.

Quantity times unit cost has to agree

If a row carries both a quantity and a unit cost, the extended amount must equal the amount. A mismatch is refused and the difference is reported. Nothing is auto-corrected: the product will not decide for you which of the three figures you meant.

Read a receipt

Extract runs one metered AI read over a receipt or invoice scan and returns a preview with per-field confidence. Confirming seeds a single batch row. Discarding writes nothing. The source file caps at 10 MB.

Lifecycle

StatusMeaning
DraftEntered. Moves no budget column
ApprovedCounted. Feeds the budget's Direct Costs column and the equipment report
VoidTerminal
ActionFromPermission
ApproveDraftDirect Costs ADMIN
VoidDraftDirect Costs STANDARD
VoidApprovedDirect Costs ADMIN

There is no un-approve. A draft is not yet a cost and a void never was, so neither moves a budget column. Only Approved counts.

Each cost carries an audit trail, readable from its detail view.

The equipment report

Equipment Report in the Period Reports group groups approved owned and rented equipment costs by budget code for a month, with an owned total, a rented total and a combined total.

Draft and void rows are excluded, and the report states how many it excluded, so a month that looks light is visibly light rather than quietly wrong.

It ships inside the pay-application package.

Limits

LimitValue
Rows in one batch50
Direct costs per project20,000
Hours per row100,000

Troubleshooting

A batch row is refused with an extension mismatch. The row's quantity times its unit cost does not equal its amount. The message gives the difference. Fix whichever of the three is wrong.

A cost was approved by mistake. It cannot be returned to draft. Void it, which needs Direct Costs ADMIN, and re-enter it.

The budget's Direct Costs column shows unavailable. The direct-cost read was truncated. A partial read is refused rather than reported as a smaller number, so the column says it could not be read.

On this page