Latner Documentation

Assets, Depreciation & Sale Gain/Loss

This page describes how Latner manages fixed assets, calculates depreciation, handles sales/disposals/conversions, and what journal entries are pushed to the connected accounting system (Xero, MYOB, Sage).


1. Overview

Latner keeps a fixed-asset register alongside the equipment register. Every depreciable thing (a machine, a batch of bulk gear, or a standalone non-equipment asset) is an Asset. Assets are depreciated monthly on two independent books:

  • Account (book) depreciation — drives the journal entries pushed to the accounting integration.

  • Tax depreciation — a parallel calculation kept for reporting only. It is never posted or journalled.

When equipment is sold, disposed, or converted, the corresponding asset movement flows into the next depreciation run, which works out the book value at the date of the movement and (for sales/disposals) the resulting gain or loss. Everything is then aggregated, posted, and synced to the accounting system as a single manual/general journal per run.

The feature is gated by the ASSET_MANAGEMENT financial setting.


2. Key Concepts

Asset

Field group

Purpose

number, description, branch, group

Identity. Asset Groups are user-defined buckets (also used for account-code mapping and journal aggregation).

type

SERIALIZED (quantity is always 1) or BULK (quantity tracked).

equipment

Optional 1:1 link to an Equipment record. Equipment-linked assets inherit category/class/model for account mapping. Non-equipment assets (e.g. office fit-out) work too.

header / sub-assets

Bulk assets have a header asset plus one sub-asset per purchase batch — quantities, values and movements live on the sub-assets. Serialized assets can have sub-assets representing improvements (capital additions depreciated separately). Sub-assets of sub-assets are not allowed.

purchase_price, purchase_date, activation_date

Cost base. purchase_price is always a unit price; original cost = purchase_price × original_quantity.

status

