Back to .md Directory

Product Requirements Document (PRD)

**Document Version:** 1.0

May 2, 2026
0 downloads
0 views
ai rag workflow
View source

Product Requirements Document (PRD)

Funding Application Submission & Assessment Platform

Document Version: 1.0
Status: Draft for Review
Owner: Project Co-ordinator (Platform Admin)
Created: 29 January 2026
Last Updated: 29 January 2026


Table of Contents

  1. Executive Summary
  2. Problem Statement
  3. Goals & Success Metrics
  4. Users & Personas
  5. User Stories
  6. Functional Requirements
  7. Non-Functional Requirements
  8. System Architecture
  9. Data Model
  10. Key Workflows
  11. User Interface Requirements
  12. Security, Privacy & Compliance
  13. Integration Requirements
  14. Acceptance Criteria
  15. Scope & Constraints
  16. Glossary
  17. Appendix A: AFD Generation Instructions
  18. Appendix B: DDD Generation Instructions

1. Executive Summary

1.1 Purpose

This document specifies the complete product requirements for a web-based Funding Application Submission & Assessment Platform that enables funding bodies to collect applications, manage assessor assignments, capture scoring, and produce consolidated results for decision-making.

1.2 Vision

To provide a streamlined, secure, and auditable platform that simplifies the funding application lifecycle—from submission through assessment to final results—while maintaining strict role-based access controls and GDPR compliance.

1.3 Key Capabilities

  • Applicant Portal: Simple journey to upload application forms, supporting documents, complete required confirmations, and submit before deadline
  • Multi-Call Support: Independent funding calls with their own deadlines, criteria, and assessor pools
  • Coordinator Dashboard: Post-deadline administration including spreadsheet-style views, bulk exports, assessor assignment, and progress monitoring
  • Assessor Interface: Restricted access to assigned applications only with structured scoring and commentary
  • Master Results: Aggregated scores and comments visible exclusively to Project Coordinators

2. Problem Statement

2.1 Current State

Funding bodies currently rely on fragmented systems (email, spreadsheets, shared drives) to manage application submissions and assessments. This leads to:

  • Manual tracking of submissions and deadlines
  • Risk of data loss or version confusion
  • Difficulty maintaining assessor blinding and confidentiality
  • Time-consuming aggregation of assessment scores
  • Audit trail gaps and compliance concerns
  • Inconsistent applicant experience

2.2 Desired State

A unified platform where:

  • Applicants have a clear, self-service submission journey
  • Coordinators can configure calls, assign assessors, and monitor progress from a single interface
  • Assessors only access their assigned applications and cannot view others' assessments
  • All actions are logged for audit purposes
  • Results aggregate automatically for informed decision-making

2.3 Impact

StakeholderCurrent PainPlatform Benefit
ApplicantsUnclear requirements, no receipt confirmationGuided submission, instant receipt
CoordinatorsManual tracking, spreadsheet jugglingCentralised dashboard, automated aggregation
AssessorsScattered documents, unclear assignmentsClear task list, structured scoring forms
GovernanceAudit gaps, compliance riskComplete audit trail, GDPR alignment

3. Goals & Success Metrics

3.1 Primary Goals

GoalDescriptionPriority
G1Provide intuitive applicant submission journeyP0
G2Support multiple concurrent funding callsP0
G3Enable efficient post-deadline administrationP0
G4Restrict assessor access to assigned applications onlyP0
G5Aggregate scores into coordinator-only master resultsP0
G6Maintain full audit trail and GDPR complianceP0

3.2 Success Metrics

MetricTargetMeasurement Method
Application submission success rate>95%Submissions completed / submissions started
Average submission time<15 minutesAnalytics from start to submission
Assessment completion rate>90%Assessments submitted / assessments assigned
Coordinator time to assign applications<30 minutes for 100 applicationsTime tracking
System availability during call windows99.5%Uptime monitoring
Page load time<3 secondsPerformance monitoring

4. Users & Personas

4.1 Role Definitions

RolePrimary CapabilitiesRestrictionsTypical Users
ApplicantCreate and submit applications; upload files; complete confirmations; receive submission receiptCannot see other applications; cannot see assessor activity; cannot edit after submission (unless reopened)SME, organisation, individual applicant
AssessorView assigned applications; enter criterion scores and comments; submit assessmentCannot see other assessors' work; cannot see master ranking; cannot reassign applications; cannot access unassigned applicationsExternal reviewer, internal assessor
Project CoordinatorCreate/manage calls; view/export all applications; assign assessors; monitor progress; access master results; lock/unlock phasesCannot act as assessor unless explicitly granted; cannot expose master results to assessorsFunding delivery team admin
Scheme Owner (Optional)Read-only overview across calls; reporting and audit accessCannot edit calls; cannot assign assessors; cannot access applicant PII beyond configured scopeSenior stakeholder, governance

4.2 Personas

Persona 1: Sarah the Applicant

  • Role: SME owner applying for business growth funding
  • Technical Skill: Moderate
  • Goals: Submit application quickly with clear guidance
  • Frustrations: Unclear requirements, no confirmation of receipt, deadline anxiety
  • Needs: Mobile-friendly interface, progress indicators, instant confirmation

Persona 2: James the Coordinator

  • Role: Programme Manager in funding delivery team
  • Technical Skill: High
  • Goals: Efficiently manage multiple funding calls, ensure fair assessment
  • Frustrations: Manual spreadsheet management, chasing assessors, aggregating scores
  • Needs: Dashboard overview, bulk operations, automated reminders, export capabilities

Persona 3: Maria the Assessor

  • Role: Industry expert reviewing applications
  • Technical Skill: Moderate
  • Goals: Review assigned applications thoroughly, meet deadlines
  • Frustrations: Unclear assignments, scattered documents, time pressure
  • Needs: Clear task list, structured scoring form, ability to add comments

5. User Stories

5.1 Applicant Stories

