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
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_onDate
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_dateDate
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- legal_entityText
The contracting entity the diary belongs to.
Example:
Bridgeworks Group Pty Ltd- 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 time
Last modification at source; the incremental harvest cursor.
Example:
2026-06-15T16:20:00- subcontractorText
Subcontractor present on site.
- submitted_atDate and time
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.
{ "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.
https://docs.demiton.io/registers/site_diary/v1.jsonShow 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.