Non-Functional Requirements
Non-Functional Requirements (NFR): Bilko{{PROJECT_NAME}}
Project:
Bilko — Balkan Accounting SaaS{{PROJECT_NAME}} Version:1.0{{VERSION}} Date:2026-02-25{{DATE}} Author:John (AI Director){{AUTHOR}} Status:FinalDraft | In Review | Approved Reviewers:Alem Bašić (CEO){{REVIEWERS}}
Document History
| Version | Date | Author | Changes |
|---|---|---|---|
| 0.1 | Initial draft | ||
1. NFR Overview
| Category | # Requirements | Highest Priority | Owner |
|---|---|---|---|
| Performance | |||
| Scalability | |||
| Availability | |||
| Security | Critical | ||
| Reliability | |||
| Usability | |||
| Compatibility | |||
| Maintainability | |||
| Compliance | |||
| Data |
2. Performance Requirements
| ID | Requirement | Metric | Target | Measurement Conditions | Measurement Method | Priority |
|---|---|---|---|---|---|---|
| NFR-P01 | Time to Interactive | < 3 seconds | 4G connection, cold cache | Lighthouse / WebPageTest | Must Have | |
| NFR-P02 | Time to Interactive | < |
Warm |
Lighthouse | Must Have | |
| NFR-P03 | < 500ms | Must Have | ||||
| NFR-P04 | API response time ( | |||||
| p95 response time | < 2 seconds | APM tool | Should Have | |||
| NFR-P05 | Database query time | p95 query time | < 100ms | Normal load | DB monitoring | Must Have |
| NFR-P06 | {{SIZE}}MB in < |
Load testing | {{PRIORITY}} | |||
| NFR-P07 | Search response time | Normal load | APM tool | Should Have | ||
| NFR- |
Report generation | Completion time | < {{TIME}} seconds | Normal load | APM tool | Could Have |
| NFR-P09 | Core Web Vitals: LCP | Largest Contentful Paint | < 2.5 seconds | Mobile, 4G | Lighthouse | Must Have |
| NFR- |
Core Web Vitals: CLS | Cumulative Layout Shift | < 0.1 | Any device | Lighthouse | Must Have |
3. Scalability Requirements
| ID | Requirement | Metric | Launch Target | 12-Month Target | Measurement Method | Priority | |
|---|---|---|---|---|---|---|---|
| NFR-S01 | Concurrent |
Load testing ( |
Must Have | ||||
| NFR-S02 | Load testing | Must Have | |||||
| NFR-S03 | |||||||
| Data volume |
{{X}}GB/year | Storage |
Should Have | ||||
| NFR-S04 | API rate limits | Max requests per user/hour | {{X}} requests | {{X}} requests | API gateway metrics | Must Have | |
| NFR-S05 | File storage growth | Storage volume | {{X}}GB | {{X}}GB | Storage monitoring | Should Have | |
| NFR-S06 | Auto-scaling response | Time to |
< |
< |
Cloud console metrics | Should Have | |
| NFR-S07 | Geographic distribution | Regions supported | {{REGIONS}} | {{REGIONS}} | CDN configuration | {{PRIORITY}} |
4. Availability Requirements
| ID | Requirement | Target | Measurement Period | Exclusions | Priority |
|---|---|---|---|---|---|
| NFR-A01 | System uptime SLA | ≥ {{99. |
Monthly rolling | Scheduled maintenance |
Must Have |
| NFR-A02 | Scheduled maintenance window | Max |
Monthly | Must Have | |
| NFR-A03 | Maintenance notification lead time | ≥ 48 hours notice | Per event | Emergency patches: 4 hours | Must Have |
| NFR-A04 | RPO (Recovery Point Objective) | Max |
Per incident | N/A | Must Have |
| NFR-A05 | RTO (Recovery Time Objective) | System restored within |
Per incident | N/A | Must Have |
| NFR-A06 | Database backup frequency | Ongoing | N/A | Must Have | |
| NFR-A07 | Backup retention | {{X}} days rolling | Ongoing | N/A | Must Have |
| NFR-A08 | Disaster recovery test | Pass DR drill | Annually | N/A | Should Have |
SLA Calculation Reference:
| Uptime % | Annual Downtime | Monthly Downtime |
|---|---|---|
| 99.9% | 8.7 hours | 43.8 minutes |
| 99.5% | 43.8 hours | 3.6 hours |
| 99.0% | 87.6 hours | 7.3 hours |
5. Security Requirements
| ID | Requirement | Category | Target / Standard | Measurement Method | Priority |
|---|---|---|---|---|---|
| NFR-SEC01 | Authentication method | Auth | Code review + pentest | Must Have | |
| NFR-SEC02 | Password policy | Auth | Min 8 chars, 1 uppercase, 1 number, 1 special |
Automated test | Must Have |
| NFR-SEC03 | Auth | Automated test | Must Have | ||
| NFR-SEC04 | Data encryption in transit | Encryption | TLS 1.3 |
SSL Labs scan (grade A+) | Must Have |
| NFR-SEC05 | Data encryption at rest | Encryption | Infrastructure review | Must Have | |
| NFR-SEC06 | Input validation | Injection Prevention | All inputs sanitized server- |
Code review + SAST | Must Have |
| NFR-SEC07 | XSS prevention | Injection Prevention | OWASP ZAP / |
Must Have | |
| NFR-SEC08 | Must Have | ||||
| NFR-SEC09 | Rate limiting | DDoS/Abuse | API: {{X}} req/min per IP; login: 5 attempts/15min | Load testing | Must Have |
| NFR-SEC10 | Audit logging | Compliance | All auth events, |
Log review | Must Have |
| NFR- |
Automated |
Must Have | |||
| NFR-SEC12 | Secret management | Secrets | No secrets in code/git; use env vars or vault | Code scan + git history check | Must Have |
| NFR-SEC13 | Role-based access control | Authorization | Principle of least privilege; no |
Code review + penetration test | Must Have |
| NFR- |
Security headers | HTTP Security | HSTS, X-Frame- |
securityheaders.com scan | Must Have |
| NFR- |
Should |
||||
| NFR-SEC16 | Penetration testing | Operations | Annual external pentest | Third-party report | Should Have |
6. Reliability Requirements
| ID | Requirement | Metric | Target | Measurement Method | Priority |
|---|---|---|---|---|---|
| NFR-R01 | Application error rate | 5xx errors / total requests | < 0.1% | APM monitoring | Must Have |
| NFR-R02 | |||||
| NFR-R03 | |||||
| NFR-R04 | Must Have | ||||
| NFR-R05 | Data integrity | Zero data corruption events | 0 |
Database integrity checks | Must Have |
| NFR-R06 | Transaction integrity | Atomic transactions | ACID compliance | Database tests | Must Have |
| NFR-R07 | Graceful degradation | Partial failure handling | Non-critical features fail gracefully; core stays up | Chaos testing | Should Have |
| NFR-R08 | Health check endpoint | System health observable | / |
Must Have |
7. Usability Requirements
| ID | Requirement | Target | Measurement Method | Priority |
|---|---|---|---|---|
| NFR-U01 | Time to |
New user |
Must Have | |
| NFR-U02 | Must Have | |||
| NFR-U03 | WCAG compliance | WCAG 2.1 Level AA | Automated axe-core |
Must Have |
| NFR-U04 | Keyboard navigation | All interactive elements reachable by keyboard | Manual testing | Must Have |
| NFR-U05 | Screen reader support | Compatible with NVDA / VoiceOver | Manual testing | Should Have |
| NFR-U06 | Mobile responsiveness | Fully functional on 375px–1440px |
Manual + | |
| Must Have | ||||
| NFR-U07 | ≥ 4.5:1 for normal text; ≥ 3:1 for large text | Contrast checker | Must Have | |
| NFR-U08 | Onboarding completion | {{X}}% of new users complete onboarding | Analytics | Should Have |
| NFR-U09 | Help / documentation | All |
Content audit |
8. Compatibility Requirements
| ID | Requirement | Category | Target | Priority |
|---|---|---|---|---|
| NFR-C01 | Web browsers |
Browser | Chrome 100+, Firefox 100+, Safari 16+, Edge 100+ | Must Have |
| NFR-C02 | Browser | Safari iOS 15+, Chrome Android 100+ | Must Have | |
| NFR-C03 | Mobile operating systems | OS | iOS 15+, Android 11+ | Must Have |
| NFR-C04 | Must Have | |||
| NFR-C05 | Must Have | |||
| NFR-C06 | Should |
|||
| NFR-C07 | Third-party integrations | API | {{EXTERNAL_SYSTEM}} API version {{VERSION}} | Must Have |
| NFR-C08 | Email clients | Gmail, Outlook, Apple Mail, mobile clients | Should Have |
9. Maintainability Requirements
| ID | Requirement | Metric | Target | Measurement Method | Priority |
|---|---|---|---|---|---|
| NFR-M01 | Test coverage |
% of code covered by automated tests | ≥ 80% overall; ≥ 95% for |
CI coverage report | Must Have |
| NFR-M02 | of |
Must Have | |||
| NFR-M03 | Cyclomatic complexity | Per-function complexity | Max 10 per function; refactor if exceeded | Static analysis (SonarQube) | Should Have |
| NFR-M04 | Dependency currency | % of dependencies on current major version | ≥ 80% current; 0 dependencies with critical CVEs | Automated scan | Should Have |
| NFR-M05 | Deployment frequency | Time to deploy a bug fix to production | < 1 hour from |
CI/CD metrics | Should Have |
| NFR- |
Available for all major features | Code review | Could Have | ||
| NFR-M07 | Logging completeness | Log coverage for operations | All |
Must Have | |
| NFR- |
|||||
| Must Have |
10. Compliance Requirements
| ID | Regulation | Applicability | Requirement | Technical Implementation | Priority | |
|---|---|---|---|---|---|---|
| NFR-COMP01 | User data deletion API; audit logs; DPA in | Must Have | ||||
| NFR-COMP02 | Must Have | |||||
| NFR-COMP03 | ||||||
| GDPR — Data minimization | Yes | Collect only data necessary for |
BA review of data |
Must Have | ||
| NFR-COMP04 | {{HIPAA}} | {{YES/NO — healthcare data}} | PHI protection; audit logs; BAA required | Role-based access; encrypted PHI fields | {{PRIORITY}} | |
| NFR-COMP05 | {{PCI-DSS}} | {{YES/NO — payment card data}} | SAQ compliance; tokenization; no card storage | Stripe/payment gateway tokenization | {{PRIORITY}} | |
| NFR-COMP06 | Must Have | |||||
| NFR-COMP07 | ||||||
| WCAG 2.1 AA | Digital accessibility |
NFR- |
Must Have |
11. Data Requirements
| ID | Requirement | Category | Target | Implementation | Priority |
|---|---|---|---|---|---|
| NFR-D01 | Must Have | ||||
| NFR-D02 | |||||
| Data retention — logs | Retention | Application logs: 90 days; Audit |
Log rotation |
Must Have | |
| NFR- |
Database backup frequency | Backup | Full backup daily; transaction logs every |
Automated backup schedule | Must |
| NFR-D04 | Backup encryption | Backup | Backups encrypted with AES-256 | Infrastructure config | Must Have |
| NFR-D05 | Must Have | ||||
| NFR-D06 | PII identification | Privacy | All PII fields |
Data dictionary |
Must Have |
| NFR-D07 | Data export |
Portability | User can export |
Export API endpoint | Must Have |
| NFR-D08 | Must Have | ||||
| NFR-D09 | Archival strategy | Retention | Data older than {{X}} years archived to cold storage | Archive schedule | Should Have |
12. NFR Testing & Verification Plan
| NFR Category | Testing Method | Tools | Frequency | Pass Criteria |
|---|---|---|---|---|
| Performance | Pre-launch + monthly | All NFR-P targets met |
||
| Scalability | k6 | Pre-launch | ||
| Security | SAST + |
Snyk, OWASP |
CI (SAST), Pre-launch ( |
No critical/high vulnerabilities unresolved |
| Accessibility | axe- |
Per sprint | WCAG 2.1 AA |
|
| Availability | Uptime monitor | Ongoing + |
SLA |
|
Approval
| Role | Name | Date | Signature |
|---|---|---|---|
| Author | |||
| Reviewer | |||
| Tech Lead | |||
| Business Analyst | |||
| Product Owner | |||
| AI Director (John) | |||