IDUser StoryAcceptance CriteriaPriority
US-A01As an applicant, I want to view open funding calls so that I can find relevant opportunities- List of open calls displayed with name, description, deadline<br>- Only calls with status "Open" shown<br>- Deadline displayed in local timezoneP0
US-A02As an applicant, I want to start an application for a selected call so that I can begin my submission- "Start Application" button visible for open calls<br>- Click creates draft application<br>- User navigated to submission formP0
US-A03As an applicant, I want to upload my application form and supporting documents so that I can provide required information- Drag-and-drop or browse upload<br>- File type validation (configurable per call)<br>- File size validation (configurable per call)<br>- Virus scan on upload<br>- Progress indicator for uploads<br>- Multiple files supportedP0
US-A04As an applicant, I want to complete required confirmations so that I acknowledge terms and conditions- Checkboxes for: guidance read, EDI form completed, data sharing consent<br>- All required checkboxes must be ticked before submission<br>- Clear labelling of required vs optionalP0
US-A05As an applicant, I want the system to prevent submission after the deadline so that fairness is maintained- Submit button disabled after deadline<br>- Clear message showing deadline passed<br>- Deadline enforced server-side (Europe/London timezone)P0
US-A06As an applicant, I want to receive confirmation of my submission so that I have proof it was received- Confirmation screen displayed on successful submission<br>- Email receipt sent to applicant<br>- Receipt includes timestamp, application reference, call nameP0
US-A07As an applicant, I want to save my draft application so that I can return and complete it later- Auto-save on file upload and confirmation changes<br>- "Save Draft" button<br>- Draft accessible until deadlineP1

5.2 Coordinator Stories

IDUser StoryAcceptance CriteriaPriority
US-C01As a coordinator, I want to create a funding call so that I can open a new application window- Form with: name, description, open date-time, close date-time<br>- Status defaults to "Draft"<br>- Call saved to databaseP0
US-C02As a coordinator, I want to configure submission requirements so that applicants know what to provide- Configure allowed file types (e.g., PDF, DOCX)<br>- Configure maximum file size<br>- Configure required confirmations<br>- Add guidance text/linksP0
US-C03As a coordinator, I want to define assessment criteria so that scoring is consistent- Add/edit/remove criteria<br>- Set max points per criterion<br>- Set optional weighting per criterion<br>- Set required number of assessors per applicationP0
US-C04As a coordinator, I want to manage the assessor pool so that I can control who reviews applications- Add assessors (name, email, organisation)<br>- Remove assessors<br>- Tag assessors with expertise areas (optional)<br>- Invite assessors by emailP0
US-C05As a coordinator, I want to view all applications in a spreadsheet-style table so that I can review submissions- Table with columns: reference, applicant, submission date, file count, assignment count, assessment status<br>- Sortable columns<br>- Filterable by status<br>- Available only after deadlineP0
US-C06As a coordinator, I want to export application metadata so that I can work offline or share with stakeholders- Export to CSV<br>- Export to XLSX<br>- Configurable columnsP0
US-C07As a coordinator, I want to download application files so that assessors can review offline- Download individual application pack (ZIP)<br>- Download all applications (bulk ZIP)<br>- Secure, logged downloadP0
US-C08As a coordinator, I want to assign applications to assessors so that reviews can begin- Select application(s) and assign to assessor(s)<br>- Bulk round-robin assignment<br>- Manual individual assignment<br>- Prevent self-assessment conflictsP0
US-C09As a coordinator, I want to view assessment progress so that I can monitor completion- Dashboard showing: assessor name, assigned count, completed count, outstanding count<br>- Application view showing: which assessors assigned, who has completed<br>- Visual progress indicatorsP0
US-C10As a coordinator, I want to send reminder emails so that assessors complete on time- Select assessors with outstanding assessments<br>- Send reminder email (template with customisation)<br>- Log reminder sentP0
US-C11As a coordinator, I want to view master results so that I can see aggregated scores- One row per application<br>- Per-assessor scores visible<br>- Calculated totals/averages<br>- Assessor comments visible<br>- Variance flagging for high divergenceP0
US-C12As a coordinator, I want to export master results so that I can prepare governance reports- Export to XLSX<br>- Include all scores, aggregates, comments<br>- Access restricted to coordinator roleP0

5.3 Assessor Stories

IDUser StoryAcceptance CriteriaPriority
US-S01As an assessor, I want to see only my assigned applications so that I focus on my work- Dashboard shows only calls where I have assignments<br>- Within call, only assigned applications visible<br>- No access to unassigned applicationsP0
US-S02As an assessor, I want to view application materials so that I can evaluate the submission- View/download application form<br>- View/download supporting documents<br>- Clear file listingP0
US-S03As an assessor, I want to score applications against defined criteria so that evaluation is structured- Form showing each criterion with description<br>- Score input field with valid range<br>- Comments field per criterion (optional or required per config)P0
US-S04As an assessor, I want to declare conflicts of interest so that integrity is maintained- COI declaration checkbox per call or per application<br>- Must confirm COI status before submitting assessment<br>- Flag to coordinator if COI declaredP0
US-S05As an assessor, I want to submit my assessment so that it is recorded- Submit button active when all required fields complete<br>- Confirmation prompt before final submission<br>- Assessment timestamped and locked on submissionP0
US-S06As an assessor, I want to be unable to see other assessors' scores so that my assessment is independent- No visibility of other assessors' assessments<br>- No visibility of master results<br>- Enforced server-sideP0
US-S07As an assessor, I want to save my in-progress assessment so that I can return later- Auto-save on field change<br>- "Save Draft" button<br>- Draft accessible until submission or deadlineP1

6. Functional Requirements

6.1 Funding Call Management

IDRequirementDescriptionPriority
FR-001Create funding callCoordinator creates call with name, description, open/close date-times, status (Draft/Open/Closed/In Assessment/Completed/Archived)P0
FR-002Configure submission requirementsCoordinator configures allowed file types, maximum file size, and required applicant confirmationsP0
FR-003Configure assessment rubricCoordinator defines assessment criteria with max points, optional weights, and required number of assessors per applicationP0
FR-004Manage assessor poolCoordinator adds/removes assessors for a call; optionally tags assessors with expertise areasP0
FR-005Call status transitionsSystem enforces valid status transitions: Draft → Open → Closed → In Assessment → Completed → ArchivedP0
FR-006Clone funding callCoordinator can clone an existing call to create a new one with similar configurationP1

