Crew_acceptance_signatures rows carry agreement_id, agreement_version, the fully rendered agreement_body, signature_image, project_snapshot, ip_address, user_agent and signed_at. Acceptance records separately snapshot the brief that was shown at sign time.
Also called: what did he actually sign · contract history · court ready record · audit trail
- 1signAssignment renders the template tokens, then inserts the resulting text as an immutable snapshot.
- 2The project state at signing is stored as project_snapshot.
- 3crew_acceptances additionally stores brief_snapshot and crew_payout so the offer that was accepted is recoverable.
- 4No write path updates a signature row after insert.
An agreement stored as a pointer to a template is an agreement that changes after it was signed: edit the template a year later and every past signature appears to have agreed to something new. What is kept instead is the document exactly as it appeared at the moment of signing, with the project details of that moment, frozen. Nothing about a signed record can be edited afterwards, which is the only version of this worth anything in a dispute.
- Agreements whose meaning drifts when the template or the project changes.
- No provable record of the terms at the moment of signing.
See it on your own jobs
Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.
or keep browsing features →