`PENDING_ACTIVATION → ACTIVE → (INACTIVE

Book fields (×2)

book_value, depreciation_ltd, depreciation_date, depreciation_quantity, eofy_unit_value — and a tax_* twin of each for the tax book.

Depreciation Types

A DepreciationType defines a rate and a method:

Method

Calculation

STRAIGHT_LINE

Fixed % of original cost per year.

DIMINISHING

% of the carrying value at the start of the year. Two flavours: financial-year based (use_financial_year — resets the base at EOFY using the stored eofy_unit_value) or anniversary based (base = cost × (1 − rate)^whole-years-since-activation).

WRITE_OFF

Writes the full value off immediately (first depreciation line takes the book value to zero).

Defaults are resolved in this order when an asset is created: explicitly chosen → the Equipment Class default → the header asset's type → the DEFAULT_DEPRECIATION_TYPE / DEFAULT_TAX_DEPRECIATION_TYPE system settings. Account and tax types are independent.


3. Asset Lifecycle

Creation paths

  1. Purchase Order receipt — a PO line of type Asset creates asset(s) on receipt (one per unit for serialized, one bulk asset for a quantity) with the PO's unit cost and receipt date as purchase price/date. Equipment-type PO lines create the equipment and its linked asset(s) similarly.

  2. Bulk equipment adjustments — increasing bulk equipment quantity (e.g. "New Purchase" adjustment) creates a new sub-asset for that batch (requires BULK_ASSET_MANAGEMENT).

  3. Equipment conversion — converting equipment creates new asset(s) carrying over value from the source assets (see §5.3).

  4. Manual / import — via the Assets page.

Activation

Assets start as PENDING_ACTIVATION (unless AUTO_ACTIVATE_ASSET is on). On activation:

  • activation_date defaults to the purchase date (or today),

  • both books' starting values are set: book_value = tax_book_value = purchase_price × original_quantity.

Depreciation only accrues from the activation date. Assets with no purchase price or no depreciation type cannot be depreciated.

Depreciation continues to run for SOLD / DISPOSED / CONVERTED assets so that movements which happened since the last run are still processed; it stops naturally when book value and quantity reach zero.


4. Sales, Disposals & Conversions (Movements)

Selling/disposing equipment (from the Equipment screens, a Sales Order, or an equipment-sale invoice line) creates an Equipment Movement (SOLD, DISPOSED, ADJUSTMENT_DISPOSAL, CONVERTED) with a movement date and, for sales, a unit sale price.

Each such movement is automatically assigned to assets as an Asset Movement:

  • Serialized equipment — assigned to its single linked asset; asset quantity → 0 and status becomes SOLD / DISPOSED / CONVERTED, with sold_disposed_date recorded.

  • Bulk equipment — assigned across the active sub-assets on a FIFO basis by purchase date (oldest batches consumed first). A sub-asset whose quantity hits zero takes the terminal status.

The financial effect (book value written off, gain/loss on sale) is not calculated at movement time — it is worked out by the next depreciation run, which depreciates up to the movement date first (§5.2).


5. Depreciation Calculation

5.1 Monthly lines

Depreciation is generated as calendar-month lines per asset, from the day after the last depreciated date (or the activation date) up to the end of the last completed month (in the branch's timezone). For each line:

daily rate  = yearly depreciation ÷ days in the relevant year   (per method, §2)
line amount = daily rate × days in the period, capped at the remaining book value

  • Straight line uses the "depreciation year" anniversary window from the activation date (365/366 days).

  • Diminishing (financial year) divides by days in the financial year; the year-opening base is eofy_unit_value × quantity (or original cost in the first year). When a line ends on the configured END_OF_FINANCIAL_YEAR date, the closing unit value is snapshotted into eofy_unit_value for next year.

  • Write-off takes the whole remaining value in the first line.

After each run the asset's book_value, depreciation_date, depreciation_quantity, depreciation_ltd (= original cost − book value) and eofy_unit_value are rolled forward. The tax book does the same independently using the tax depreciation type.

5.2 Movements mid-period

When an asset has sold/disposed/converted movements inside a month, the month is split at each movement date. Depreciation is charged from the period start up to the movement date first, then the movement is valued against the freshly depreciated book value:

unit value        = book value after depreciation ÷ quantity
sold_value        = unit value × quantity sold          (book value of what was sold)
sold_amount       = sale price × quantity sold          (proceeds)
disposed_value    = unit value × quantity disposed      (book value written off)
converted_value   = unit value × qty converted × (1 − scrapped %)
scrapped_value    = unit value × qty converted × scrapped %
end book value    = book value − sold − disposed − converted − scrapped

So the month of a sale includes a partial depreciation charge up to the sale date, and gain/loss is measured against the book value as at that date.

5.3 Conversions

An Equipment Conversion turns one set of equipment into another (e.g. splitting or merging). Value handling:

  • Source assets are depreciated (in preview) up to the conversion date to establish their current account and tax values.

  • A scrapped proportion (100% − sum of the new items' value proportions) is written off.

  • New equipment/assets are created with: purchase price = proportional share of the original cost, opening book_value / tax_book_value = proportional share of the converted (current) value, and depreciation dates set to the day before conversion — so the new asset picks up depreciation seamlessly from the conversion date.

Note: converted and scrapped values adjust asset book values but currently generate no journal lines (see §7.4).


6. Depreciation Run Workflow

Run from Financials → Depreciation in the UI. Separate runs exist for the Account book and the Tax book (choose the run type); only Account runs are ever posted/journalled.

  1. Preview (Depreciation Run page) — pick branch (optional), asset type (optional) and end date. A background task generates preview lines for every eligible asset (active or with unprocessed movements) and a downloadable CSV/XLSX for review.

  2. Create — once happy, the preview is committed: real DepreciationDetail (or TaxDepreciationDetail) rows are written with status COMPLETED, and each asset's book fields are rolled forward. This is atomic — a failure rolls back the whole run.

  3. Post (Depreciation Posting page) — all COMPLETED account-book details are aggregated (see §7.1) into PostedDepreciationDetail rows and marked POSTED.

  4. Sync — posting automatically queues a sync of the posted lines to every active accounting integration for the company. Each sync run pushes one manual journal containing all lines. Results are visible on the Depreciation Sync page (per-run status, error messages, and the accounting-system document reference).


7. Journal Entries

7.1 Aggregation

Journals are not per-asset. Posted lines aggregate details by month + branch + asset group, optionally further split by equipment category / class / model depending on the ASSET_GROUPING_LEVEL setting. Each aggregated line carries: total depreciation, and for sales/disposals/conversions both the original cost and the book value of the units moved (their difference = accumulated depreciation to reverse).

Line descriptions look like: 2026/07/31 - Sydney - <model> - <class> - <group> prefixed with Depr.:, Sold: or Disposed:. The journal narration/memo is Latner Depreciation Run <id> and the journal date is the latest detail date in the batch.

7.2 Monthly depreciation

For each aggregated line with a depreciation amount:

Account

DR

CR

Depreciation Expense

depreciation for the month


Accumulated Depreciation


depreciation for the month

7.3 Disposal (written off, no proceeds)

Where disposed cost = original cost of disposed units and disposed book value = their book value at the disposal date:

Account

DR

CR

Accumulated Depreciation

disposed cost − disposed book value


Loss on Sale/Disposal

disposed book value


Fixed Asset (at cost)


disposed cost

The asset comes off the balance sheet at cost, its accumulated depreciation is reversed, and the remaining book value hits the P&L as a loss.

7.4 Sale

Where gain/loss = proceeds − book value at the sale date:

Account

DR

CR

Asset Sale Clearing account

proceeds


Accumulated Depreciation

sold cost − sold book value


Gain on Sale (if gain)


gain

Loss on Sale/Disposal (if loss)

loss


Fixed Asset (at cost)


sold cost

Notes:

  • The proceeds are debited to a clearing account (the integration's "Asset Cash Account"), not to revenue — the customer invoice raised for the sale syncs separately through the normal invoice flow and provides the other side. The clearing account should net to zero once both have posted.

  • Gain vs loss is decided per aggregated line, so within one group/branch/month, individual asset gains and losses net against each other and the net amount posts to a single gain or loss account.

  • Conversions/scrapping produce no journal lines. The converted/scrapped values are tracked on the posted details but are not currently included in the journal push.

  • Tax depreciation is never journalled.

7.5 Worked examples

Asset: cost $12,000, accumulated depreciation to the sale date $4,000 → book value $8,000.

Sold for $9,500 (gain of $1,500):

Account

DR

CR

Asset Sale Clearing

9,500


Accumulated Depreciation

4,000


Gain on Sale


1,500

Fixed Asset at cost


12,000

Sold for $7,000 (loss of $1,000):

Account

DR

CR

Asset Sale Clearing

7,000


Accumulated Depreciation

4,000


Loss on Sale/Disposal

1,000


Fixed Asset at cost


12,000

Disposed (no proceeds):

Account

DR

CR

Accumulated Depreciation

4,000


Loss on Sale/Disposal

8,000


Fixed Asset at cost


12,000

7.6 Integration specifics

All three integrations post the same economic entries as a single journal per sync run:

Integration

Document

Debit/Credit convention

Xero

Manual Journal (status POSTED)

Positive line amount = debit, negative = credit

MYOB

General Journal

Explicit IsCredit flag per line

Sage

GL journal

Explicit debit/credit lines


8. Account Code Configuration

Per-line accounts (resolved per aggregated journal line)

Three account-code config types drive the per-line accounts, each configured per integration (with optional branch-specific overrides):

Config type

Used for

DEPRECIATION_EXP

Depreciation Expense (P&L)

DEPRECIATION_ACC

Accumulated Depreciation (balance sheet)

EXPENSE (Asset/Equipment line types)

Fixed Asset at-cost account credited on sale/disposal

Each resolves through the same precedence chain — the most specific configured scope wins:

Equipment Model → Equipment Class → Equipment Category → Asset Group → Line-type default

The line-type default is the EQUIPMENT line type for equipment-linked lines, otherwise the ASSET line type (for non-equipment assets).

Fixed integration settings (one account each, per integration)

Setting

Purpose

ASSET_DISPOSAL_GAIN_ACCOUNT

Gain on sale

ASSET_DISPOSAL_LOSS_ACCOUNT

Loss on sale / disposal write-off

ASSET_CASH_ACCOUNT

Sale-proceeds clearing account


Setting

Effect

ASSET_MANAGEMENT

Enables the Asset/Depreciation module.

BULK_ASSET_MANAGEMENT

Auto-creates sub-assets for bulk asset purchase batches.

AUTO_ACTIVATE_ASSET

Assets activate on creation instead of PENDING_ACTIVATION.

ASSET_GROUPING_LEVEL

Journal aggregation level: Asset Group, Equipment Category, Class, or Model.

DEFAULT_DEPRECIATION_TYPE / DEFAULT_TAX_DEPRECIATION_TYPE

Fallback depreciation types for new assets.

END_OF_FINANCIAL_YEAR

Day/month of EOFY — controls diminishing-value year resets.