6.2 Applicant Submission

IDRequirementDescriptionPriority
FR-010Select funding callApplicants view open calls and start application for selected callP0
FR-011Upload application formApplicants upload required files; system validates file type, size, and performs virus scanP0
FR-012Required confirmationsApplicants tick required confirmations: guidance read, EDI form completed (acknowledgement), data sharing consentP0
FR-013Deadline enforcementSystem prevents submission after call close date-time (Europe/London timezone); enforced server-sideP0
FR-014Submission receiptOn successful submission, system timestamps application, locks edits, and sends confirmation emailP0
FR-015Draft persistenceApplicant drafts are saved and accessible until deadline or submissionP1
FR-016Application withdrawalApplicant can withdraw application before deadline (logged action)P2

6.3 Coordinator Post-Deadline Operations

IDRequirementDescriptionPriority
FR-020Applications table viewAfter deadline, coordinator views applications in spreadsheet-like table with metadata, file links, confirmation flags, assignment counts, assessment completion countsP0
FR-021Export metadataCoordinator exports application metadata to CSV/XLSXP0
FR-022Download application filesCoordinator downloads individual application packs and optionally all files as ZIPP0
FR-023Assign applicationsCoordinator assigns applications to assessors; bulk round-robin and manual assignment supportedP0
FR-024Progress dashboardCoordinator views assessment completion by assessor and by application, including outstanding assessmentsP0
FR-025Send remindersCoordinator triggers reminder emails to assessors with outstanding assessments (manually initiated)P0
FR-026Reopen applicationCoordinator can reopen a submitted application for applicant to edit (logged action)P2
FR-027Return assessmentCoordinator can return an assessment to assessor for revision (logged action)P2

6.4 Assessor Scoring

IDRequirementDescriptionPriority
FR-030Restricted accessAssessors see only calls and applications assigned to themP0
FR-031View application materialsAssessors view/download assigned application form and supporting documentsP0
FR-032Score by criterionAssessors enter scores per criterion within configured ranges; add free-text commentsP0
FR-033COI declarationAssessors confirm conflict-of-interest declaration per call or per application before submittingP0
FR-034Submit and lockOn submit, assessment is timestamped and locked; unless returned by coordinatorP0
FR-035Draft assessmentAssessors can save in-progress assessments as draftsP1

6.5 Master Results

IDRequirementDescriptionPriority
FR-040Aggregate scoringPlatform calculates totals/averages across assessors per application, including optional weighted criteriaP0
FR-041Variance flaggingPlatform flags high variance between assessor scores (threshold configurable)P0
FR-042Master results viewCoordinator accesses master results with one row per application: per-assessor scores, aggregates, commentsP0
FR-043Export resultsCoordinator exports master results to XLSX; access restricted to coordinator roleP0
FR-044Ranking/sortingMaster results sortable by total score, average score, varianceP1

7. Non-Functional Requirements

7.1 Performance

IDRequirementTarget
NFR-001Page load timeKey pages load in <3 seconds under normal load
NFR-002Concurrent usersSupport 100+ concurrent applicants during peak submission windows
NFR-003Application scaleSupport hundreds to a few thousand applications per call
NFR-004File uploadSupport uploads up to 50MB per file with progress indication
NFR-005Export generationGenerate exports for 1000 applications in <60 seconds

7.2 Availability & Reliability

IDRequirementTarget
NFR-010System availability99.5% availability during open call windows (excluding planned maintenance)
NFR-011Scheduled maintenanceMaintenance windows scheduled outside peak hours with 24-hour notice
NFR-012BackupsDaily backups of database and file store; defined restore procedure
NFR-013Data retentionRetention policy configurable per call; default 7 years

7.3 Usability & Accessibility

IDRequirementTarget
NFR-020Browser supportLatest versions of Chrome, Edge, Safari, Firefox (desktop-first; mobile acceptable)
NFR-021AccessibilityWCAG 2.1 AA alignment for public applicant journeys
NFR-022Responsive designApplicant submission works on tablet and mobile devices
NFR-023LanguageEnglish (UK) as primary language; i18n-ready for future

7.4 Technical Standards

IDRequirementTarget
NFR-030Timezone handlingAll deadlines and timestamps stored in UTC; displayed in Europe/London
NFR-031API designRESTful API with OpenAPI specification
NFR-032Code qualityMinimum 80% test coverage for business logic
NFR-033DocumentationAPI documentation auto-generated; user guides provided

8. System Architecture

8.1 High-Level Architecture

