pounce/MARKET_CONCEPT.md
yves.gugger 22cb9561ad fix: Data freshness - only show active auctions
CRITICAL FIXES:
- API: Added end_time > now() filter to all auction queries
- Scheduler: Cleanup expired auctions every 15 minutes
- Scheduler: Scrape auctions every 2 hours (was 1 hour)
- Scheduler: Sniper alert matching every 30 minutes

Affected endpoints:
- GET /auctions (search)
- GET /auctions/feed (unified)
- GET /auctions/hot
- GET /auctions/ending-soon (already had filter)

Updated MARKET_CONCEPT.md with:
- 3 pillars: Pounce Direct, Live Auctions, Drops Tomorrow
- Data freshness architecture
- Unicorn roadmap
2025-12-11 09:55:27 +01:00

16 KiB

🎯 POUNCE MARKET — Das Herzstück der Plattform

Letzte Aktualisierung: 11. Dezember 2025


📋 Executive Summary

Die Market Page ist das Herzstück von Pounce. Hier fließen alle Datenquellen zusammen:

  1. Pounce Direct — User-Listings (unser USP, 0% Provision)
  2. Live Auktionen — Externe Plattformen (GoDaddy, Sedo, etc.)
  3. Drops Tomorrow — Domains bevor sie in Auktionen landen (Phase 3)

Der Weg zum Unicorn (aus pounce_strategy.md)

"Der Weg zum Unicorn führt nicht über besseres Scraping, sondern über einzigartigen Content."

Aggregation kann jeder. Pounce Direct ist unser USP.


🔧 KRITISCHE FIXES (Implementiert am 11.12.2025)

Problem: Veraltete Daten wurden angezeigt

VORHER: Abgelaufene Auktionen wurden im Feed angezeigt
        → Schlechte User Experience
        → Vertrauensverlust

Lösung: Multi-Layer Data Freshness

# 1. API-Filter: Nur laufende Auktionen
query = select(DomainAuction).where(
    and_(
        DomainAuction.is_active == True,
        DomainAuction.end_time > datetime.utcnow()  # ← NEU!
    )
)

# 2. Scheduler: Cleanup alle 15 Minuten
scheduler.add_job(
    cleanup_expired_auctions,
    CronTrigger(minute='*/15'),  # Alle 15 Minuten
    id="auction_cleanup"
)

# 3. Scraper: Alle 2 Stunden frische Daten
scheduler.add_job(
    scrape_auctions,
    CronTrigger(hour='*/2', minute=30),  # Alle 2 Stunden
    id="auction_scrape"
)

📊 Die 3 Säulen des Market

Säule 1: POUNCE DIRECT (Unser USP!)

"Das sind die Domains, die es NUR bei Pounce gibt."

┌─────────────────────────────────────────────────────────────────┐
│ 💎 POUNCE DIRECT                                                 │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│  Warum es genial ist:                                           │
│  ─────────────────────────────────────────────────────────────  │
│  ✓ Unique Content (nur bei uns!)                                │
│  ✓ 0% Provision (vs. 15-20% bei Sedo)                          │
│  ✓ DNS-Verifizierung = Trust                                    │
│  ✓ Instant Buy (kein Bieten)                                    │
│  ✓ SEO: Jedes Listing = eigene Landing Page                     │
│                                                                  │
│  Der Flow:                                                       │
│  ─────────────────────────────────────────────────────────────  │
│  1. User listet Domain (Trader/Tycoon Abo)                      │
│  2. DNS-Verifizierung (TXT Record)                              │
│  3. Listing erscheint im Market Feed                            │
│  4. Käufer kontaktiert Verkäufer (nach Login)                   │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

Status: 0 Listings — Muss aktiviert werden!


Säule 2: LIVE AUKTIONEN (Content Filler)

"Zeige alle relevanten Auktionen von GoDaddy, Sedo, NameJet, etc."

