Additional Fees Management
User Scenarios & Testing (mandatory)
User Story 1 - Add Additional Fee to Sponsor Stand (Priority: P1)
An admin needs to charge a sponsor for services or changes that fall outside the standard package pricing. The admin adds a fee by entering an amount and description, which immediately updates the sponsor's balance owed.
Why this priority: Core functionality that enables the billing model - without this, admins cannot charge for additional services, which directly impacts revenue and operational workflow.
Independent Test: Can be fully tested by logging in as an admin, navigating to a sponsor's stand details, adding a fee with an amount (e.g., £150.00) and description (e.g., "Artwork design fee"), and verifying the balance owed increases by that amount.
Acceptance Scenarios:
- Given an admin is viewing a sponsor's stand details, When they add a fee of £150.00 with description "Artwork design fee", Then the fee is saved and the sponsor's total balance owed increases by £150.00
- Given a sponsor stand has existing package costs of £500.00, When an admin adds a £75.00 "Late change fee", Then the total balance owed displays as £575.00
- Given an admin enters a fee amount and description, When they submit the fee, Then the fee appears in the sponsor's itemised costs breakdown with the exact amount and description provided
User Story 2 - View All Fees on a Stand (Priority: P2)
An admin or sponsor needs to see all additional fees that have been applied to a stand, including the amount and description of each fee, to understand the complete cost breakdown.
Why this priority: Essential for transparency and audit trail - users need to see what they're being charged for, but can be implemented after the ability to add fees exists.
Independent Test: Can be tested by viewing a stand that has multiple fees added, verifying each fee displays with its amount and description in a clear list or table format.
Acceptance Scenarios:
- Given a stand has three fees added (£150 artwork design, £75 late change, £50 rush processing), When an admin views the stand details, Then all three fees are listed with their descriptions and amounts
- Given a stand has no additional fees, When viewing the stand details, Then the fees section indicates no additional fees have been added
- Given a sponsor views their own stand details, When they access the costs section, Then they can see all additional fees with descriptions so they understand their charges
User Story 3 - Modify or Remove Added Fees (Priority: P3)
An admin needs to correct a mistake or remove a fee that was added in error, ensuring the balance owed is recalculated accurately.
Why this priority: Important for error correction but not essential for initial launch - admins can work around this by adding offsetting fees if needed initially.
Independent Test: Can be tested by adding a fee, then removing or editing it, and verifying the balance owed updates correctly and the change is reflected in the itemised breakdown.
Acceptance Scenarios:
- Given a stand has a £150 fee added in error, When the admin removes the fee, Then the fee is deleted and the balance owed decreases by £150
- Given a fee was added with incorrect amount (£100 instead of £150), When the admin edits the fee amount, Then the balance owed adjusts by the difference (increases by £50)
- Given a fee description contains a typo, When the admin edits the description, Then the description updates without affecting the balance owed
User Story 4 - Apply Credits or Refunds (Priority: P3)
An admin needs to apply a credit or refund to a sponsor's balance by entering a negative fee amount, reducing the total amount owed.
Why this priority: Useful for handling discounts, goodwill gestures, or corrections, but can be deferred if needed - initial launch can handle positive charges only.
Independent Test: Can be tested by adding a negative fee amount (e.g., -£50.00) with description "Discount applied", and verifying the balance owed decreases by that amount.
Acceptance Scenarios:
- Given a sponsor has a balance owed of £500.00, When an admin adds a fee of -£50.00 with description "Early payment discount", Then the balance owed decreases to £450.00
- Given an admin enters a negative fee amount, When they submit it, Then the fee displays clearly as a credit in the itemised breakdown (e.g., with distinctive styling or labeling)
- Given a stand has multiple positive and negative fees, When calculating the balance owed, Then the system correctly sums all fees including the negative values
Edge Cases
- What happens when an admin enters a negative fee amount that exceeds the current balance (resulting in a negative balance owed)?
- How does the system handle very large fee amounts (e.g., exceeding typical stand costs)?
- What happens if a fee is added after a sponsor has already paid their balance in full?
- How are fees handled if a stand is cancelled or removed?
- What happens when an admin enters a zero amount fee?
- Can fees have decimal precision issues (e.g., £150.999)?
- What happens if an admin deletes a fee after a sponsor has already viewed or referenced it?
- How are edited fees tracked for audit purposes?
Requirements (mandatory)
Functional Requirements
- FR-001: System MUST allow admins to add additional fees to any sponsor stand
- FR-002: System MUST require both an amount and description when adding a fee
- FR-003: System MUST accept fee amounts as monetary values with standard currency precision (two decimal places)
- FR-004: System MUST accept both positive and negative fee amounts (negative amounts represent credits or refunds)
- FR-005: System MUST accept fee descriptions as free-text input with reasonable length limits (minimum 3 characters, maximum 255 characters)
- FR-006: System MUST include all additional fees (positive and negative) in the calculation of a sponsor's total balance owed
- FR-007: System MUST display the sum of all fees as a line item in the sponsor's cost breakdown
- FR-008: System MUST display each individual fee with its amount and description in the itemised costs view
- FR-009: System MUST clearly distinguish credits (negative fees) from charges (positive fees) in the display
- FR-010: System MUST recalculate the total balance owed immediately when a fee is added, modified, or removed
- FR-011: System MUST prevent adding fees with invalid amounts (non-numeric, empty, or improperly formatted values)
- FR-012: System MUST allow multiple fees to be added to a single stand
- FR-013: System MUST persist fees so they remain associated with the stand across sessions
- FR-014: Admins MUST be able to view all fees added to a stand in chronological order
- FR-015: Admins MUST be able to edit the amount and description of existing fees
- FR-016: Admins MUST be able to delete fees from a stand
- FR-017: System MUST recalculate the balance owed when a fee is edited or deleted
- FR-018: System MUST handle balance calculations correctly when negative fees result in a negative balance owed (credit to sponsor)
Key Entities (include if feature involves data)
- Additional Fee: Represents a custom charge or credit applied to a sponsor stand, containing an amount (monetary value, can be positive or negative), description (text explaining the charge/credit), the stand it's associated with, timestamp of creation, and the admin who added it
- Sponsor Stand: Existing entity that now has a relationship to multiple additional fees, with the total balance owed calculated from package costs plus the sum of all associated fees (including negative fees)
- Balance Owed: Calculated value representing the total amount a sponsor must pay (or credit owed if negative), now including base package costs plus the sum of all additional fees
Success Criteria (mandatory)
Measurable Outcomes
- SC-001: Admins can add a fee to a sponsor stand in under 30 seconds from the stand details page
- SC-002: Balance owed calculations update in real-time (within 2 seconds) when fees are added, modified, or removed
- SC-003: 100% of fees added by admins appear correctly in the sponsor's itemised cost breakdown
- SC-004: Fee descriptions display completely without truncation in all views where costs are shown
- SC-005: System accurately calculates balance owed with multiple fees including negative amounts (verified through test cases with 10+ fees totaling various amounts)
- SC-006: Credits (negative fees) are visually distinguishable from charges in under 3 seconds of viewing the breakdown
- SC-007: Admins can edit or delete a fee in under 20 seconds
Assumptions (optional)
- Fees are associated with individual sponsor stands, not with entire events or organisers
- Multiple fees can be added to a single stand without limit
- Fees can be added at any point in the event lifecycle (before, during, or after the event)
- Standard currency handling applies (GBP with 2 decimal precision)
- Fees are visible to both admins and the sponsors who own the stand
- Fee amounts are additive to existing costs (not replacement values)
- Admins have appropriate permissions to add, edit, and delete fees (existing admin role suffices)
- Negative balances (when credits exceed charges) are acceptable and handled by the payment system
- Edit and delete operations on fees do not require special approval or audit logging beyond standard system activity logs