┌─────────────────────────────────────────────────────────────────────────────┐
│                              CLIENT LAYER                                    │
├─────────────────────────────────────────────────────────────────────────────┤
│  ┌──────────────────┐  ┌──────────────────┐  ┌──────────────────┐          │
│  │  Applicant UI    │  │  Assessor UI     │  │  Coordinator UI  │          │
│  │  (Public)        │  │  (Authenticated) │  │  (Authenticated) │          │
│  └────────┬─────────┘  └────────┬─────────┘  └────────┬─────────┘          │
│           │                     │                     │                     │
│           └─────────────────────┼─────────────────────┘                     │
│                                 │                                           │
├─────────────────────────────────┼───────────────────────────────────────────┤
│                              API LAYER                                       │
├─────────────────────────────────┼───────────────────────────────────────────┤
│                                 ▼                                           │
│  ┌──────────────────────────────────────────────────────────────────┐      │
│  │                        API Gateway                                │      │
│  │        (Rate Limiting, Authentication, Request Routing)          │      │
│  └──────────────────────────────┬───────────────────────────────────┘      │
│                                 │                                           │
│  ┌──────────────────────────────┼───────────────────────────────────┐      │
│  │                     APPLICATION SERVICES                          │      │
│  ├──────────────────┬───────────┴───────────┬───────────────────────┤      │
│  │  Call Service    │  Application Service  │  Assessment Service   │      │
│  │  - CRUD calls    │  - Submissions        │  - Scoring            │      │
│  │  - Configuration │  - File handling      │  - Aggregation        │      │
│  │  - Status mgmt   │  - Confirmations      │  - Master results     │      │
│  └──────────────────┴───────────────────────┴───────────────────────┘      │
│                                                                             │
│  ┌──────────────────┬───────────────────────┬───────────────────────┐      │
│  │  User Service    │  Assignment Service   │  Notification Service │      │
│  │  - Auth/AuthZ    │  - Allocation         │  - Email receipts     │      │
│  │  - Roles         │  - Round-robin        │  - Reminders          │      │
│  │  - Profiles      │  - Progress tracking  │  - Templates          │      │
│  └──────────────────┴───────────────────────┴───────────────────────┘      │
│                                                                             │
├─────────────────────────────────────────────────────────────────────────────┤
│                              DATA LAYER                                      │
├─────────────────────────────────────────────────────────────────────────────┤
│  ┌──────────────────┐  ┌──────────────────┐  ┌──────────────────┐          │
│  │  PostgreSQL      │  │  File Storage    │  │  Redis Cache     │          │
│  │  (Primary DB)    │  │  (S3/Azure Blob) │  │  (Sessions)      │          │
│  └──────────────────┘  └──────────────────┘  └──────────────────┘          │
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘
                                    │
                    ┌───────────────┼───────────────┐
                    ▼               ▼               ▼
           ┌──────────────┐ ┌──────────────┐ ┌──────────────┐
           │ Email Service│ │ Virus Scanner│ │ SSO Provider │
           │ (SMTP/SES)   │ │ (ClamAV/API) │ │ (Optional)   │
           └──────────────┘ └──────────────┘ └──────────────┘

8.2 Technology Recommendations

LayerTechnologyRationale
FrontendReact with TypeScriptModern, component-based, strong typing
BackendNode.js/Express or Python/FastAPIAsync capabilities, JSON-native
DatabasePostgreSQLRelational integrity, JSON support, audit-friendly
File StorageAWS S3 / Azure BlobScalable, encrypted at rest
CacheRedisSession management, performance
EmailAWS SES / SendGridTransactional email reliability
Virus ScanningClamAV or cloud serviceFile security

9. Data Model

9.1 Entity Relationship Diagram

┌─────────────────┐       ┌─────────────────┐       ┌─────────────────┐
│   FundingCall   │       │   Application   │       │    Assessor     │
├─────────────────┤       ├─────────────────┤       ├─────────────────┤
│ call_id (PK)    │◄──────┤ call_id (FK)    │       │ assessor_id (PK)│
│ name            │       │ application_id  │       │ name            │
│ description     │       │   (PK)          │       │ email           │
│ open_at         │       │ applicant_name  │       │ organisation    │
│ close_at        │       │ applicant_email │       │ expertise_tags  │
│ status          │       │ submitted_at    │       └────────┬────────┘
│ requirements    │       │ status          │                │
│ criteria_config │       └────────┬────────┘                │
│ retention_policy│                │                         │
└─────────────────┘                │                         │
                                   │                         │
                          ┌────────┴────────┐                │
                          │                 │                │
                          ▼                 ▼                │
                 ┌─────────────────┐ ┌─────────────────┐     │
                 │ ApplicationFile │ │   Confirmation  │     │
                 ├─────────────────┤ ├─────────────────┤     │
                 │ file_id (PK)    │ │ confirmation_id │     │
                 │ application_id  │ │ application_id  │     │
                 │ filename        │ │ type            │     │
                 │ file_path       │ │ confirmed_at    │     │
                 │ file_size       │ │ ip_address      │     │
                 │ mime_type       │ └─────────────────┘     │
                 │ uploaded_at     │                         │
                 │ scan_status     │                         │
                 └─────────────────┘                         │
                                                             │
┌─────────────────────────────────────────────────────────────┘
│
│    ┌─────────────────┐       ┌─────────────────┐
│    │   Assignment    │       │   Assessment    │
│    ├─────────────────┤       ├─────────────────┤
└───►│ assignment_id   │◄──────┤ assessment_id   │
     │   (PK)          │       │   (PK)          │
     │ application_id  │       │ assignment_id   │
     │ assessor_id (FK)│       │ scores_json     │
     │ assigned_at     │       │ overall_score   │
     │ due_at          │       │ comments        │
     │ status          │       │ coi_confirmed   │
     └─────────────────┘       │ submitted_at    │
                               │ status          │
                               └─────────────────┘

┌─────────────────┐
│    AuditLog     │
├─────────────────┤
│ event_id (PK)   │
│ actor_id        │
│ actor_role      │
│ action          │
│ target_type     │
│ target_id       │
│ details_json    │
│ timestamp       │
│ ip_address      │
└─────────────────┘

9.2 Entity Definitions

EntityKey FieldsDescription
FundingCallcall_id, name, description, open_at, close_at, status, submission_requirements, edi_link, criteria_config, retention_policyA single application window with deadline and configuration
Applicationapplication_id, call_id, applicant_details, files, confirmations, status, submitted_atAn applicant submission with uploaded files and confirmations
ApplicationFilefile_id, application_id, filename, file_path, file_size, mime_type, uploaded_at, scan_statusIndividual uploaded file with virus scan status
Confirmationconfirmation_id, application_id, type, confirmed_at, ip_addressRecord of applicant confirmation (guidance, EDI, consent)
Assessorassessor_id, name, email, organisation, expertise_tagsA reviewer who scores assigned applications
Assignmentassignment_id, application_id, assessor_id, assigned_at, due_at, statusLink between application and assessor
Assessmentassessment_id, assignment_id, scores_json, overall_score, comments, coi_confirmed, submitted_at, statusAssessor's evaluation with scores and comments
AuditLogevent_id, actor_id, actor_role, action, target_type, target_id, details_json, timestamp, ip_addressImmutable log of all significant actions

10. Key Workflows

10.1 Applicant Submission Workflow