┌─────────────────────────────────────────────────────────────────┐
│ 🏢 LIVE AUKTIONEN                                                │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│  Datenquellen:                                                  │
│  ─────────────────────────────────────────────────────────────  │
│  📦 Web Scraping (Hauptquelle)                                  │
│  └─→ ExpiredDomains.net (~350 Domains)                         │
│  └─→ GoDaddy RSS                                                │
│  └─→ Sedo Public                                                │
│  └─→ NameJet Public                                             │
│  └─→ DropCatch Public                                           │
│                                                                  │
│  Data Freshness:                                                │
│  ─────────────────────────────────────────────────────────────  │
│  ⏱️ Scraping: Alle 2 Stunden                                    │
│  🧹 Cleanup: Alle 15 Minuten                                    │
│  ✅ Filter: Nur end_time > now()                                │
│                                                                  │
│  Qualitätsfilter:                                               │
│  ─────────────────────────────────────────────────────────────  │
│  • Vanity Filter für Public (nur Premium-Domains)               │
│  • Pounce Score (0-100)                                         │
│  • TLD Filter (com, io, ai, etc.)                               │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

Status: ~361 aktive Auktionen


Säule 3: DROPS TOMORROW (Tycoon Exclusive)

"Zeige Domains BEVOR sie in Auktionen landen."

┌─────────────────────────────────────────────────────────────────┐
│ 🔮 DROPS TOMORROW — Phase 3                                      │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│  Das Konzept:                                                   │
│  ─────────────────────────────────────────────────────────────  │
│  1. Zone Files von Verisign (.com/.net) beziehen               │
│  2. Tägliche Diff-Analyse (was war gestern da, ist heute weg)  │
│  3. Diese Domains droppen in 1-5 Tagen!                         │
│  4. Pounce Algorithm filtert nur Premium-Domains                │
│                                                                  │
│  Warum das ein MONOPOL schafft:                                 │
│  ─────────────────────────────────────────────────────────────  │
│  • ExpiredDomains zeigt ALLES (Spam-Hölle)                      │
│  • Pounce zeigt nur die TOP 100 (kuratiert)                     │
│  • = Zeitersparnis = Premium Feature = $29/Monat               │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

Status: 🔜 Geplant (6-12 Monate)


🎨 UI/UX: Die Market Page

Filter Bar

[✓] Hide Spam    [○] Pounce Only    [TLD ▾]    [Price ▾]    [Ending ▾]

Die Master-Tabelle

Spalte Inhalt Visualisierung
Domain Name Fettgedruckt. 💎 Icon für Pounce Direct
Score Pounce Score 0-100 (Grün > 80, Gelb 50-80, Rot < 50)
Price Preis/Gebot $500 oder $50 (Bid)
Status Zeit/Verfügbarkeit ⏱️ 4h left oder Instant
Source Herkunft 🏢 GoDaddy, 💎 Pounce
Action Button [Bid ↗] oder [Buy Now]

Visuelle Hierarchie

┌─────────────────────────────────────────────────────────────────┐
│ MARKET FEED                                                      │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│  💎 POUNCE EXCLUSIVE — Verified Instant Buy                     │
│  ┌───────────────────────────────────────────────────────────┐  │
│  │ zurich-immo.ch   $950   ⚡ Instant   ✅ Verified   [Buy]  │  │
│  │ crypto-hub.io    $2.5k  ⚡ Instant   ✅ Verified   [Buy]  │  │
│  └───────────────────────────────────────────────────────────┘  │
│                                                                  │
│  🏢 LIVE AUCTIONS                                               │
│  ┌───────────────────────────────────────────────────────────┐  │
│  │ techflow.io      $250   ⏱️ 4h left   GoDaddy     [Bid ↗] │  │
│  │ datalab.com      $1.2k  ⏱️ 23h left  Sedo        [Bid ↗] │  │
│  │ nexus.ai         $5k    ⏱️ 2d left   NameJet     [Bid ↗] │  │
│  └───────────────────────────────────────────────────────────┘  │
│                                                                  │
│  🔮 DROPS TOMORROW (Tycoon Only)                                │
│  ┌───────────────────────────────────────────────────────────┐  │
│  │ 🔒 Upgrade to Tycoon to see domains dropping tomorrow     │  │
│  └───────────────────────────────────────────────────────────┘  │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

💰 Monetarisierung (aus pounce_pricing.md)

