Baseline NFRs for oxFlow — the qualities the system must exhibit beyond functional behaviour. Grouped by concern area. Short by design — full NFR specs (test plans, SLAs, performance budgets) come in PRD and dev handoff.

Related docs: glossary.md · business-rules.md · roles-permissions.md


1. Performance

RequirementTargetStatus
Estimate with 1000+ Items loads without lagUI interactive within 2s (p95)🟡
Anomaly Review completes a full scanUnder 5s on a typical estimate (~500 items)🟡
Worksheet re-computation on editUnder 200ms for a single-item change🟡
Adjudication import (Excel/PDF)Under 10s per file🟡
Workbench live-cost queries (actual + committed)Under 3s per query🟡
Director Dashboard loads across N projectsUnder 5s for 50 active projects🟡
Export to Excel / PDFUnder 15s for a 1000-item estimate🟡
AI query response time (natural language project queries)Under 10s (p95)🟡

All numbers are working targets subject to refinement during load testing.


2. Security

RequirementDetailStatus
Role-based access controlAs per roles-permissions.md; enforced server-side🟢
Audit loggingLog all write actions on Commercials Rules, Submit, Publish, Adjudication lock/re-open, Variation state transitions, Code edits, User Role changes🟡
Audit log retentionImmutable, retain for project lifetime + 7 years🟡
HTTPS enforcedAll traffic; HSTS enabled🟢
Data at rest encryptionAES-256 or equivalent🟢
AuthenticationSSO via Microsoft 365🟢
Session managementIdle timeout (configurable, default 30 min); no cross-device session sharing🟡
Secrets managementIntegration credentials (Xero, Workbench, AI) stored encrypted; rotatable🟡

3. Collaboration

RequirementDetailStatus
Real-time multi-user editing per EstimatePer-Item explicit locking; presence indicators for active editors🟡
Concurrent readUnlimited; read-only views for non-editors🟢
Admin override of lockAdmins can forcibly release a stale lock🟢

4. Data lifecycle

RequirementDetailStatus
Benchmark rate library migrationOne-off import of the Benchmark resource library, preserving codes, descriptions, rates, groupings, units, categories🟡
Benchmark full data migrationAll active estimates, libraries, and historical data migrated🟡
Benchmark decommissioningFull cutover; Benchmark licenses terminated post-migration🟡
Disaster recoveryRPO < 24h, RTO < 4h (targets)🟡

Migration detail lives in migration-benchmark.md.


5. Training & support

RequirementDetailStatus
Structured user trainingRole-based training sessions for all Oxcon users prior to Go-Live🟢
Training materialsUser guides, quick-reference cards, video walkthroughs🟡
Post-launch support (tiered)Essential tier (infrastructure + reliability) and Priority Partnership tier (dedicated developer access, 4-hour SLA, quarterly roadmap reviews)🟢

6. Hosting & operations

RequirementDetailStatus
Cloud-hostedManaged infrastructure; cloud provider TBD🟡
EnvironmentsSeparate staging and production; staging mirrors production data model with scrubbed data🟡
Domain / DNS / SSLManaged; certificates auto-renewed🟢
Security patches & dependency updatesMonthly cadence; emergency patches out-of-band🟢
Uptime monitoringAutomated alerting; 99.5% target for business hours, 99.0% monthly🟡
Performance monitoringServer health checks; alerts on p95 latency regression🟡

7. Observability

RequirementDetailStatus
Structured application logsRequest ID, User ID, action, entity ID, timestamp🟡
Error trackingClient and server errors captured with stack traces and context🟡
Feature-level metricsPer-estimator usage counts, feature-touch rates (for roadmap prioritisation)🟡