Capacity-based pricing modifier — surge pricing when schedule fills

Objective

  • Allow companies to configure a pricing modifier that automatically increases service fees as daily schedule capacity fills toward a configurable threshold — applying demand-based pricing without manual intervention.
  • Give brands a revenue lever that is already familiar from other industries (airlines, rideshare) and requires no staff action during the booking flow.

Background

  • Sean Garvey (SW/SE Region) proposed this concept in the June 22 regional call: as a day's available inspection slots fill toward 80–90% capacity, prices should increase automatically by a configurable amount — similar to airline seat pricing.
  • Catherine Lemoine validated the idea and noted it should function as a pricing modifier, meaning it affects the client-facing charge that lands on the confirmed workorder.
  • This is a distinct feature from day-of-week pricing (ATT-1304), which applies a static modifier based on calendar day. Capacity-based pricing is dynamic — the modifier fires based on real-time schedule fill rate, not a predetermined schedule rule.
  • Payroll is out of scope for this issue. Because the modifier increases the client-facing service price, the existing commission and bonus mechanisms in payroll will naturally flow through the higher amount where applicable.
  • This feature is related to ATT-1691 (configurable capacity calculation rules), which defines how slot availability is calculated across the company. That issue does not block this one, but the two are closely related and engineering should assess the dependency when picking this up.

Product Decisions

Locked

  1. Pricing modifier only — Capacity-based pricing applies to the client-facing service price only. Payroll is not directly modified by this trigger; inspector commissions and bonuses flow through existing mechanisms on the higher base price.
  2. Opt-in per company/service — Feature must be off by default and configurable per company and/or service.
  3. Capacity scope — Capacity is measured against total slots across the company for a given day.
  4. Tiered thresholds — Companies configure multiple tiers, each with its own capacity threshold percentage and modifier amount (e.g. +$25 at 70% capacity, +$50 at 90%). Not limited to a single threshold.
  5. Modifier amount type — Both flat dollar amounts and percentage-based increases are supported, consistent with the existing modifier system.

Open

  1. Capacity data timing — At the moment a booking is priced, the system needs a real-time slot fill rate for the selected inspection date. Engineering needs to determine where that calculation lives and whether it's available server-side during price calculation without introducing meaningful latency or race conditions.

Scope

Backend

  • src/routes/payroll.ts — Existing modifier loading pattern; capacity modifier will follow the same modifierSchema approach and needs a new modType for capacityThreshold.
  • Engineering will need to identify where real-time company-wide slot fill rate is computed for a given day and whether that value can be passed into the pricing calculation at booking time.

Frontend

  • src/util/functions/schedulingHelpers/calculateServicePrices.ts — Core pricing engine; capacity modifier evaluation needs to be injected here alongside other modifier types.
  • src/util/functions/schedulingHelpers/usePriceCalculation.ts — Pricing calculation hook used in the scheduling UI; must receive live capacity context to evaluate the threshold condition.
  • src/util/functions/schedulingHelpers/requiredInfoModifierUtils.ts — Existing modifier evaluation pattern; capacity modifier evaluation should follow the same structure.
  • src/util/functions/quote/createChargeObjects.ts — Charge object creation at confirmation; ensure the capacity modifier amount is captured and saved to the workorder charges.
  • src/util/types/serverTypeCollection/services.ts — Service type definitions; needs a new capacityThreshold modifier type.
  • tests/util/functions/calculateServicePrices.comprehensive.test.ts — Capacity modifier scenarios should be covered here.

References

  • Related: ATT-1304 — Add day-of-week service modifier pricing (complementary static pricing modifier)
  • Related: ATT-1691 — Add configurable capacity calculation rules (closely related; engineering should assess dependency when picking this up)
  • Related: ATT-1471 — Fix availability mismatch in capacity widgets (capacity data accuracy)
  • SW/SE <> ATTIK transcript, June 22, 2026 — Sean Garvey proposed; Catherine Lemoine validated

Please authenticate to join the conversation.

Upvoters
Status

Triage

Board
🏠

Main App

Date

About 5 hours ago

Author

Linear

Subscribe to post

Get notified by email when there are changes.