POC Scope Specification — 26 May 2026

Practice Licence Processor Assistant

A working specification for the proof-of-concept build covering Practice Licence processing, member email triage, case management, and a cross-team Exemptions Discovery workstream.

Engagement. Forward-deployed temp Practice Licence Processor cover, May–August 2026, contracted between Jordan Copeland Ltd and the Institute of Certified Bookkeepers.

POC scope is what we will deliver and demonstrate inside the engagement window; the production-cover handover plan that follows the POC is in §7.

Contents

1. What we are building

An “assistant” to reduce PLP cognitive load on three high-volume surfaces, with a fourth cross-team discovery workstream.

1Practice Licence processing
The seven-stage SOP flow

Around 150–200 applications per year. The new online application form replaces the email-attached-PDF intake; the assistant ingests applications, checks them against the acceptance rubric, and presents Sadia or Abigail with a green-light / needs-more-from-applicant / escalate suggestion plus a draft reply and a draft Sodalis comment.

2Member email triage
Categorise, draft, surface — never send

High-volume member queries currently bouncing between Professional Standards and Member Services. The assistant categorises inbound, drafts a suggested response, and surfaces a check-this list. The PLP keeps decision authority on every outbound.

3Case management
Complaints + LRF payment-state

Around seven active complaint cases per year, currently in unstructured SharePoint folders with no progress tracking — ICB's highest-risk operational surface. Same build pattern as PL processing but with case-state and momentum tracking the PL flow does not need. Scope expansion: Late Registration Fee instalment payment-state is folded into this workstream — Sadia presently triggers each reminder manually; the assistant will surface payment-state per applicant and draft the outbound for human send.

4Exemptions Discovery (cross-team)
Listening, not building

A discovery-first workstream sitting with Anthony's team rather than the PLP function. Not a build commitment inside the POC window; structured listening, mapping the existing exemption pathways, and surfacing what an assistant for that team would look like.

Humans-in-loop on every outbound. No autonomous emails, no autonomous Sodalis writes. The assistant suggests; a human decides; the human sends.

Assistant outlives the engagement. The deliverable is an operational system that ICB owns at handover (Mon 17 Aug 26m), with a Jordan-side support retainer post-handover.

2. Scope — what's in, what's not, for the POC window

Engagement window: 18 May → Fri 14 Aug 26f. Within that, the POC reach is bounded as follows.

