Template anatomy — what's inside every template
A job template is a 5-layer reusable definition: identity, phased tasks, hierarchical checklist items with regulatory references, folder-structure JSON, and operational metadata (skills, deliverables, quality criteria). Understand the layers once; every template you ever encounter follows the same shape.
The 5 layers
Layer 1 — the template row itself
One row in job_templates. Identity-only fields. Drives the picker on the create-job wizard.
The short identifier. Used in URLs, exports, sidebar.
Display name. Shown to users.
Why use this template. Drives the description-autocomplete on invoice forms (M11).
Used by the team-allocation step to surface qualified employees.
Final outputs the client gets. Drives the deliverable checklist on the close screen.
Pass/fail criteria. Manager checks each before status flips to completed.
Materialised on create. Tokens like {CLIENT}, {FY} auto-replaced.
True for audit + review templates. Switches on the M19 Workpapers tab + auto-seed of 12 standard workpapers.
Inactive templates don't appear in the wizard but stay readable for historic jobs.
Layer 2 — the 5-phase task tree
Each template ships a tree of tasks grouped by phase. TPL-AA Annual Audit ships with 8 top-level tasks across all 5 phases. TPL-VAT Quarterly VAT ships with 4. The phase order is fixed; tasks within a phase have a sequence number.
| # | Phase | Typical content | Order |
|---|---|---|---|
| 1 | planning | Engagement letter, independence, scope, budget, team | First |
| 2 | fieldwork | Procedures, evidence gathering, sampling, AJE drafts | Bulk |
| 3 | reporting | Draft FS, draft report, draft management letter | After fieldwork |
| 4 | review | Manager review, partner review, EQCR (if applicable) | Before issuance |
| 5 | admin | Issue, lock, archive, billing | Last |
Tasks can be nested via parent_task_id — useful when a phase has logical groupings (e.g. fieldwork → "Cash & Bank" → 4 sub-tasks).
Layer 3 — the checklist items (the regulatory backbone)
Each task has 10–30 ordered checklist items. Each item is one specific procedure, with a reference to the standard that mandates it. This is what makes AuditPro different from a generic task tracker.
| # | Item text | Reference | Optional? |
|---|---|---|---|
| 1 | Obtain signed engagement letter | ISA 210 | No |
| 2 | Confirm independence per Code of Ethics | IFAC §290 | No |
| 3 | Document understanding of entity | ISA 315 | No |
| 4 | Compute overall materiality (4 bases) | ISA 320 | No |
| 5 | Plan use of internal audit (if any) | ISA 610 | Yes |
The reference_standard field points to the firm-wide reference library (see [reference-library](../../README.md)). Each row in reference_standards has the full description + authoritative URL. So when an auditor hovers over "ISA 320" they get the actual standard text.
Layer 4 — folder structure JSON
A nested JSON describing the physical folder layout. Materialised on job-create at storage/jobs/{id}/ with tokens replaced.
{CLIENT}-{FY}-Audit/
├── 01-Engagement/
│ ├── Engagement-letter.pdf
│ ├── Independence-confirmations/
│ └── Acceptance-memo.pdf
├── 02-Trial-Balance/
├── 03-Workpapers/
│ ├── A-100-Planning/
│ ├── B-100-Cash/
│ ├── C-100-AR/
│ └── ... (12 folders)
├── 04-FS-pack/
├── 05-Audit-Report/
├── 06-Completion/
└── 07-Audit-Trail/
Tokens supported: {CLIENT}, {CLIENT_CODE}, {FY}, {PROJECT}, {JOB_NUMBER}, {YEAR}, {QUARTER}, {MONTH}. Resolved at job-create time; folder paths become permanent.
Layer 5 — operational metadata
The metadata fields drive the operational layer:
- skills_required — capability-matrix lookup. The team-allocation step suggests qualified employees for each task.
- deliverables — close-engagement checklist. Manager ticks each item before status flips to completed.
- quality_criteria — pass/fail. Failing any forces "completed" to be blocked.
- est_hours at template-task level — drives capacity planning + WIP estimates.
Cloning a template
Click Clone on any template → deep-copy: the row, every task, every checklist item, every parent-relink, the JSON structure. The clone starts inactive with auto-suffix -V2 / -V3. Edit it, mark active, and the wizard now shows both. Useful when:
- You have a sector-specific variant (e.g.
TPL-AA-INSURANCEwith extra IFRS 17 procedures) - You're test-driving changes without affecting live engagements
- You want a leaner version for small SME audits
Open Content Library → Engagement Templates → TPL-AA Annual Audit → Tasks tab. Click any task → see the 10-30 checklist items, each with their ISA reference. This is the audit-evidence trail the system gives you for free.
Editing a template doesn't update existing jobs that were created from it — the job has its own copy of tasks + checklist. Edits affect only NEW jobs. To update an existing job's checklist, use the per-job task-edit screen instead.
Building a brand-new template from scratch is slow. Use Templates → Import CSV — upload a flat CSV with task_ref + phase + checklist_text + reference_standard, the wizard validates + commits in 3 passes (tasks → parent relinks → items). 200 checklist items in 30 seconds.