Dynamic Pricing Engine - Product Requirements Document
Version: 2.0 | Status: Draft | Date: 2026-01-15
Change Log:
| Version | Date | Author | Changes |
|---|---|---|---|
| 1.0 | 2026-01-09 | Product Team | Initial draft |
| 2.0 | 2026-01-15 | Product Team | Business-focused conversion: measurable outcomes, success metrics, consolidated requirements |
1. Overview
1.1 Purpose
The Dynamic Pricing Engine enables rental companies to configure sophisticated pricing strategies based on rental duration, seasonal demand, distance allowances, and vehicle categories. It automatically calculates accurate rental prices by combining multiple tariff matrices, applying percentage-based adjustments, and handling distance-based charges to maximize revenue while maintaining pricing consistency.
1.2 Business Value
| Value Area | Measurable Outcome | Baseline Source | Timeframe |
|---|---|---|---|
| Revenue Optimization | Increase average revenue per rental by 8-12% through demand-based pricing | Current rental revenue analytics | 6 months |
| Improved Utilization | Achieve 10-15 percentage point improvement in fleet utilization through duration discounts | Monthly availability reports | 6 months |
| Pricing Accuracy | Reduce pricing errors and disputes by 90% through automated calculations | Current support ticket data | 3 months |
| Operational Efficiency | Save 5+ hours/week in manual pricing calculations per location | Time study with operators | 3 months |
| Faster Quoting | Reduce quote generation time from 5 minutes to under 10 seconds | Operator workflow studies | Immediate |
| Market Responsiveness | Enable same-day pricing adjustments (vs. current weekly batch updates) | Pricing change audit trail | Immediate |
1.3 Target Users
- Tenant Admins: Business managers who set pricing strategy and configure tariff rules
- Operators: Front-line staff who create quotes, process reservations, and explain pricing to customers
- Customers (via Widget): End users receiving quotes through booking websites who need transparent, accurate pricing
- Finance Teams: Stakeholders reviewing revenue reports and pricing effectiveness
1.4 Scope
In Scope:
- Duration-based pricing tiers (volume discounts for longer rentals)
- Seasonal pricing adjustments (demand-based surcharges and discounts)
- Per-vehicle and category-level pricing configuration
- Distance-based pricing (included km, unlimited options, overage charges)
- Price preview and testing capabilities
- Marketplace and widget commission/markup calculations
- Extra services pricing integration
Out of Scope:
- Hourly rentals (planned future enhancement)
- Real-time surge pricing based on demand signals
- Competitor price monitoring and automatic adjustments
- Customer-specific or loyalty-based pricing
- Multi-currency pricing
- Promotional codes and coupons (handled by separate system)
2. Success Metrics
| Metric | Definition | Baseline | Target | Measurement Method | Review Frequency |
|---|---|---|---|---|---|
| Revenue per Rental | Average total price per completed rental | Current average | +8-12% | Financial reporting system | Monthly |
| Fleet Utilization Rate | (Rented days / Available days) × 100 | 60% typical | +10-15 pp | Availability snapshots | Monthly |
| Pricing Disputes | Support tickets related to pricing errors or confusion | Current volume | -90% | Help desk categorization | Monthly |
| Quote Generation Time | Time from date selection to price display | 5 min (manual) | <10 sec | Operator time studies | Quarterly |
| Pricing Accuracy | Percentage of invoices requiring correction | Current rate | <1% | Invoice audit trail | Monthly |
| Widget Conversion Rate | Quotes started vs. bookings completed | Current rate | +5-10 pp | Widget analytics | Monthly |
| Seasonal Revenue Capture | Revenue increase during high-demand periods | Flat pricing baseline | +15-25% | Period-over-period comparison | Seasonal |
| Long-term Rental Share | Percentage of rentals 7+ days | Current share | +5 pp | Booking duration analysis | Quarterly |
3. User Stories
Tenant Admin Stories
| Priority | User Story | Acceptance Criteria |
|---|---|---|
| P0 | As a tenant admin, I want to configure duration-based pricing tiers so that I can offer discounts for longer rentals and improve utilization | - Can define tiers (e.g., 1-3 days, 4-7 days, 8+ days) with price multipliers - Preview shows calculated prices for sample durations - Changes apply to new quotes immediately |
| P0 | As a tenant admin, I want to set seasonal surcharges and discounts so that I can capture demand fluctuations without manual price updates | - Can specify date ranges with percentage adjustments - Multiple seasons can overlap and stack - Can apply seasons to individual vehicles or entire fleet |
| P0 | As a tenant admin, I want to define base daily rates and distance allowances per vehicle so that pricing reflects vehicle value and usage patterns | - Can set daily rate, included km/day, and extra km charge per vehicle - Category defaults with per-vehicle overrides supported |
| P1 | As a tenant admin, I want to configure unlimited kilometer options for specific duration ranges so that I can offer attractive all-inclusive packages | - Can flag specific duration tiers as unlimited - Unlimited flag overrides all distance calculations |
| P1 | As a tenant admin, I want to preview calculated prices before applying tariff changes so that I can verify pricing accuracy and avoid errors | - Preview calculator shows sample prices for date ranges - Shows breakdown of all adjustments applied |
| P2 | As a tenant admin, I want to configure price rounding rules so that quotes appear professional and meet local conventions | - Can set rounding increment (e.g., nearest 5, 10) - Can choose round up or round down |
Operator Stories
| Priority | User Story | Acceptance Criteria |
|---|---|---|
| P0 | As an operator, I want prices to calculate automatically when I select dates and vehicles so that I can provide instant quotes | - Price appears within 1 second of date/vehicle selection - No manual calculation required |
| P0 | As an operator, I want to see price breakdowns so that I can explain charges to customers | - Shows base rate, duration adjustment, seasonal adjustment, extras, delivery - Identifies which tariff tier applies |
| P0 | As an operator, I want distance charges calculated automatically at return so that billing is accurate | - System calculates overage based on actual vs. included km - Extra charges added to final invoice |
| P1 | As an operator, I want to test different date ranges to show pricing options so that I can help customers find the best value | - Can modify dates and see updated pricing instantly - Easy comparison of different duration options |
Customer Stories (via Widget)
| Priority | User Story | Acceptance Criteria |
|---|---|---|
| P0 | As a customer, I want to see total rental price immediately after selecting dates so that I can make informed booking decisions | - Price displays within 500ms of date selection - Total price clearly visible with breakdown available |
| P0 | As a customer, I want pricing to remain stable once quoted so that I’m not surprised at checkout | - Quoted price locks for session duration - Any changes require new quote |
| P1 | As a customer, I want to see distance allowances clearly stated so that I can plan trips appropriately | - Daily km allowance and excess charge displayed - Unlimited options clearly indicated |
4. Functional Requirements
| ID | Requirement | Priority | Business Rationale |
|---|---|---|---|
| FR-001 | System must support duration-based pricing tiers with configurable day ranges | P0 | Enables volume discounts to incentivize longer rentals |
| FR-002 | System must automatically select the appropriate pricing tier based on reservation duration | P0 | Eliminates manual tier selection errors |
| FR-003 | System must support seasonal pricing adjustments with date ranges and percentage modifiers | P0 | Captures demand fluctuations automatically |
| FR-004 | Multiple overlapping seasonal adjustments must combine additively | P0 | Supports marketplace/widget markup stacking |
| FR-005 | System must calculate included kilometers based on duration and tier settings | P0 | Ensures accurate distance allowance calculation |
| FR-006 | System must calculate extra kilometer charges for overage at vehicle return | P0 | Enables fair usage-based billing |
| FR-007 | System must support unlimited kilometer options for specified duration tiers | P1 | Enables all-inclusive package offerings |
| FR-008 | System must fall back to vehicle base parameters when no tariff matrix is defined | P1 | Ensures pricing works without complex configuration |
| FR-009 | System must support both calendar-day and hourly-based day calculations | P1 | Accommodates different business models |
| FR-010 | System must calculate total price including vehicle, extras, delivery, and fees | P0 | Provides complete quote to customers |
| FR-011 | System must apply commission and overprice percentages for marketplace/widget orders | P0 | Enables partner revenue sharing |
| FR-012 | System must support price rounding rules configurable per tenant | P2 | Supports local pricing conventions |
| FR-013 | System must handle extra services as one-time or per-day charges | P1 | Integrates add-on services into pricing |
| FR-014 | System must complete price calculations within 100ms (90th percentile) | P0 | Ensures responsive user experience |
| FR-015 | Widget price requests must respond within 500ms | P0 | Maintains booking form responsiveness |
| FR-016 | System must handle edge cases (partial days, same-day returns) gracefully | P1 | Prevents pricing errors and disputes |
| FR-017 | System must provide detailed price breakdowns for transparency | P0 | Builds customer trust and reduces disputes |
5. Acceptance Criteria
AC-001: Duration-Based Pricing
Given a vehicle configured with tariff tiers: 1-3 days (×1.2), 4-7 days (×1.0), 8+ days (×0.85) When an operator creates a 5-day reservation Then the system applies the 4-7 day tier at standard rate And the price breakdown shows the applied tier
AC-002: Seasonal Adjustment Application
Given a vehicle with $100/day base rate and “Summer” season (+20%) from June 1 to August 31 When a 3-day reservation is created for June 15-17 Then the daily rate is $120 ($100 + 20%) And the total vehicle charge is $360
AC-003: Stacking Multiple Seasons
Given a vehicle with $100/day base rate And “High Demand” season at +15% And “Widget Fee” season at +10% When both seasons overlap the reservation dates Then the combined adjustment is +25% ($125/day) And the breakdown shows each adjustment separately
AC-004: Distance Overage Calculation
Given a vehicle with 200 km/day allowance and $0.50/km overage And a 5-day reservation (1,000 km included) When the vehicle returns with 1,500 km driven Then extra km charge is 500 km × $0.50 = $250 And the charge is added to the final invoice
AC-005: Unlimited Kilometers Override
Given a tariff tier (8+ days) with unlimited kilometers enabled When a 10-day reservation is created Then no distance tracking or overage charges apply And the pricing clearly indicates “unlimited kilometers”
AC-006: Instant Price Calculation
Given an operator selecting dates and a vehicle When the reservation form is populated Then the calculated price appears within 1 second And no manual calculation steps are required
AC-007: Widget Response Time
Given an external widget requesting price calculation When the API receives a valid request Then the response returns within 500ms And includes the complete price with commission/overprice applied
AC-008: Price Breakdown Transparency
Given a completed price calculation When the operator or customer views the quote Then the breakdown shows: base rate, duration adjustment, seasonal adjustments, extras, delivery, and total And each line item is clearly labeled
AC-009: Graceful Fallback
Given a vehicle with no tariff matrix configured When a reservation is created Then the system uses the vehicle’s base daily rate, km allowance, and overage rate And pricing completes without error
AC-010: Edge Case Handling
Given reservation dates that cross midnight or result in partial days When the system calculates the rental duration Then the calculation follows the configured tariffication variant rules And produces a reasonable result (minimum 1 day)
6. Business Rules
BR-001: Tariff Tier Selection
The system selects the pricing tier where the rental duration falls within the tier’s day range. If duration exceeds all tiers, use the highest tier. If below all tiers, use the lowest tier.
BR-002: Seasonal Adjustment Stacking
All seasonal adjustments overlapping a rental day combine additively. Widget/marketplace fees are implemented as unbounded seasonal entries for consistent calculation.
BR-003: Distance Calculation
Included kilometers = daily allowance × rental days. Extra kilometers charged only when actual exceeds included. Unlimited kilometer flag overrides all distance calculations.
BR-004: Total Price Components
Total = Vehicle charge + Extra services + Delivery + Expenses + Distance overage + Commission/Overprice adjustments
BR-005: Calculation Consistency
Pricing logic must produce identical results whether called from UI, API, or batch processes to prevent quote/invoice discrepancies.
BR-006: Error Handling
Invalid inputs (missing dates, negative values) return zero with error logging. System never displays NaN, Infinity, or negative prices to users.
7. Dependencies
Upstream Dependencies
| System | Dependency | Impact if Unavailable |
|---|---|---|
| Multi-tenant (01) | Tariff configurations scoped by tenant | Pricing rules not isolated |
| Vehicles (03) | Base pricing parameters | Cannot calculate prices |
| Settings | Global defaults (buffer time, rounding) | Falls back to hardcoded defaults |
Downstream Dependents
| System | Usage | Impact of Changes |
|---|---|---|
| Orders (06) | Total price calculation | Invoice amounts |
| Widget (12) | Quote generation | Customer-facing prices |
| Extras (08) | Service pricing integration | Add-on charges |
| Marketplace | Commission calculations | Partner revenue |
| Reporting | Revenue analytics | Financial reporting |
8. Non-Functional Requirements
| Requirement | Target | Measurement |
|---|---|---|
| Price calculation latency | <100ms (P90) | API monitoring |
| Widget API response time | <500ms | API monitoring |
| System availability | 99.9% | Uptime monitoring |
| Calculation accuracy | 100% (no rounding errors) | Automated test suite |
| Concurrent calculations | 100+ requests/second | Load testing |
9. Glossary
| Term | Definition |
|---|---|
| Duration Tier | A pricing bracket based on rental length (e.g., 1-3 days, 4-7 days) with associated price multiplier |
| Price Coefficient | Multiplier applied to base rate (e.g., 0.85 = 15% discount) |
| Seasonal Adjustment | Percentage markup or discount applied during specific date ranges |
| Base Km/Day | Daily kilometer allowance included in the rental price |
| Extra Km Price | Per-kilometer charge for distance exceeding the allowance |
| Unlimited Kilometers | Option removing all distance restrictions and overage charges |
| Commission | Percentage of rental price retained by marketplace (included in quoted price) |
| Overprice | Percentage markup added to price for widget/partner bookings |
| Tariffication Variant | Method for calculating rental days: calendar-based or hourly-based |