┌─────────────────────────────────────────────────────────────────────────────┐
│                        APPLICANT SUBMISSION WORKFLOW                         │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│    ┌──────────────┐    ┌──────────────────────────┐                        │
│    │ Browse Open  │───►│ Select Funding Call      │                        │
│    │ Calls        │    └───────────┬──────────────┘                        │
│    └──────────────┘                │                                        │
│                                    ▼                                        │
│    ┌──────────────────────────────────────────────────────────────────┐    │
│    │                    UPLOAD DOCUMENTS                               │    │
│    ├──────────────────────────────────────────────────────────────────┤    │
│    │  ┌────────────────────┐    ┌─────────────────────────────────┐  │    │
│    │  │ Upload Application │    │ Upload Supporting Materials     │  │    │
│    │  │ Form (Required)    │    │ (Pitch Deck, Video, Images,     │  │    │
│    │  │                    │    │  Letters of Support)            │  │    │
│    │  └────────────────────┘    └─────────────────────────────────┘  │    │
│    └──────────────────────────────────────────────────────────────────┘    │
│                                    │                                        │
│                                    ▼                                        │
│    ┌──────────────────────────────────────────────────────────────────┐    │
│    │                    REQUIRED CONFIRMATIONS                         │    │
│    ├──────────────────────────────────────────────────────────────────┤    │
│    │  ☐ Guidance/Terms Read                                           │    │
│    │  ☐ EDI Form Completed (External)                                 │    │
│    │  ☐ Data Sharing Consent                                          │    │
│    └──────────────────────────────────────────────────────────────────┘    │
│                                    │                                        │
│                    ┌───────────────┴───────────────┐                       │
│                    │      Before Deadline?         │                       │
│                    └───────────────┬───────────────┘                       │
│                         YES        │         NO                            │
│                          │         │          │                            │
│                          ▼         │          ▼                            │
│              ┌───────────────────┐ │  ┌───────────────────┐               │
│              │ SUBMIT APPLICATION│ │  │ Submission Blocked │               │
│              └─────────┬─────────┘ │  │ (Deadline Passed)  │               │
│                        │           │  └───────────────────┘               │
│                        ▼           │                                       │
│    ┌──────────────────────────────┐│                                       │
│    │    CONFIRMATION              ││                                       │
│    │  • On-screen confirmation    ││                                       │
│    │  • Email receipt sent        ││                                       │
│    │  • Application locked        ││                                       │
│    └──────────────────────────────┘│                                       │
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘

10.2 Coordinator Post-Deadline Workflow

┌─────────────────────────────────────────────────────────────────────────────┐
│                     COORDINATOR POST-DEADLINE WORKFLOW                       │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│    ┌─────────────────────────────────────┐                                 │
│    │         APPLICATIONS CLOSE          │                                 │
│    │  (Call status → Closed/In Assessment)│                                │
│    └──────────────────┬──────────────────┘                                 │
│                       │                                                     │
│    ┌──────────────────┼──────────────────┐                                 │
│    ▼                  ▼                  ▼                                  │
│  ┌────────────┐ ┌────────────────┐ ┌──────────────┐                        │
│  │ View       │ │ Assign to      │ │ Track        │                        │
│  │Applications│ │ Assessors      │ │ Progress     │                        │
│  │ Spreadsheet│ │                │ │              │                        │
│  └─────┬──────┘ └───────┬────────┘ └──────┬───────┘                        │
│        │                │                  │                                │
│        ▼                ▼                  │                                │
│  ┌────────────┐ ┌────────────────────────┐│                                │
│  │ Export     │ │    ASSIGN TO ASSESSORS ││                                │
│  │ Metadata   │ ├────────────────────────┤│                                │
│  │ (CSV/XLSX) │ │ ┌────────┐ ┌────────┐ ││                                │
│  └────────────┘ │ │Assessor│ │Assessor│ ││                                │
│                 │ │   A    │ │   B    │ ││                                │
│                 │ └────┬───┘ └───┬────┘ ││                                │
│                 │      │         │      ││                                │
│                 │      └────┬────┘      ││                                │
│                 │           ▼           ││                                │
│                 │ ┌──────────────────┐  ││                                │
│                 │ │ Applications     │  ││                                │
│                 │ │ Assigned         │  ││                                │
│                 │ └──────────────────┘  ││                                │
│                 └────────────────────────┘│                                │
│                                           │                                │
│    ┌──────────────────────────────────────┴─────────────────────────────┐  │
│    │                      MONITOR & REMIND                               │  │
│    │  • View progress dashboard                                          │  │
│    │  • Send reminder emails to assessors with outstanding work          │  │
│    └─────────────────────────────────────────────────────────────────────┘  │
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘

10.3 Assessor Review Workflow

┌─────────────────────────────────────────────────────────────────────────────┐
│                         ASSESSOR REVIEW WORKFLOW                             │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│    ┌────────────────────────────────────┐                                  │
│    │ Login → View Assigned Applications │                                  │
│    └──────────────────┬─────────────────┘                                  │
│                       │                                                     │
│                       ▼                                                     │
│    ┌─────────────────────────────────────────────────────────────────┐     │
│    │                    EVALUATE APPLICATION                          │     │
│    ├─────────────────────────────────────────────────────────────────┤     │
│    │                                                                  │     │
│    │  ┌────────────────┐  ┌────────────────┐  ┌────────────────┐    │     │
│    │  │ Review         │  │ Score          │  │ Add            │    │     │
│    │  │ Application    │  │ Criteria       │  │ Comments       │    │     │
│    │  │ Materials      │  │                │  │                │    │     │
│    │  └────────────────┘  └────────────────┘  └────────────────┘    │     │
│    │                                                                  │     │
│    │  ┌─────────────────────────────────────────────────────────┐   │     │
│    │  │ Confirm COI Declaration                                  │   │     │
│    │  └─────────────────────────────────────────────────────────┘   │     │
│    │                                                                  │     │
│    └─────────────────────────────────────────────────────────────────┘     │
│                       │                                                     │
│                       ▼                                                     │
│    ┌─────────────────────────────────────────────────────────────────┐     │
│    │                    SUBMIT ASSESSMENT                             │     │
│    │  • Assessment timestamped                                        │     │
│    │  • Assessment locked                                             │     │
│    │  • Confirmation displayed                                        │     │
│    └─────────────────────────────────────────────────────────────────┘     │
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘

