Software (SRS)
Traceability & Open Items
BRD→SRS traceability matrix, open items and conflict resolutions.
10. Traceability matrix
Generated from the Source line of each functional requirement in section 5 and the BR and BRL tables in BRD v1.1.
10.1 Business requirements to functional requirements
10.2 Business rules to functional requirements
| Business rule | Rule (shortened) | Functional requirements |
|---|---|---|
| BRL-01 | Trip records are tenant-isolated. Only the owning organization's staff, the platform admin, and the people... | FR-ORG-01, FR-EMP-04, FR-TRK-05 |
| BRL-02 | Every non-traveler role must hold an active plan to use the app. A traveler can always use the app for free. | FR-ONB-01, FR-ORG-02, FR-TRIP-07, FR-SUB-02 |
| BRL-03 | A coupon applies only inside its creator's scope: admin to any trip; organization to its own trips; driver... | FR-CPN-01, FR-CPN-02, FR-PHO-05 |
| BRL-04 | A platform driver or photographer is assigned only after a finalized deal accepted by both parties. | FR-STF-04, FR-NEG-03 |
| BRL-05 | An organization-owned driver or photographer is accepted on assignment and is never visible to other... | FR-ORG-03 |
| BRL-06 | A rejected supplier or organization application can be re-submitted after 30 days. A closed application... | FR-ONB-05, FR-TRV-06 |
| BRL-07 | A trip cannot move to Ready until every vehicle has a driver and a moderator and every platform deal is... | FR-TRIP-03, FR-TRIP-05, FR-STF-03 |
| BRL-08 | A seat hold lasts 15 minutes and is released automatically when it expires. Exception: a Fawry cash... | FR-SEAT-04, FR-BKG-03, FR-PAY-09 |
| BRL-09 | A moderator can check a passenger in only to the vehicle assigned to that passenger on that trip. | FR-CHK-02, FR-MOD-03 |
| BRL-10 | Parents see data only for children linked to their own bookings. | FR-PAR-01, FR-PAR-02, FR-PAR-05, FR-PAR-06 |
| BRL-11 | A refund reverses the coupon redemption and frees the traveler's per-user limit. | FR-BKG-04, FR-CPN-06, FR-ADM-04 |
| BRL-12 | Cancellation refund depends on time before departure: 80 percent at 48 hours or more, 50 percent from 24... | FR-BKG-04 |
| BRL-13 | A plan upgrade takes effect at once with proration; a downgrade takes effect at the end of the cycle. | FR-SUB-04, FR-TRV-05 |
| BRL-14 | A failed renewal starts a 7-day grace period with features kept. | FR-SUB-03 |
| BRL-15 | Account deletion becomes permanent after a 30-day grace period. Trip records are kept 5 years after... | FR-AUTH-09, FR-TRV-07 |
| BRL-16 | A lab test has a deadline of 3 days from request (admin may set 1 to 7 days, D-21). A missed deadline... | FR-DRV-04, FR-DRV-06 |
| BRL-17 | A driver whose lab test is requested is paused at once. Upcoming trips return to their organizers.... | FR-STF-07, FR-DRV-03 |
| BRL-18 | Every financial event (booking, refund, coupon, subscription charge, payout, deal cost, commission,... | FR-ORG-07, FR-NEG-05, FR-NEG-06, FR-PAY-01, FR-PAY-02, FR-PAY-03, FR-ACC-01, FR-ACC-07 |
| BRL-19 | Every admin action and every permission change is written to an immutable audit log. | FR-EMP-02, FR-PAY-04, FR-SUB-01, FR-SUB-05, FR-ADM-03, FR-ADM-05 |
| BRL-20 | Verification codes expire after 5 minutes. After 5 wrong codes, verification pauses for 15 minutes. A... | FR-AUTH-03 |
| BRL-21 | Accounts lock for 15 minutes after 5 failed sign-in attempts (all roles, D-53). | FR-AUTH-05, FR-ADM-02 |
| BRL-22 | Web sessions end after 12 hours of use. Drafts are kept. | FR-AUTH-10 |
| BRL-23 | Every registration form records the applicant's country. | FR-AUTH-02 |
| BRL-24 | A trip's programs, seat mode or vehicles cannot be changed in a way that breaks a confirmed booking until... | FR-TRIP-06, FR-FLT-05, FR-BKG-06 |
| BRL-25 | A trip is archived 30 days after Completed, and only once its settlement is closed (D-26). | FR-ACC-10 |
| BRL-26 | A deal offer expires 72 hours after the last counter-offer and the deal ends as Rejected with reason... | FR-NEG-02 |
| BRL-27 | Market values (currency, payment methods, tax and invoicing rules, default time zone) follow the country:... | FR-AUTH-02, FR-MKT-02 |
| BRL-28 | An invoice is B2B when the buyer gives a tax number, otherwise B2C (D-180). An issued invoice is never... | FR-ORG-07, FR-ACC-08 |
| BRL-29 | Travelers never see a vehicle's live position. Only operations staff of the owning organization, the... | FR-TRK-05, FR-TRK-07 |
| BRL-30 | When an organization cancels a trip, every confirmed booking is refunded in full and coupon redemptions... | FR-TRIP-05, FR-BKG-06 |
11. Open items and conflicts
11.1 Open items that still affect requirements
| Ref | Open item | Affects | Owner |
|---|---|---|---|
| OD-05 | Confirm child tracking eligibility ("and" as drafted) | FR-PAR-03, FR-TRK-04 | Product |
| OD-06 | Plan for moderators | FR-MOD-05; section 3.3 | Product |
| OD-07 | Confirm refund table 80/50/0 and non-refundable fees | FR-BKG-04, FR-PAY-03 | Operations |
| OD-08 | Priority seat window length (D-316) | FR-SEAT-03 | Product |
| OD-09 | VIP early-access window (D-146) | FR-TRV-02 | Product |
| OD-10 | ZATCA e-invoicing scope | FR-ORG-07, FR-ACC-08, NFR-COM-07 | Finance |
| OD-11 | Gulf payment methods and gateways | FR-PAY-07, FR-MKT-01 | Engineering |
| OD-14 | Annual discount (placeholder 15 percent) | FR-SUB-01 | Finance |
| OD-15 | Commission rates (placeholder 10 percent) | FR-NEG-05, FR-ACC-02, FR-PHO-03 | Finance |
| OD-16 | Automated business registry check | FR-ONB-02 | Operations |
| OD-18 | CRM targets | FR-ORG-06 | Product |
| OD-19 | Organization plan covering own drivers and photographers; allowance per plan (D-97) | FR-ORG-03, FR-DRV-01 | Product |
| OD-25 | Plan gate on enrollment report | FR-PRG-04 | Product |
| OD-26 | Plan prices per role and market | FR-SUB-01, FR-MKT-01 | Finance |
| OD-27 | VAT rate per market | FR-ORG-07, FR-MKT-01 | Finance |
| OD-28 | Trial lengths | FR-SUB-07 | Finance |
| OD-29 | What happens when grace ends (downgrade vs lockout) | FR-SUB-03; section 7.6 | Product |
| OD-30 | Webhook endpoints per plan (D-65) | FR-ORG-06 | Product |
| OD-31 | Deal fee when cancelled after assignment (D-278) | FR-NEG-05, FR-STF-07 | Finance |
| OD-32 | Changes-requested closure day when extension used | FR-ONB-04; section 7.5 | Product |
| D-68 | Child-safety escalation contacts and procedure | FR-PAR-07, FR-CHK-06 | Operations |
| D-216 | Coupon abuse thresholds | FR-CPN-07, FR-ADM-07 | Product |
| D-314 | SRS and BRD approvers | Section 1 | Product |
| BRD 8.2 | Legal review per market for lab tests; document and lab-result retention | FR-ONB-08, FR-DRV-04; 6.4 | Legal |
| OD-04 | Financial retention 7 years, pending legal review | 6.4 | Legal |
| [NFR-DAT-04](/en/docs/srs/quality#85-data-nfr-dat) | Hosting region against Egyptian residency rules | 3.4 | Engineering |
| CON-05 | Confirm recommended stack (T-FND-01) | All | Engineering |
| NFR-SEC-13 | Rate limits for drivers, photographers and parents | NFR-SEC-13 | Engineering |
| NFR-MNT-04 | Test coverage target | NFR-MNT-04 | Engineering |
| NFR-OBS-06 | Hot log search window | NFR-OBS-06 | Engineering |
| 3.4 | Supported browser and OS versions | 3.4 | Product |
| 6.4 | Retention of notification delivery logs and rejected applications | 6.4 | Legal |
| D-289 | Confirm the urgent notification list | FR-NTF-03 | Product |
| Proposed | Re-boarding after check-out at a stop | FR-CHK-04; 7.2, 7.3 | Operations |
| Proposed | Traveler sign-in offers both password and code | FR-AUTH-04 | Product |
| Proposed | Platform issues deal invoices on the supplier's behalf | FR-ACC-08 | Finance |
| Proposed | Free-plan history depth 12 months | FR-TRV-03 | Product |
11.2 Items closed in v1.1
| Item (v1.0 reference) | Resolution | Source |
|---|---|---|
| Traveler verification and uniqueness | Travelers verify one contact; suppliers and owners both | D-20 |
| Appeal window | 14 days; 5 files; 5 working days; one per rejection | D-237 |
| Negotiation expiry (OD-13) | 72 hours after last counter; no round limit | D-14 |
| Cart after hold expiry | Cart kept; seats re-checked; new hold if free | D-191 |
| Payment attempts | 3 per hold | D-197 |
| Definition of active trips | Created this cycle and Published through Completed | D-143 |
| Coupon count basis | Active and paused | D-203 |
| Total usage restored on refund | Yes, usage count decrements | Architecture 10.6 |
| Webhook retry and alerts | 5 retries over 24 h, owner emailed, 7-day replay, no plan gate | D-62 to D-64 |
| Invoice plan gate and numbering failure | All plans; retry 3 times then finance review | D-178, D-179 |
| Settlement rules | Open on Completed; close when paid and no dispute | D-174 |
| Payout schedule | Weekly, Monday 06:00 | D-28 |
| Default tiers (OD-21) | Organization Starter; suppliers Basic; plan chosen without charge | D-24, D-77, D-78 |
| Admin roles and invite | Super admin, Operations, Finance; 72 h link | D-49, D-50 |
| Moderator sign-in | Phone plus staff code valid to trip end plus 24 h, one device | D-107, D-108 |
| Parent tracker surface | Section of the traveler app | D-124 |
| Offline check-in scope | 1,000 events; retry every 30 s | D-117 |
| Incident categories | Six categories | D-331 |
| Dispute SLA and types | 2 / 10 working days; six types | D-32, D-254 |
| Notification retries | 3 with exponential backoff | Architecture 13.2 |
| Data copy response time | 30 days | D-162 |
| Default organization time zone | Market main zone | D-282 |
| Digits | Western digits | D-159 |
| Maintenance windows | 01:00 to 03:00 Cairo, 4 h per month, 72 h notice | D-303 |
| Paging | 20 default, 100 maximum | D-308 |
| Deprecation notice | 90 days | Architecture 7.6 |
| Capacity stages | Stage 1 values plus architecture stages | D-304; architecture 19.3 |
| Backups and DR drills | As NFR-BKP-03 and NFR-BKP-04 | Architecture 22 |
| Alert tools | PagerDuty, Slack, email digest | Architecture 16.3 |
| Lab deadline (C-05) | 3 days, admin 1 to 7, now in BRL-16 | D-21 |
| Retention of GPS, check-in, child history | 90 days, 1 year, 1 year | Architecture 18.4; D-45; D-135 |
| Launch currencies | EGP in P2; SAR and AED in P5 | D-69, D-158 |
11.3 Source conflicts
| # | Conflict | Sources | Resolution in this SRS |
|---|---|---|---|
| C-01 | Own-driver plan: full BRD context says own drivers are not subject to plans; BRL-02 says every non-traveler needs a plan. | BRD context section 9; BRL-02 | Organization's plan covers them (OD-19, proposed). |
| C-02 | Out-of-scope coupon: "silently reject" vs "clear error". | BRD context 3A, 3E | Generic "not applicable" message (OD-20). Closed. |
| C-03 | Traveler verification. | BR-AUTH-03; flow 01 | D-20 applied. Closed. |
| C-04 | Enrollment report plan gate. | BR-PRG-04; flow 02 | No gate until OD-25. |
| C-05 | Lab deadline missing from BRL-16. | Auth rules; BRL-16 | BRL-16 updated. Closed. |
| C-06 | Architecture not reviewed. | v1.0 | Reviewed. Closed. |
| C-07 | User-flows 03 to 08 missing. | v1.0 | Written in v1.1. Closed. |
| C-08 | After grace: register says downgrade and block new bookings (D-08); BRL-02 implies lockout; design canvas shows lockout. | D-08; BRL-02; canvas | Downgrade applied until OD-29 is decided. |
| C-09 | Organization-cancelled trip refund: v1.0 used the traveler policy; D-150 says full refund. | SRS v1.0; D-150 | Full refund (BRL-30). Closed. |
| C-10 | Check-in event retention: v1.0 kept 7 years as audit; register and architecture say 1 year. | SRS v1.0; D-45; architecture 18.4 | 1 year; admin actions stay 7 years in the audit log. Closed. |
| C-11 | Filling Up trigger: v1.0 "first booking"; register 80 percent. | SRS v1.0; D-189 | 80 percent. Closed. |
| C-12 | Lockout scope: BRL-21 admin only; register all roles. | BRL-21 v1.0; D-53 | All roles; BRL-21 updated. Closed. |
| C-13 | Design canvas is Saudi-first in SAR with ZATCA, HyperPay, monthly payouts, 72-hour free cancellation, 48-hour deal expiry, traveler live ETA, Face ID. | claude/design-value-conflicts.md | This SRS follows the decisions; the canvas must be relabeled as a P5 Saudi view or corrected before P2 build. |
| C-14 | Photographer studio: architecture lists separate role apps; register makes the studio responsive web in phase 1. | Architecture 3.1; D-86 | Responsive web first; mobile studio follows. |