Product requirements document, v1.0

Configurable intake routing and case control.

This document defines the scope, rules, expected behaviour, and release checks for the simulated CommunityConnect platform.

Project scope. I created this portfolio document to practise writing clear requirements for a delivery team. It is not paid client work.
OwnerZain Kazmi
StatusReady for review
Primary usersIntake, staff, supervisors
ReleasePilot, one region
01 / Problem

The current process makes ownership hard to track

Community requests arrive through shared inboxes, phone notes, and disconnected spreadsheets. Staff use inconsistent statuses, routing depends on memory, and supervisors cannot see stalled or urgent work without manual follow-up.

Product outcome: every request has a valid owner, controlled status, protected notes, response target when needed, and traceable history from intake through closure.

02 / Scope

Pilot scope

The pilot covers one region and the core intake lifecycle. It deliberately excludes work that would add risk before the operating model is proven.

In scope
  • Intake form and validation
  • Rule-based routing
  • Role permissions
  • Status controls
  • Urgent alerts
  • Audit history and dashboards
Out of scope
  • Public self-service portal
  • SMS conversations
  • Clinical decision-making
  • Payment or insurance processing
  • Cross-agency data sharing
  • Automated record deletion
Success measures
  • 95% correctly routed on first pass
  • No unauthorized-note exposure
  • 100% closure-field completion
  • All urgent requests visible in five minutes
  • Imported active-record reconciliation ≥99.5%
03 / Functional requirements

Functional requirements

FR-01

Create request

Authorized staff can create a request from a single form with requester, contact channel, service category, postal code, urgency, consent, and notes.

FR-02

Validate intake

The system blocks submission when consent is missing, the postal code is malformed, or a required field for the selected category is blank.

FR-03

Route ownership

On creation, the system assigns the request using service category plus postal region. Unmatched combinations enter the Triage queue.

FR-04

Control status

Users can move requests only through the approved lifecycle: New, In triage, Assigned, In progress, Waiting on client, Closed.

FR-05

Escalate urgency

Urgent requests create a supervisor alert and a response target. They cannot be closed until an escalation disposition is recorded.

FR-06

Protect notes

Sensitive notes are visible only to the assigned worker and supervisors; general staff see the request summary and current status.

FR-07

Prevent silent stalls

A daily check flags priority requests that are unassigned, blocked, or past their response target.

FR-08

Close with evidence

Closure requires a disposition, outcome, final owner, and completed timestamp. Closed records become read-only except to supervisors.

FR-09

Notify deliberately

The system sends only event-based notices for assignment, reassignment, urgent escalation, and client-response reminders.

FR-10

Preserve history

Every assignment, status, priority, permission-sensitive note, and closure change is written to an immutable audit history.

FR-11

Support reporting

Supervisors can filter active volume, aging, response-target breaches, workload, and dispositions by region and category.

FR-12

Handle migration

Imported records retain their legacy ID, source owner, source status, and migration batch for reconciliation and rollback.

04 / Decision rules

Routing and access rules

ConditionSystem decisionFallback
Category + region matchAssign configured queueTriage queue
Urgent = YesAlert supervisor + start targetSupervisor queue
Sensitive note = YesRestrict to owner + supervisorHide content
Waiting on client ≥3 daysCreate staff reminderFlag aging report
05 / Edge cases

Exceptions the design must handle

  1. 01

    A postal code changes after assignment: rerouting is suggested, not automatic, so an in-progress request is never silently transferred.

  2. 02

    Two submissions share the same requester, category, and contact information within 24 hours: flag a possible duplicate and let Triage merge or keep both.

  3. 03

    An urgent request has no matching regional queue: assign it to the supervisor queue and start the response timer immediately.

  4. 04

    A staff member loses a role while owning open requests: preserve the record history, remove access, and place affected requests in reassignment review.

  5. 05

    A client replies after closure: create a linked follow-up request instead of reopening the immutable original record.

  6. 06

    An import contains an unknown category or invalid owner: quarantine the row with a reason; never coerce it into a valid value silently.

06 / Acceptance criteria

Acceptance checks

AC-01

Given a complete standard intake, when it is submitted, then it receives a unique ID, the correct queue, New status, and an audit event.

AC-02

Given an urgent intake with no routing match, when submitted, then it enters the supervisor queue and shows an active response target.

AC-03

Given a general staff user, when the user opens a request with a sensitive note, then the note content is not returned or displayed.

AC-04

Given a request without a disposition, when a user attempts to close it, then closure is blocked and the missing field is identified.

AC-05

Given a duplicate candidate, when Triage chooses merge, then the source IDs remain traceable and no audit history is discarded.

AC-06

Given an invalid migration row, when the import completes, then the record is quarantined, counted in reconciliation, and excluded from production queues.

07 / Release control

Pilot and rollout checks

  1. Readiness: signed requirements, permission matrix, routing table, migration reconciliation, and zero critical UAT defects.
  2. Pilot: one region, named support owner, daily issue review, and manual rollback available for seven days.
  3. Observe: routing accuracy, breach rate, permission failures, reopen/follow-up rate, and staff task completion.
  4. Expand: proceed only after operational sign-off and documented fixes for pilot exceptions.