{{labor.amount}}, {{project.name}}, {{customer.name}} and {{date.today}}. The labour amount is read from the most recent approved estimate link's frozen snapshot laborTotal and formatted as currency; a project with no approval renders 'TBD'. Unknown tokens are left intact rather than blanked.
Also called: labor amount in the crew contract · what the crew gets paid · sub agreement placeholders
- 1getAgreementContext() queries approved estimate links for the project, newest approval first.
- 2laborTotal is read off that link's estimate snapshot and formatted; zero or missing yields 'TBD'.
- 3renderAgreementBody() substitutes only known keys, leaving anything else visible so a typo is obvious rather than silently blank.
- 4The same context fills the document at both view time and sign time.
The comment states the money rule directly: 'labor.amount comes from the APPROVED estimate's frozen laborTotal (money paperwork prices from the signature, never live state) — jobs with no approval render "TBD".' And in the settings tab: 'the number the lead signs is the number that was sold.'
- Crew agreements priced from a moving target
- No stated labour figure on the document the lead signs
- Silent blanks where a placeholder was mistyped
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 →