10.4 Results Compilation Workflow

┌─────────────────────────────────────────────────────────────────────────────┐
│                       RESULTS COMPILATION WORKFLOW                           │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│    ┌─────────────────────────────────────────────────────────────────┐     │
│    │              ASSESSMENTS COLLECTED FROM ALL REVIEWERS            │     │
│    │  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐          │     │
│    │  │ Assessment   │  │ Assessment   │  │ Assessment   │          │     │
│    │  │ by Reviewer A│  │ by Reviewer B│  │ by Reviewer C│          │     │
│    │  │     ✓        │  │     ✓        │  │     ✓        │          │     │
│    │  └──────┬───────┘  └──────┬───────┘  └──────┬───────┘          │     │
│    │         │                 │                 │                   │     │
│    │         └─────────────────┼─────────────────┘                   │     │
│    │                           │                                     │     │
│    └───────────────────────────┼─────────────────────────────────────┘     │
│                                ▼                                            │
│    ┌─────────────────────────────────────────────────────────────────┐     │
│    │                      MASTER SPREADSHEET                          │     │
│    ├─────────────────────────────────────────────────────────────────┤     │
│    │  • Combined Scores (per assessor)                                │     │
│    │  • Aggregated Totals/Averages                                    │     │
│    │  • Reviewer Comments                                             │     │
│    │  • Variance Flags                                                │     │
│    │  • Summary Overview                                              │     │
│    └──────────────────────────────┬──────────────────────────────────┘     │
│                                   │                                         │
│              ┌────────────────────┼────────────────────┐                   │
│              ▼                                         ▼                    │
│    ┌──────────────────────┐              ┌──────────────────────┐          │
│    │ COORDINATOR VIEW ONLY│              │  REVIEW PROGRESS     │          │
│    │ 🔒 Restricted Access │              │  📊 Track Assessor   │          │
│    │ • Full results access│              │     Status           │          │
│    │ • Export to XLSX     │              │  • Completion rates  │          │
│    └──────────────────────┘              └──────────────────────┘          │
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘

11. User Interface Requirements

11.1 Minimum Screen Set

UserScreenKey Components
ApplicantFunding Call LandingList of open calls, call details, "Start Application" CTA
ApplicantApplication SubmissionFile upload zone, confirmation checkboxes, progress indicator, submit button
ApplicantSubmission ConfirmationSuccess message, reference number, receipt details
AssessorAssigned Applications ListCall filter, application cards with status badges
AssessorAssessment FormFile viewer, scoring rubric, comment fields, COI checkbox, submit
CoordinatorCall SetupMulti-step wizard: basic info, requirements, criteria, assessors
CoordinatorApplications TableSpreadsheet-style grid with filters, sort, export, assignment actions
CoordinatorAssignment ToolBulk selection, round-robin allocation, manual assign modal
CoordinatorProgress DashboardCharts and tables showing completion by assessor and by application
CoordinatorMaster ResultsAggregated view with per-assessor breakdown, variance flags, export

11.2 Design Principles

  1. Clarity: Clear visual hierarchy, minimal cognitive load
  2. Consistency: Uniform patterns across all user journeys
  3. Feedback: Immediate feedback on all actions (loading states, success/error messages)
  4. Accessibility: Keyboard navigation, screen reader support, sufficient colour contrast
  5. Responsiveness: Works on desktop (primary), tablet, and mobile (applicant flow)

11.3 Key UI Patterns

PatternUsage
Progress StepperMulti-step forms (application submission, call setup)
Data TableApplications list, master results, assessor pool
Card GridApplicant call selection, assessor application list
Modal DialogConfirmations, assignment, quick actions
File Upload ZoneDrag-and-drop with validation feedback
Toast NotificationsSuccess/error messages, async operation completion

12. Security, Privacy & Compliance

12.1 Authentication & Authorisation

RequirementImplementation
User authenticationEmail/password with strong password policy; optional SSO/SAML
Role-Based Access Control (RBAC)Enforced server-side on all API endpoints and file downloads
Session managementSecure session tokens; timeout after 30 minutes inactivity
Multi-factor authenticationOptional for coordinator and assessor roles

12.2 Data Protection

RequirementImplementation
Encryption at restAll files and database encrypted (AES-256)
Encryption in transitTLS 1.2+ for all traffic
Data minimisationStore only what is necessary for administration and assessment
EDI data handlingEDI completion stored as acknowledgement only; actual EDI data in external system
PII protectionApplicant PII accessible only to coordinators; anonymised for reporting where possible

12.3 Compliance

RegulationRequirements
GDPRPrivacy notice at submission; explicit consent recording; right to erasure support; data retention policies
UK Data Protection Act 2018Lawful basis for processing; security measures; breach notification procedures
AccessibilityWCAG 2.1 AA for public-facing pages

12.4 Audit & Logging

All significant actions are logged immutably:

  • Application submissions
  • File downloads (by whom, when)
  • Assessor assignments
  • Assessment submissions
  • Administrative overrides
  • Login/logout events
  • Configuration changes

13. Integration Requirements

13.1 External Services

ServicePurposeIntegration Type
Email Service (SMTP/SES/SendGrid)Submission receipts, assessor notifications, remindersAPI
Virus Scanning (ClamAV/cloud)Scan uploaded files before storageAPI or daemon
External EDI PlatformLink-out for EDI data collectionURL redirect
SSO/Identity Provider (Optional)Single sign-on for assessors and coordinatorsSAML/OIDC

13.2 API Design

  • REST API with OpenAPI 3.0 specification
  • Versioned endpoints (e.g., /api/v1/...)
  • Standard HTTP methods (GET, POST, PUT, PATCH, DELETE)
  • JSON request/response bodies
  • Consistent error format with error codes and messages
  • Rate limiting to prevent abuse
  • API keys for service-to-service communication

13.3 Webhooks (Future)

Potential webhook events for external integrations:

  • application.submitted
  • assessment.completed
  • call.status_changed

14. Acceptance Criteria

14.1 Critical Acceptance Criteria (Must Pass for Go-Live)

