- type
- concept
- created
- Tue Apr 07 2026 02:00:00 GMT+0200 (Central European Summer Time)
- updated
- Tue Apr 07 2026 02:00:00 GMT+0200 (Central European Summer Time)
- sources
- raw/articles/PRD
- tags
- exclusivity matching buyer-engagement urgency
48-Hour Exclusivity Window
Overview
The exclusivity mechanism creates urgency and rewards the best-matched buyer with a time-limited lock on surplus items. It transforms the matching algorithm's output into actionable, time-sensitive opportunities. During exclusivity, only the exclusive buyer can see and interact with the item -- it is hidden from all other buyers.
How Exclusivity Is Granted
- The matching algorithm runs when new surplus is ingested or buyer specs change
- If the highest-scoring match for a surplus item has a score >= 80, exclusivity is offered to that buyer
- The surplus item's status changes from
availabletoexclusive - The
exclusivity_buyer_id,exclusivity_start, andexclusivity_endfields are set on the SurplusItem - The buyer is immediately notified via email (regardless of their newsletter frequency setting)
- The countdown starts when the notification is sent, not when the surplus is listed
Rules and Constraints
| Rule | Value | Rationale |
|---|---|---|
| Window duration | 48 hours | Enough time to evaluate, not so long that surplus sits idle |
| Minimum match score | >= 80 | Only high-quality matches justify locking inventory |
| Maximum sequential grants | 3 per surplus item | After 3 failed attempts, go to open market |
| Tie-breaking | Higher monthly volume wins | Larger buyers are more likely to complete |
| Visibility during exclusivity | Hidden from all other buyers | Only the exclusive buyer can see/interact |
| Reminder | 12 hours before expiry | Sent every 30 minutes by Celery beat check |
| Admin override | Yes | Admin can manually grant or revoke |
Buyer Actions
The exclusive buyer has three options:
- Accept -- proceed to purchase. Status moves to
reserved, thensoldupon confirmation. - Decline -- release immediately. The next highest-scoring buyer (if score >= 80 and grant count < 3) gets a fresh 48-hour window.
- Let it expire -- after 48 hours with no response, same behavior as decline.
State Machine
available
|
+-- (match score >= 80) --> exclusive (48hr)
| |
| +-- (buyer accepts) --> reserved --> sold
| |
| +-- (buyer declines) --> available (try next buyer)
| |
| +-- (48hr expires) --> available (try next buyer)
|
+-- (no match >= 80) --> stays available (open market)
When exclusivity expires or is declined:
- If grant_count < 3: try the next highest-scoring buyer with score >= 80 (excluding previous exclusive buyers)
- If grant_count >= 3 or no more qualified buyers: revert to
available, notify ALL matched buyers that the surplus is now openly available
Sequential Grant Logic
Each surplus item tracks how many exclusivity grants it has received. After 3 failed grants (declined or expired), the item goes to open market with no further exclusivity attempts. This prevents surplus from being locked in an indefinite exclusivity cycle.
Example timeline:
- Grant 1 (Buyer A, score 92): Buyer does not respond. Expires at T+48h.
- Grant 2 (Buyer B, score 85): Buyer declines at T+60h.
- Grant 3 (Buyer C, score 81): Buyer does not respond. Expires at T+156h.
- Item reverts to
available. All matched buyers are notified. No more exclusivity grants.
Notification Timeline
T+0:00 Surplus ingested, matching runs
T+0:01 High-score match found (score >= 80)
T+0:02 Exclusivity granted to Buyer A
T+0:02 Buyer A notified: "Exclusive access: Kraftliner 150g, 48hr window"
T+0:02 Newsletter with exclusivity badge sent immediately
T+36:00 Reminder: "12 hours remaining on your exclusive lot"
T+48:00 Exclusivity expires (Buyer A did not respond)
T+48:01 Status reverts to 'available'
T+48:01 Next buyer (Buyer B, score 78) -- does NOT get exclusivity (below 80)
T+48:01 All matched buyers notified: "New surplus available"
Celery Beat Tasks
Two scheduled tasks manage exclusivity:
- expire_exclusivities -- runs every 5 minutes. Finds items where
status='exclusive'andexclusivity_end <= now. Either grants to next buyer or reverts to open market. - send_exclusivity_reminders -- runs every 30 minutes. Finds items expiring within 12 hours and sends reminder to the exclusive buyer (with deduplication to avoid repeated reminders).
Newsletter Integration
Exclusivity notifications bypass normal newsletter scheduling rules:
- They are sent immediately regardless of the buyer's newsletter_frequency setting
- They require only 1 item (normal newsletters require a minimum of 3 matches)
- The newsletter includes an exclusivity badge with a live countdown timer
- After expiry, the item appears in regular newsletters for all matched buyers
Sources
- raw/articles/PRD -- sections 6.3, 14.1-14.4
Related
- wiki/concepts/matching-algorithm -- produces the scores that trigger exclusivity
- wiki/concepts/newsletter-generation -- delivers exclusivity notifications
- wiki/concepts/spec-based-matching -- the scoring system that determines eligibility