Skip to content
Demiton

Site diary

Daily site diaries: delays, weather, productivity, variations.

Part of Projects in the register catalog.

Register ID
site_diaryUse this name to ask for the register. The API calls it a shelf ID.
Each record is
An eventSomething that happened at a point in time.
Status
AvailableFilled today from connected systems, uploads or public data.
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.

  • HammerTech
  • MittiPartial
  • Oracle Aconex
  • Procore
  • SignOnSitePartial
  • SitematePartial

Fields

24 fields: 3 required, 21 optional.

Required

Every record carries these fields.

contentText

The composed Q&A narrative - the semantic-search payload.

Example: Q: What progressed today? A: Pavement base course placed …

external_idWhole number

The source system's own identifier for this diary record; substrate source identity and idempotency key. Declared an INTEGER because that is what the source carries - the identity is a string concept but the adapter does not render it as one.

Example: 990211

occurred_onDateYYYY-MM-DD

The diary's project-day (ISO 8601 date), distinct from when it was filed. One diary is one project-day.

Example: 2026-06-15

Optional

Present when the source system records them.

assetWhole number

The plant or vehicle the diary records. Declared an INTEGER because Assignar's asset_id is numeric where it is populated at all.

Example: 9301

delaysList

Delay reasons and their stated duration.

delays[].commentText

No description yet.

delays[].durationText

No description yet.

estimated_completion_dateDateYYYY-MM-DD

Forecast completion for the linked project.

financial_periodText

The claim/accounting period the diary day falls in.

Example: 2026-06

form_template_idWhole number

Which form template produced the row. Declared an INTEGER because Assignar's form_id is numeric.

Example: 7701

headcountWhole number

Number of people on site for the day.

Example: 8

hired_plantText

Hired plant/equipment on site for the day.

incident_reportedTrue or false

Whether an incident report was submitted for this day. The diary is evidence, not the incident record.

Example: false

odometer_readingNumber

Vehicle odometer at the diary. Unit unverified (km vs miles).

progressText

What progressed, and where the crew worked.

Example: Pavement base course placed and compacted, chainage 220-260

projectWhole number

The project the diary scopes. Optional because many live diaries carry no linked project. Declared an INTEGER because Assignar's project_id is numeric where populated.

Example: 8101

source_modified_atDate and timeISO 8601, with time zone

Last modification at source; the incremental harvest cursor.

Example: 2026-06-15T16:20:00

subcontractorText

Subcontractor present on site.

submitted_atDate and timeISO 8601, with time zone

When the form was submitted, distinct from the diary day.

Example: 2026-06-15T16:20:00

tasksList of text

The task(s) selected for the day.

tenant_questionsGroup of fields

The tenant's own form questions, keyed by the slugified question label. Tenant-specific by construction - the same question does not exist for another tenant.

weatherText

Site weather conditions for the day.

Example: Fine, 26C

workerWhole number

The worker who authored / is the subject of the diary. Declared an INTEGER because Assignar's worker_id is numeric.

Example: 5501

Filed against

Records are indexed along these dimensions, so they can be asked for by any of them.

  • Projectwhat the record is about, from projectWhen known
  • Assetwhat the record is about, from assetWhen known
  • Legal entitycontext for the record, from legal_entityWhen known
  • Financial periodcontext for the record, from financial_periodAlways set

Example record

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

site_diary.example.json
{
"asset": 9301,
"content": "Q: What progressed today? A: Pavement base course placed and compacted chainage 220-260. Q: Weather? A: Fine, 26C.",
"delays": [],
"external_id": 990211,
"financial_period": "2026-06",
"form_template_id": 7701,
"headcount": 8,
"incident_reported": false,
"legal_entity": "Bridgeworks Group Pty Ltd",
"occurred_on": "2026-06-15",
"progress": "Pavement base course placed and compacted, chainage 220-260",
"project": 8101,
"source_modified_at": "2026-06-15T16:20:00",
"submitted_at": "2026-06-15T16:20:00",
"tasks": [
"Base course placement",
"Compaction"
],
"weather": "Fine, 26C",
"worker": 5501
}

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/site_diary/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