IDCriterionVerification
AC-01Applicants cannot submit without required upload(s) and all required confirmations tickedAutomated test + manual verification
AC-02Applicants cannot submit after the call close date-timeAutomated test with time manipulation
AC-03Coordinator can view spreadsheet-style applications list after deadline and export metadataManual verification with test data
AC-04Coordinator can assign each application to multiple assessorsManual verification
AC-05Assessors only see their assigned applicationsSecurity test with multiple assessor accounts
AC-06Assessors can submit scores and comments per criterionFunctional test
AC-07Assessors cannot see other assessors' assessments or master resultsSecurity test
AC-08Master results aggregates scores from multiple assessorsCalculation verification test
AC-09Master results visible/exportable only to coordinator roleSecurity test
AC-10Progress dashboard accurately shows completion statusData integrity test
AC-11All actions are logged in audit logLog verification test
AC-12Files are scanned for viruses before storageIntegration test with test virus

14.2 Performance Acceptance Criteria

IDCriterionTarget
PAC-01Application submission page loads<3 seconds
PAC-02Master results page loads with 500 applications<5 seconds
PAC-03Export 1000 applications to XLSX<60 seconds
PAC-04System handles 100 concurrent submissionsNo failures, <5s response time

15. Scope & Constraints

15.1 In Scope (Version 1)

  • Funding call configuration (deadline, requirements, scoring criteria, assessor pool)
  • Applicant submission (file upload, confirmations, submission receipt)
  • Assessor assignment and assessment capture (scores, comments, timestamps)
  • Progress dashboards and exports for coordinator
  • Role-based access control (RBAC), audit logging, secure file storage
  • Email notifications (receipts, reminders)

15.2 Out of Scope (Version 1)

FeatureRationaleFuture Version
Payment processing / grant disbursementSeparate financial systemv2+
End-to-end EDI data collectionHandled by separate system; platform stores acknowledgement only-
Applicant outcome communicationsCan be added later; v1 focuses on submission receipt onlyv2
Panel moderation (live discussion, consensus scoring)Complex feature; v1 focuses on independent assessmentv2
Complex budget validation / financial modellingOut of core scopev2+
Mobile native appsWeb-responsive sufficient for v1v2
Multi-language supportEnglish (UK) for v1; i18n-readyv2

15.3 Constraints

ConstraintDescription
TimelineMust be operational for next funding call (target: [TBC])
BudgetDevelopment budget to be confirmed
HostingMust be hosted on UK-based or EU-based infrastructure for GDPR
Browser SupportLatest versions of Chrome, Edge, Safari, Firefox
TimezoneAll deadlines enforced in Europe/London timezone

15.4 Assumptions

  • Applicants have access to modern web browsers
  • Coordinators have basic technical literacy
  • Assessors have email access and can receive notifications
  • External EDI platform remains available for link-out
  • Email service provider is reliable for transactional emails

15.5 Dependencies

  • Selection of hosting provider / cloud platform
  • Procurement of email service
  • Procurement or deployment of virus scanning service
  • (Optional) SSO provider configuration

16. Glossary

TermDefinition
Funding CallA single application window with its own deadline, requirements, criteria, and assessor pool
ApplicationAn applicant submission associated with a funding call, including uploaded files and confirmations
AssessorA reviewer who scores assigned applications against defined criteria
Project CoordinatorCall administrator who manages calls, assigns assessors, and accesses master results
EDI FormAn external Equality, Diversity and Inclusion monitoring form; completion is acknowledged in-platform
RBACRole-Based Access Control - restricting access based on user roles
COIConflict of Interest - a situation where an assessor has a personal or professional interest that could bias their assessment
Master ResultsAggregated view of all assessments for a call, visible only to coordinators
Round-Robin AssignmentAutomatic distribution of applications to assessors in rotation to balance workload

Appendix A: AFD Generation Instructions

Note: This section contains instructions for generating Architecture and Feature Documentation (AFD) using the prd2build workflow. Do not generate these artifacts now—use these instructions when ready to proceed with documentation generation.

A.1 Overview

The Architecture and Feature Documentation (AFD) comprises:

  1. Architecture Decision Records (ADRs) - Documenting key technical decisions
  2. Feature Specifications - Detailed requirements, API contracts, edge cases
  3. Implementation Plans - Milestones, epics, and tasks
  4. Test Documentation - Test strategy, test cases, TDD approach
  5. Design Mockups - HTML mockups with design tokens

A.2 Documentation Generation Command

/prd2build --ticket FUND-001 /path/to/funding-platform-prd.md

This will generate:

FolderContents
docs/base/adr/27+ Architecture Decision Records
docs/base/specification/Style guide, glossary, security model
docs/base/sparc/SPARC methodology docs, traceability matrix
docs/features/FUND-001/specification/Requirements, user stories, API contracts, edge cases
docs/features/FUND-001/implementation/Milestones, epics, tasks, INDEX.md
docs/features/FUND-001/testing/Test strategy, test cases, TDD approach
docs/features/FUND-001/design/mockups/HTML mockups with design tokens

A.3 Expected ADR Topics

The following ADRs should be generated for this platform:

ADRTopic
ADR-001System Architecture (Monolith vs Microservices)
ADR-002Frontend Framework Selection
ADR-003Backend Framework Selection
ADR-004Database Technology
ADR-005File Storage Strategy
ADR-006Authentication & Authorisation
ADR-007Email Service Integration
ADR-008Virus Scanning Approach
ADR-009Audit Logging Strategy
ADR-010API Design Standards
ADR-011Error Handling Strategy
ADR-012Timezone Handling
ADR-013File Upload Validation
ADR-014Score Aggregation Algorithm
ADR-015Session Management
ADR-016Rate Limiting
ADR-017Export Generation (CSV/XLSX)
ADR-018Deployment Strategy
ADR-019Environment Configuration
ADR-020Testing Strategy
ADR-021Monitoring & Alerting
ADR-022Backup & Recovery
ADR-023Data Retention & Deletion
ADR-024GDPR Compliance Implementation
ADR-025Accessibility Implementation
ADR-026Performance Optimisation
ADR-027Security Headers & CORS

