Capability matrix — who can do what
Six sub-tabs covering education, certifications, prior experience, skills, languages, training. Powers the firm-wide capability dashboard at /hr/capability-matrix and the M07 job-team-allocation suggestions ("who's qualified for IFRS 17 work?"). EQCR-eligible flag gates ISA 220 sign-off rights.
The 6 sub-tabs
Bachelor / Master / Doctorate / Diploma + institution + country + year + grade. MOCIIP-attested flag for Oman senior-role requirements.
ACCA, CPA, CA, CIA, CISA, ICAEW, CFA, OAAA, ... with expiry, EQCR-eligible flag, annual CPD-hours-required.
IFRS general + 11 standards · 9 ISA refs · 5 tax topics · 9 industries · 8 software. Proficiency: basic / proficient / expert. Years used.
Arabic / English / Hindi / Urdu / Malayalam / Tamil / Telugu / Persian / French / Tagalog / Swahili. 5 capability flags: read · write · speak · primary · audit-in.
Internal · external · webinar · self-study · conference · seminar · other. Hours · cost · completion date · mandatory flag. CPD year-to-date hero per employee.
The 42 seeded skills
| Category | Examples |
|---|---|
| IFRS standards (12) | IFRS 9, IFRS 15, IFRS 16, IFRS 17, IAS 1, IAS 2, IAS 12, IAS 16, IAS 19, IAS 36, IAS 37, IAS 24 |
| ISA references (9) | ISA 200, 220, 240, 315, 320, 330, 450, 540, 700 |
| Tax topics (5) | Oman VAT, Oman CIT, Transfer Pricing, Withholding Tax, Tax Disputes |
| Industries (9) | Banking, Insurance, Real Estate, Construction, Hospitality, Manufacturing, Retail, NPO, Healthcare |
| Software (8) | Tally, QuickBooks, Sage, Zoho, Odoo, SAP, Oracle, Microsoft Dynamics |
The capability matrix dashboard
At /hr/capability-matrix — a sticky-column grid:
- Rows = employees (sticky left column)
- Columns = skills (vertical text headers)
- Cells = proficiency dot (green expert, blue proficient, grey basic, empty = no rating)
- Filters: department, skill category, minimum proficiency
- Used by partners + managers when allocating engagements
EQCR eligibility
The certifications.is_eqcr_eligible flag is critical. EQCR per ISA 220.A52 requires:
- Independent partner — not on the engagement team
- Sufficient + appropriate experience + authority
- Specific certification recognition (typically OAAA-registered partner with 5+ years post-qualification)
The certification entry should mark is_eqcr_eligible=1 only when the firm's quality manual considers the partner qualified to act as EQCR. The job-create wizard surfaces only EQCR-flagged employees in the EQCR picker.
CPD year-to-date
CapabilityService::cpdHoursForYear($eid, $year) sums training hours per calendar year. The Training tab shows a hero card with progress bar against 40h/yr (ACCA target). Other bodies have different requirements (ICAEW: 40h/yr structured + non-structured; OAAA: 30h/yr).
Step-by-step — record a certification
Open employee → Certifications tab
Existing certs as cards with EQCR-eligible badge + colour-coded expiry.
Click "+ Add certification"
Inline form. Pick body (ACCA, CPA, etc.) from 13 seeded options. Membership number. Issue date. Expiry date (if applies). Annual CPD-hours-required. EQCR-eligible flag (only super_admin / partner can tick).
Upload certificate file (optional)
PDF or image. Stored at
storage/employees/{id}/certs/{uuid}.{ext}.Save
Audit-logged. Card appears with badge. If EQCR-eligible, employee now appears in EQCR picker on TPL-AA jobs.
Open HR → Capability Matrix → filter by skill_category=IFRS, min_proficiency=expert. You'll see exactly who can sign off on IFRS work. Now you understand why a partner asks "who's free with IFRS 17 expertise?" and the answer is in the system, not in someone's head.
Don't auto-grant EQCR eligibility based on the firm's hierarchy. ISA 220 + the firm's quality manual define competence requirements. A junior partner is still a partner but may not yet be EQCR-eligible. Tick the flag only when the partner meets your firm's documented criteria.
Re-saving the same employee × skill row updates the proficiency level (UNIQUE constraint on emp+skill). Use this for annual capability reviews — bulk update without delete-and-recreate. The capability matrix re-renders with fresh dots.