Skip to content
Demiton

Profit and loss

Profit and loss for a period.

Part of Financials in the register catalog.

Register ID
profit_and_lossUse this name to ask for the register. The API calls it a shelf ID.
Each record is
A stateThe current value of something, replaced when it changes.
Status
AvailableFilled today from connected systems, uploads or public data.
Data
OrganisationPrivate to each organisation's own workspace.
Version
v1Current version.

Connectors

Connected today

Demiton keeps this register current from these systems now.

On the roadmap

Systems in the planned connector rollout that can fill this register. Partial means the system holds only some of its fields.

  • MYOB Acumatica
  • MYOB BusinessPartial
  • ProcorePartial

Fields

14 fields: 5 required, 9 optional.

Required

Every record carries these fields.

project_idText

The project (BC job) the snapshot belongs to; the fact's subject anchor.

Example: BWG-2025-001

financial_periodText

The accounting period the snapshot covers.

Example: 2026-06

source_systemText

The bound ERP the snapshot was read from.

Example: D365_BUSINESS_CENTRAL

budget_amountDecimal numberUnit: AUD

The project budget at the snapshot (BC Total_Budget)

Example: 2850000

actual_amountDecimal numberUnit: AUD

Actual cost to date (BC Total_Cost)

Example: 1620000

Optional

Present when the source system records them.

currencyCurrency codeISO 4217, e.g. AUD

The currency the amounts are in; today the field names hard-code AUD and the writer passes currency_code="AUD"

Example: AUD

bc_job_noText

The Business Central job number the fact was read for; the join key between the fact and the project spine.

Example: BWG-2025-001

variance_amountDecimal numberUnit: AUD

budget_amount - (actual_amount + commitments_amount); the writer's variance_aud

Example: 820000

commitments_amountDecimal numberUnit: AUD

Open purchase-commitment value (BC Total_Commitments)

Example: 410000

contract_value_amountDecimal numberUnit: AUD

The contracted value of the job (BC Total_Contract_Value)

Example: 2980000

claimed_to_date_amountDecimal numberUnit: AUD

Value invoiced to date (BC Total_Invoiced)

Example: 1690000

gross_margin_amountDecimal numberUnit: AUD

Revenue less actual cost (Total_Revenue(abs) - Total_Cost)

Example: 360000

gross_margin_pctDecimal numberUnit: percent (%)

gross_margin_amount / revenue * 100

Example: 18.2

summaryText

The one-line human-readable financial position, for citation/search.

Example: Emerald Street Rejuvenation is 56.8% cost-complete agains…

Example record

A sample from Bridgeworks Group, Demiton's demonstration company. The values are illustrative; the shape is exactly what the contract describes.

profit_and_loss.example.json
{
"actual_amount": 1620000,
"bc_job_no": "BWG-2025-001",
"budget_amount": 2850000,
"claimed_to_date_amount": 1690000,
"commitments_amount": 410000,
"contract_value_amount": 2980000,
"currency": "AUD",
"financial_period": "2026-06",
"gross_margin_amount": 360000,
"gross_margin_pct": 18.2,
"project_id": "BWG-2025-001",
"source_system": "D365_BUSINESS_CENTRAL",
"summary": "Emerald Street Rejuvenation is 56.8% cost-complete against a $2.85M budget with an 18.2% gross margin.",
"variance_amount": 820000
}

Use this contract

The contract is a standard JSON Schema (draft 2020-12) document, so any JSON Schema validator can check a record against it. Keywords starting with x-demiton- add Demiton's own meaning, such as units and requiredness, and validators ignore them.

Schema URL
https://docs.demiton.io/registers/profit_and_loss/v1.json
Show the full JSON Schema

Loading the schema…

Talk to the team

Tell us what you run - your ERP, field, payroll and document systems - and we will show you the registers Demiton would keep current from them, on your data, in a 30-minute call.

Book a 30-minute callStart free