In scope
What the POC delivers
  • Mission A — PL processing assistant. End-to-end against real inbound from Fri 29 May 26f when Jordan steps into live cover.
  • Mission B — email triage assistant. Layered in once Mission A is stable on the live workload.
  • Mission C — case management + payment-state tracking. Same build pattern; sequenced after Mission B.
  • Mission D — Exemptions Discovery. Listening + mapping conversations with Anthony, Nathan, and the exemptions team.
  • Dashboard. A unified view across all four surfaces. Designed in parallel with the build. First deployable version targeted for Fri 19 Jun 26f (Sadia's return week).
  • Handover documentation. ICB-readable operational manual + architecture overview produced through the engagement.
Out of scope
Deliberately excluded
  • Autonomous outbound. The assistant never sends. Always human-in-loop.
  • Sodalis writes. Read-only; suggested-comment is surfaced for the PLP to paste.
  • Teams comms integration. Out for the POC. Roadmap intent, not permanent ceiling.
  • AML risk-assessment decisioning. Garry raised this on the 19 May call as an adjacent surface. Out of POC scope; flagged for post-handover conversation.
  • A bespoke Exemptions application form build. Anthony asked on the 19 May call; this sits adjacent to Mission D and needs a separate scoping conversation with Ami before a delivery commitment is made.

Posture against the Microsoft Teams enterprise comparator

ICB is weighing a Microsoft-stack alternative built on Copilot Studio. The POC bet is that a bespoke fit for the PLP workflow — Outlook category as state, Sodalis as the system of record, the SOP's seven-stage flow built in — beats a generic enterprise comparator on accuracy, running cost, and adoption. The POC is the evidence base for that bet.

3. Architecture — at the level you need to make decisions on

§3.1

Reading the work

§3.2

Reasoning over the work

§3.3

Storing the work

§3.4

Orchestrating the work

§3.5

Surfacing the work — the dashboard

A web-rendered dashboard the PLPs work from:

Design language. Starting from ICB's main-project editorial defaults (DM Serif Display + DM Sans + stone palette + terracotta accent — the typography of recent ICB-facing deliverables). A separate design consideration from the member-facing ICB brand.

4. Communication surfaces — what the assistant sees and does not see

§4.1 · In scope · read only
Email
  • professional.standards@bookkeepers.org.uk (shared inbox) — primary working surface.
  • jordan.copeland@bookkeepers.org.uk (Jordan's seat) — read access used as the corpus collection mechanism during initial bootstrapping and as a redundancy path.
§4.2 · In scope · read only, browser-use
Sodalis
  • Read access to member records, applications, order history, audit notes.
  • No writes. No API. Aggressive rate-limiting to respect the platform's fragility.
§4.3 · In scope · read + edit, scoped auth
Dashboard

The assistant writes suggested replies, suggested Sodalis comments, case-state updates, and unified-timeline entries into the dashboard. Tile colours reflect stage; the statistics panel reflects volume, time-in-stage, and payment-state for LRF instalment plans. Reasoning traces and confidence signals surface alongside each suggestion so the PLP can see why the assistant has proposed what it has.

Role permissions are secondary to that. The PLP role has full edit on suggested drafts plus click-to-complete and click-to-escalate; the Member Services role is read-only on case state.

§4.4 · Out of POC · in once stable
Microsoft Teams

The architecture supports Teams integration via the same Microsoft Graph layer that handles email. We are deliberately not turning it on at POC launch because the audit and escalation conversations that happen in Teams widen the data boundary substantially, and the PII redaction layer needs to demonstrate stability against the email + Sodalis surface before a second comms channel is layered in.

Expected trajectory. Once the assistant is stable on the launch surfaces (probably late July, into the retainer window), Teams integration becomes a small additive extension rather than a re-scoping.

5. Identity Verification

Yoti is ICB's complete IDV solution for Practice Licence applications. No live verification call is required for a Practice Licence to be granted. Ami's position confirmed 26 May 2026.

5.1 Division of labour

Strand Performed by Triggered for Assistant role
Identity verification Yoti Every PL application — every BOOM Read Yoti result from Sodalis note; surface state on dashboard tile.
Sanctions screening Yoti Every PL application — every BOOM Read Yoti result; surface escalation if flagged.
Adverse-media screening Yoti Every PL application — every BOOM Read Yoti result; surface escalation if flagged.
Companies House check Assistant (via API) + PLP decision Every PL application Programmatic lookup of company status, officers, and recent filings via the Companies House Public API; surfaces anomalies (e.g. dissolved company, undisclosed directorships) for the PLP to review.
Google "already practising" check Assistant (via search API) + PLP decision Every PL application Programmatic web search via the Brave Search API — agent constructs targeted queries (name + bookkeeping + locality), parses results, and surfaces evidence of existing practice activity for the PLP to review.
Right-to-Work check ICB (PLP) Conditional — only where the applicant does not automatically have UK right to work Detect the conditional trigger from application data; surface RTW workflow; capture findings against the applicant record.

The decision is always ICB-staff. Article 22 UK GDPR requires that no application decision is taken solely on the basis of an automated result, and ICB's published staff training reinforces this: "Yoti gives ICB a result. ICB makes the decision." The assistant suggests, captures, and surfaces; the PLP determines.

BOOM-level verification. Practice Licence applications can involve multiple Beneficial Owners, Officers, or Managers of Practice, and each must be verified separately. The assistant's application data model holds a list of BOOMs, each with their own IDV state across the strands above. Tiles, escalations, and progress indicators are BOOM-aware.

5.2 Yoti — what the assistant sees and does

Yoti runs as an external system; the assistant has no direct Yoti API integration on the ICB side. Yoti returns a result to the ICB Yoti Portal, and the PLP records the outcome — Pass, Fail, or Refer (with escalation target) — via a structured dropdown on the assistant dashboard. The dashboard both captures the outcome for the assistant and produces the canonical note text the PLP pastes into Sodalis. This is the entire integration surface.

The £250-per-month Yoti API tier referenced on the 19 May team call is not required for this architecture and can be deferred indefinitely. If actual Yoti-trigger frequency in live cover later indicates the manual session-creation workflow is a meaningful operator burden, the tier becomes a discrete cost decision; until then, no commitment.

5.3 Confidentiality and tipping-off

Where a screening result triggers AML concerns, ICB must not tip off the applicant under the Proceeds of Crime Act 2002. The assistant's draft-reply layer (Mission B) is configured to use neutral language for applicant-facing communications on Fail outcomes — for example: "We need to conduct some additional checks on your application." — and never to surface the underlying screening result to applicant-facing drafts. Internal escalation drafts to the Head of Professional Standards or the MLRO carry the underlying result.

5.4 Data minimisation and retention

The assistant holds the result strings, the determination, the determination date, and minimal exception notes — and nothing else from the IDV process. Identity document images, biometric templates, and facial images are not stored by ICB and are not visible to the assistant. ICB outcome records are retained for five years after the end of the business relationship per Regulation 40 of the Money Laundering Regulations 2017; the assistant's retention policy mirrors this.

5.5 Stretch goal — educational onboarding call for successful applicants

Ami additionally indicated that new successful applicants could potentially be automatically scheduled for a more generally educational onboarding call covering Customer Due Diligence, AML Online, and the Written Practice Risk Assessment — the new-practice training that previously sat inside the now-retired video-call IDV format. This is a stretch goal, not a launch-window commitment. The assistant's role, if and when this lands, is to surface an auto-scheduling suggestion against successful PL-grant events for human send, consistent with the no-autonomous-outbound architecture in §6.

6. Security and data handling

The six realistic failure modes the build is designed against, ranked by blast radius:

  1. Autonomous write into Sodalis. Mitigated by architecture — the browser-use library is configured to forbid any non-GET action. Service-account governance documented and locked before provisioning.
  2. Autonomous outbound email. Mitigated by architecture — the assistant has no SMTP send capability and no Graph sendMail permission. Hard-coded out at the runtime layer, not policy-only.
  3. PII leakage to external models. Mitigated by the redaction layer described in §3.2. PII boundary based on legitimate-interest + AML-supervisor-duty GDPR basis confirmed by Ami; privacy-policy text still being finalised on the ICB side.
  4. Credential leakage. Mitigated by macOS Keychain for local development, secrets manager (Supabase Vault) for any remote deployment. Rotation + revocation paths documented before any service-account credential is issued.
  5. Sodalis read-rate exhaustion or session lock-out. Mitigated by aggressive rate-limiting (one read every several seconds), retry with backoff, alert on consecutive failures, never compete with a human session.
  6. Dashboard egress. Mitigated by Supabase Auth gating, separate scopes per role, IP allowlist where the underlying network supports it.

Sodalis operational facts the assistant accommodates: the duplicate-record bug when applicants navigate back-and-forth through the new online form (the read pipeline dedupes per applicant); the subcontractor-field corruption where Sadia's workaround is to add subcontractors under Staff with a description-prefix flag (the read pipeline infers subcontractor status from the prefix). These are Sodalis facts to read around, not bugs for the assistant to fix.

7. Schedule and milestones

Tue 26 May 26t
POC scope spec sent (today).
Tue 26 May 26t
Microsoft 365 + Entra ID setup completed by Julius (Steps 1–8 done as of 12:41 today; Step 9 — shared-mailbox conversion of professional.standards@ — still pending).
Tue 26 May 26t
Sodalis service account provisioned by Agatha (confirmed — Jordan's working login in hand as of today).
Wed 27 May → ~Wed 3 Jun
Agatha on annual leave.
27–28 May
Corpus collection: Jordan pulls last 10 already-processed PL applications from inside the shared mailbox.
Fri 29 May 26f
Sadia's leave begins; Jordan steps into live PLP cover. ~3-week absence.
Fri 12 Jun 26f
Backend + orchestration stood up; first-pass email ingest working end-to-end against the historical corpus.
Fri 19 Jun 26f
Dashboard v0 deployed (gallery + tile + click-through; no suggested-reply layer yet).
~Fri 19 Jun 26f
Sadia returns; reviews dashboard against muscle memory.
Fri 3 Jul 26f
Suggested-reply + suggested-Sodalis-comment layered in; eval set v1 built.
July
Missions B (email triage) and C (case management + payment-state) developed against live workload.
Fri 31 Jul 26f
Mission D (Exemptions Discovery) — work with Anthony's team.
Fri 14 Aug 26f
Engagement end. Handover documentation finalised.
Mon 17 Aug 26m
Retainer begins.

Risk callouts

8. What we are tracking that's not yet locked

9. Engagement terms (for reference)

Period
18 May 2026 → Fri 14 Aug 26f (engagement end). Retainer begins Mon 17 Aug 26m.
Fees
£12,000 over three months (£4,000 monthly in advance). May 2026 invoice paid 18 May.
Connected-person disclosure
Standing.
Termination
Per the engagement letter v2 (two weeks' notice either side).

Drafted 26 May 2026. Prepared by Jordan Copeland for Ami Copeland, Agatha Guarnaccia, and Julius Tafura.