A.4 Verification After Generation

# Check artifact counts
TICKET="FUND-001"
echo "=== Base Documentation ===" && \
echo "ADR files: $(ls docs/base/adr/ADR-*.md 2>/dev/null | wc -l) (need 27)" && \
echo "Spec files: $(ls docs/base/specification/*.md 2>/dev/null | wc -l) (need 3+)" && \
echo "" && \
echo "=== Feature Documentation ($TICKET) ===" && \
echo "Spec files: $(ls docs/features/$TICKET/specification/*.md 2>/dev/null | wc -l) (need 7+)" && \
echo "Tasks: $(ls docs/features/$TICKET/implementation/tasks/TASK-*.md 2>/dev/null | wc -l) (need 20+)" && \
echo "INDEX.md: $(wc -l < docs/features/$TICKET/implementation/INDEX.md 2>/dev/null || echo 0) lines (need 400+)"

Appendix B: DDD Generation Instructions

Note: This section contains instructions for generating Domain-Driven Design (DDD) documentation. Do not generate these artifacts now—use these instructions when ready to proceed.

B.1 Overview

The Domain-Driven Design documentation comprises:

  1. Domain Model - Core domain concepts and relationships
  2. Bounded Contexts - Logical boundaries within the system
  3. Aggregates - Consistency boundaries and root entities
  4. Repositories - Data access patterns
  5. Database Schema - Physical data model
  6. Migrations - Database migration scripts

B.2 Expected DDD Artifacts

FileDescription
docs/base/ddd/domain-model.mdCore domain entities, value objects, relationships
docs/base/ddd/bounded-contexts.mdContext boundaries: Call Management, Submission, Assessment, Results, User Management
docs/base/ddd/aggregates.mdAggregate roots: FundingCall, Application, Assessment
docs/base/ddd/repositories.mdRepository interfaces and data access patterns
docs/base/ddd/database-schema.mdDetailed database schema with indexes, constraints
docs/base/ddd/migrations/Ordered migration scripts
docs/base/ddd/events.mdDomain events for event-driven patterns
docs/base/ddd/services.mdDomain services and application services

B.3 Bounded Contexts for This Platform

┌─────────────────────────────────────────────────────────────────────────────┐
│                           BOUNDED CONTEXTS                                   │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│  ┌───────────────────────┐    ┌───────────────────────┐                    │
│  │   CALL MANAGEMENT     │    │     SUBMISSION        │                    │
│  │   CONTEXT             │    │     CONTEXT           │                    │
│  ├───────────────────────┤    ├───────────────────────┤                    │
│  │ • FundingCall         │    │ • Application         │                    │
│  │ • CallConfiguration   │◄───┤ • ApplicationFile     │                    │
│  │ • AssessorPool        │    │ • Confirmation        │                    │
│  │ • Criterion           │    │ • Applicant           │                    │
│  └───────────────────────┘    └───────────────────────┘                    │
│            │                            │                                   │
│            │                            │                                   │
│            ▼                            ▼                                   │
│  ┌───────────────────────┐    ┌───────────────────────┐                    │
│  │     ASSESSMENT        │    │      RESULTS          │                    │
│  │     CONTEXT           │    │      CONTEXT          │                    │
│  ├───────────────────────┤    ├───────────────────────┤                    │
│  │ • Assignment          │───►│ • AggregatedResult    │                    │
│  │ • Assessment          │    │ • VarianceFlag        │                    │
│  │ • Score               │    │ • RankingEntry        │                    │
│  │ • COIDeclaration      │    │ • ExportRequest       │                    │
│  └───────────────────────┘    └───────────────────────┘                    │
│                                                                             │
│  ┌───────────────────────┐    ┌───────────────────────┐                    │
│  │   USER MANAGEMENT     │    │      AUDIT            │                    │
│  │   CONTEXT             │    │      CONTEXT          │                    │
│  ├───────────────────────┤    ├───────────────────────┤                    │
│  │ • User                │    │ • AuditLog            │                    │
│  │ • Role                │    │ • AuditEvent          │                    │
│  │ • Permission          │    │                       │                    │
│  │ • Session             │    │                       │                    │
│  └───────────────────────┘    └───────────────────────┘                    │
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘

B.4 Aggregate Roots

AggregateRoot EntityEnclosed EntitiesInvariants
FundingCallFundingCallCallConfiguration, Criterion[], AssessorPoolMember[]Deadline must be in future when opened; criteria must exist before assessment
ApplicationApplicationApplicationFile[], Confirmation[]Cannot submit without required confirmations; cannot submit after deadline
AssessmentAssessmentScore[], CommentCannot submit without all criteria scored; COI must be declared
UserUserRole[], Permission[]Must have at least one role

B.5 Domain Events

EventTriggerConsumers
ApplicationSubmittedApplicant submits applicationNotification Service (send receipt)
AssessmentCompletedAssessor submits assessmentProgress Tracker, Results Aggregator
AllAssessmentsCompletedLast assessor completes for an applicationResults Aggregator
CallStatusChangedCoordinator changes call statusNotification Service (if configured)
AssessorAssignedCoordinator assigns assessorNotification Service (send assignment email)
ReminderRequestedCoordinator triggers reminderNotification Service

B.6 Generation with prd2build

DDD artifacts are generated as part of the base documentation:

/prd2build --ticket FUND-001 /path/to/funding-platform-prd.md

For regeneration of base documentation including DDD:

/prd2build --ticket FUND-001 /path/to/funding-platform-prd.md --regenerate-base

B.7 Database Schema Considerations

Key schema design decisions to document:

  1. UUID vs Integer IDs - Prefer UUIDs for distributed safety and security
  2. JSON columns - Use for flexible configuration (criteria_config, scores_json)
  3. Soft deletes - Consider for audit trail (is_deleted flag vs hard delete)
  4. Timestamps - All tables should have created_at, updated_at
  5. Indexes - Index foreign keys and frequently filtered columns
  6. Constraints - Enforce business rules at database level where practical

Document History

VersionDateAuthorChanges
1.029 January 2026ClaudeInitial PRD created from specification

End of Document

Related Documents