Feature Scout ($0) Trader ($9) Tycoon ($29)
Market Feed 🌪️ Vanity Filter Clean Clean + Priority
Alert Speed 🐢 Daily 🐇 Hourly Real-Time (10m)
Watchlist 5 Domains 50 Domains 500 Domains
Sell Domains 5 Listings 50 + Featured
Pounce Score Locked Basic + SEO Data
Drops Tomorrow Exclusive

⚙️ Technische Architektur

Scheduler Jobs

# Aktive Jobs (Scheduler)
# ─────────────────────────────────────────────────────────────────

# 1. Auction Scrape — Alle 2 Stunden
scheduler.add_job(scrape_auctions, CronTrigger(hour='*/2', minute=30))

# 2. Expired Cleanup — Alle 15 Minuten (KRITISCH!)
scheduler.add_job(cleanup_expired_auctions, CronTrigger(minute='*/15'))

# 3. Sniper Matching — Alle 30 Minuten
scheduler.add_job(match_sniper_alerts, CronTrigger(minute='*/30'))

# 4. TLD Prices — Täglich 03:00 UTC
scheduler.add_job(scrape_tld_prices, CronTrigger(hour=3))

API Endpoints

# Market Feed Endpoints
# ─────────────────────────────────────────────────────────────────

GET /api/v1/auctions/feed    # Unified Feed (Pounce + External)
GET /api/v1/auctions         # External Auctions only
GET /api/v1/auctions/ending-soon
GET /api/v1/auctions/hot
GET /api/v1/listings         # Pounce Direct Listings

Data Freshness Garantie

# Jede Query filtert automatisch auf aktive Auktionen:
query = select(DomainAuction).where(
    and_(
        DomainAuction.is_active == True,
        DomainAuction.end_time > datetime.utcnow()  # ← IMMER!
    )
)

📈 Roadmap

ERLEDIGT (11. Dezember 2025)

  • Unified Feed API /auctions/feed
  • Pounce Score v2.0
  • Vanity Filter
  • Web Scraping (5 Plattformen)
  • FIX: end_time Filter (nur laufende Auktionen)
  • FIX: Cleanup alle 15 Minuten
  • FIX: Scraper alle 2 Stunden
  • Sniper Alerts

🎯 NÄCHSTE SCHRITTE (Diese Woche)

  1. Erste Pounce Direct Listings erstellen

    • Test-Domains zum Verifizieren des Flows
    • USP aktivieren!
  2. Sedo API Credentials eingeben

    • Sedo.com → Mein Sedo → API-Zugang
    • Partner ID + SignKey in .env
  3. Frontend: "Live" Indikator

    • Zeige wann Daten zuletzt aktualisiert wurden

🔮 PHASE 2-3 (6-12 Monate)

  1. Zone File Access beantragen

    • Verisign (.com/.net)
    • "Drops Tomorrow" Feature
  2. Pounce Instant Exchange

    • Integrierter Escrow-Service
    • 5% Gebühr

🚀 Der Unicorn-Pfad

Phase 1: INTELLIGENCE (Jetzt)
├── Pounce Direct aktivieren (Unique Content)
├── Clean Feed (aktuelle Daten, Spam-frei)
├── Trust aufbauen
└── 10.000 User, $1M ARR

Phase 2: LIQUIDITÄT (18-36 Monate)
├── Pounce Instant Exchange
├── Buy Now im Dashboard
├── 5% Gebühr
└── $10M ARR

Phase 3: FINANZIALISIERUNG (3-5 Jahre)
├── Fractional Ownership
├── Domain-Backed Lending
└── = FINTECH ($50-100M ARR)

Phase 4: IMPERIUM (5+ Jahre)
├── Enterprise Sentinel (B2B)
├── Fortune 500 Kunden
└── = $1 Mrd. Bewertung

💎 Das Fazit

Aggregation ist Commodity. Pounce Direct ist der USP.

Der Weg zum Unicorn:

  1. Datenqualität (aktuelle, saubere Daten)
  2. Unique Content (Pounce Direct aktivieren!)
  3. 🔮 Datenhoheit (Zone Files)

"Don't guess. Know."

— Phase 1: Intelligence