# Yield / Intent Routing – Integrations-Konzept

**Ziel:** Domains von "toten Assets" zu "Yield-Generatoren" machen.  
**Kern-Mechanismus:** User verbindet Domain → Pounce erkennt Intent → Routing zu Affiliate-Partnern → Passive Einnahmen.

---

## 1. Public Pages (nicht eingeloggt)

### 1.1 Landing Page – 4. Pillar hinzufügen

Aktuell: **DISCOVER → TRACK → TRADE**

Neu: **DISCOVER → TRACK → TRADE → YIELD**

```
┌─────────────────────────────────────────────────────────────────┐
│                                                                 │
│  YIELD                                                          │
│  "Let your domains work for you."                               │
│                                                                 │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │  🔌 Connect     Point DNS to ns.pounce.ch               │   │
│  │  🧠 Analyze     We detect: "kredit.ch" → Loan Intent    │   │
│  │  💰 Earn        Affiliate routing → CHF 25/lead         │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
│  "Your domains become autonomous agents."                       │
│                                                                 │
│  [Activate My Domains →]                                        │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘
```

**Teaser-Statistiken (für Trust):**
- "CHF 45'000+ generated this month"
- "2'400+ domains earning passively"
- "Avg. CHF 18.50/domain/month"

### 1.2 Neue Public Page: `/yield`

Eine eigene Landingpage für das Yield-Feature:

| Section | Inhalt |
|---------|--------|
| **Hero** | "Dead Domains? Make them work." + Animated revenue counter |
| **How it works** | 3-Step Animation: Connect → Analyze → Earn |
| **Use Cases** | Branchen-spezifische Beispiele (zahnarzt.ch, kredit.de, hotel-x.ch) |
| **Revenue Calculator** | "Gib deine Domain ein → geschätzter monatlicher Ertrag" |
| **Trust Signals** | Partner-Logos (Awin, PartnerStack, etc.), Testimonials |
| **CTA** | "Start Earning" → Login/Register |

---

## 2. Terminal (eingeloggt)

### 2.1 Sidebar-Erweiterung

**Neue Struktur der Sidebar:**

```
DISCOVER
  ├── MARKET        (Auktionen)
  └── INTEL         (TLD Pricing)

MANAGE
  ├── RADAR         (Dashboard)
  ├── WATCHLIST     (Monitoring)
  ├── SNIPER        (Alerts)
  ├── FOR SALE      (Listings)
  └── YIELD ✨       ← NEU

SETTINGS
```

### 2.2 Neue Seite: `/terminal/yield`

**Layout:**

```
┌──────────────────────────────────────────────────────────────────────────┐
│  YIELD                                                          [?] Help │
├──────────────────────────────────────────────────────────────────────────┤
│                                                                          │
│  ┌────────────┐  ┌────────────┐  ┌────────────┐  ┌────────────┐         │
│  │ Active     │  │ Monthly    │  │ Pending    │  │ Total      │         │
│  │ Domains    │  │ Revenue    │  │ Payout     │  │ Earned     │         │
│  │    12      │  │ CHF 156    │  │ CHF 89     │  │ CHF 1'245  │         │
│  └────────────┘  └────────────┘  └────────────┘  └────────────┘         │
│                                                                          │
├──────────────────────────────────────────────────────────────────────────┤
│                                                                          │
│  🔍 Search domains...                              [+ Activate Domain]   │
│                                                                          │
├──────────────────────────────────────────────────────────────────────────┤
│                                                                          │
│  ┌──────────────────────────────────────────────────────────────────┐   │
│  │ Domain          │ Status    │ Intent       │ Route      │ Yield  │   │
│  ├──────────────────────────────────────────────────────────────────┤   │
│  │ zahnarzt-zh.ch  │ 🟢 Active │ 🏥 Medical   │ Comparis   │ CHF 45 │   │
│  │ crm-tool.io     │ 🟢 Active │ 💻 SaaS      │ HubSpot    │ $ 23   │   │
│  │ hotel-davos.ch  │ 🟢 Active │ 🏨 Travel    │ Booking    │ CHF 67 │   │
│  │ mein-blog.de    │ ⚪ Idle    │ ❓ Unknown   │ —          │ —      │   │
│  │ kredit-ch.com   │ 🟡 Pending│ 💰 Finance   │ Analyzing  │ —      │   │
│  └──────────────────────────────────────────────────────────────────┘   │
│                                                                          │
└──────────────────────────────────────────────────────────────────────────┘
```

### 2.3 Domain Aktivieren – Modal/Wizard

**Schritt 1: Domain eingeben**
```
┌─────────────────────────────────────────────────┐
│  Activate Domain for Yield                      │
├─────────────────────────────────────────────────┤
│                                                 │
│  Enter your domain:                             │
│  ┌─────────────────────────────────────────┐   │
│  │ zahnarzt-zuerich.ch                     │   │
│  └─────────────────────────────────────────┘   │
│                                                 │
│  [Continue →]                                   │
│                                                 │
└─────────────────────────────────────────────────┘
```

**Schritt 2: Intent-Erkennung (automatisch)**
```
┌─────────────────────────────────────────────────┐
│  Intent Detected                                │
├─────────────────────────────────────────────────┤
│                                                 │
│  Domain: zahnarzt-zuerich.ch                    │
│                                                 │
│  🧠 Detected Intent:                            │
│  ┌─────────────────────────────────────────┐   │
│  │  🏥 MEDICAL / DENTAL                    │   │
│  │                                         │   │
│  │  Keywords: zahnarzt, zuerich            │   │
│  │  Confidence: 94%                        │   │
│  └─────────────────────────────────────────┘   │
│                                                 │
│  💰 Estimated Revenue: CHF 15-45/month          │
│                                                 │
│  Recommended Partners:                          │
│  • Comparis (Dental Comparison)                 │
│  • Doctolib (Appointment Booking)              │
│                                                 │
│  [Continue →]                                   │
│                                                 │
└─────────────────────────────────────────────────┘
```

**Schritt 3: DNS Setup**
```
┌─────────────────────────────────────────────────┐
│  Connect Your Domain                            │
├─────────────────────────────────────────────────┤
│                                                 │
│  Change your nameservers to:                    │
│                                                 │
│  ┌─────────────────────────────────────────┐   │
│  │  ns1.pounce.ch                     [📋] │   │
│  │  ns2.pounce.ch                     [📋] │   │
│  └─────────────────────────────────────────┘   │
│                                                 │
│  ⏳ We're checking your DNS...                  │
│                                                 │
│  Status: Waiting for propagation (~10 min)      │
│                                                 │
│  [I've updated my nameservers]                  │
│                                                 │
└─────────────────────────────────────────────────┘
```

**Schritt 4: Aktiviert**
```
┌─────────────────────────────────────────────────┐
│  ✅ Domain Activated!                           │
├─────────────────────────────────────────────────┤
│                                                 │
│  zahnarzt-zuerich.ch is now earning.            │
│                                                 │
│  🏥 Intent: Medical/Dental                      │
│  ➔ Route: Comparis Dental                       │
│  💰 Est. Yield: CHF 15-45/month                 │
│                                                 │
│  What happens now:                              │
│  • We host a minimal landing page               │
│  • Visitors are routed to partners              │
│  • You earn affiliate commissions               │
│  • Payouts monthly (min. CHF 50)                │
│                                                 │
│  [View My Yield Dashboard]                      │
│                                                 │
└─────────────────────────────────────────────────┘
```

### 2.4 Portfolio-Tab Integration (Alternative)

Statt einer separaten Seite kann "Yield" auch als **Tab in der Watchlist** integriert werden:

```
┌────────────────────────────────────────────────────────────────┐
│  [Watching]  [My Portfolio]  [Yield] ✨                        │
└────────────────────────────────────────────────────────────────┘
```

**Vorteil:** Weniger Navigation, alles an einem Ort.  
**Nachteil:** Watchlist wird komplexer.

**Empfehlung:** Starte mit separater `/terminal/yield` Seite, kann später in Portfolio integriert werden.

---

## 3. Backend-Architektur (High-Level)

### 3.1 Neue Models

```python
# backend/app/models/yield_domain.py

class YieldDomain(Base):
    """Domain activated for yield/intent routing."""
    __tablename__ = "yield_domains"
    
    id: int
    user_id: int  # FK → users
    domain: str   # "zahnarzt-zuerich.ch"
    
    # Intent
    detected_intent: str  # "medical_dental"
    intent_confidence: float  # 0.94
    intent_keywords: str  # JSON: ["zahnarzt", "zuerich"]
    
    # Routing
    active_route: str  # "comparis_dental"
    partner_id: int  # FK → affiliate_partners
    
    # Status
    status: str  # "pending", "active", "paused", "inactive"
    dns_verified: bool
    activated_at: datetime
    
    # Revenue
    total_clicks: int
    total_conversions: int
    total_revenue: Decimal
    
    created_at: datetime
    updated_at: datetime


class YieldTransaction(Base):
    """Revenue events from affiliate partners."""
    __tablename__ = "yield_transactions"
    
    id: int
    yield_domain_id: int  # FK
    
    event_type: str  # "click", "lead", "sale"
    partner_id: int
    amount: Decimal
    currency: str
    
    # Attribution
    referrer: str
    user_agent: str
    geo_country: str
    
    # Status
    status: str  # "pending", "confirmed", "paid", "rejected"
    confirmed_at: datetime
    paid_at: datetime
    
    created_at: datetime


class AffiliatePartner(Base):
    """Affiliate network/partner configuration."""
    __tablename__ = "affiliate_partners"
    
    id: int
    name: str  # "Comparis Dental"
    network: str  # "awin", "partnerstack", "direct"
    
    # Matching
    intent_categories: str  # JSON: ["medical_dental", "medical_general"]
    geo_countries: str  # JSON: ["CH", "DE", "AT"]
    
    # Payout
    payout_type: str  # "cpc", "cpl", "cps"
    payout_amount: Decimal
    payout_currency: str
    
    # Integration
    tracking_url_template: str
    api_endpoint: str
    api_key_encrypted: str
    
    is_active: bool
    created_at: datetime
```

### 3.2 Neue API Endpoints

```python
# backend/app/api/yield.py

@router.get("/domains")
# Liste alle Yield-Domains des Users

@router.post("/domains/activate")
# Neue Domain aktivieren (Step 1-4 Wizard)

@router.get("/domains/{domain}/intent")
# Intent-Detection für eine Domain

@router.get("/domains/{domain}/verify-dns")
# DNS-Verifizierung prüfen

@router.put("/domains/{domain}/pause")
# Routing pausieren

@router.get("/stats")
# Gesamtstatistiken (Revenue, Clicks, etc.)

@router.get("/transactions")
# Transaktions-Historie

@router.get("/payouts")
# Payout-Historie
```

### 3.3 Intent-Detection Service

```python
# backend/app/services/intent_detector.py

class IntentDetector:
    """Erkennt den Intent einer Domain basierend auf Name und TLD."""
    
    INTENT_CATEGORIES = {
        "medical_dental": {
            "keywords": ["zahnarzt", "dentist", "dental", "zahn"],
            "partners": ["comparis_dental", "doctolib"],
            "avg_cpl": 25.00
        },
        "travel_hotel": {
            "keywords": ["hotel", "ferien", "vacation", "resort"],
            "partners": ["booking", "hotels_com"],
            "avg_cpl": 15.00
        },
        "finance_loan": {
            "keywords": ["kredit", "loan", "finanz", "hypothek"],
            "partners": ["comparis_finance", "lendico"],
            "avg_cpl": 50.00
        },
        "saas_software": {
            "keywords": ["crm", "erp", "software", "tool", "app"],
            "partners": ["hubspot", "partnerstack"],
            "avg_cpl": 30.00
        },
        # ... weitere Kategorien
    }
    
    def detect(self, domain: str) -> IntentResult:
        """Analysiert Domain und gibt Intent zurück."""
        name = domain.rsplit('.', 1)[0].lower()
        # ... Matching-Logik
```

### 3.4 DNS/Hosting Service

```python
# backend/app/services/yield_dns.py

class YieldDNSService:
    """Verwaltet DNS und Hosting für Yield-Domains."""
    
    async def verify_nameservers(self, domain: str) -> bool:
        """Prüft ob Domain auf ns1/ns2.pounce.ch zeigt."""
        
    async def provision_landing_page(self, domain: str, intent: str) -> str:
        """Erstellt minimale Landing Page für Routing."""
        
    async def get_tracking_url(self, domain: str, partner_id: int) -> str:
        """Generiert Affiliate-Tracking-URL."""
```

---

## 4. Phasen-Plan

### Phase 2.1: MVP (4-6 Wochen)

| Task | Prio | Aufwand |
|------|------|---------|
| Intent-Detection Engine (Keyword-basiert) | 🔴 | 1 Woche |
| Yield-Domain Model + API | 🔴 | 1 Woche |
| `/terminal/yield` UI (Basic) | 🔴 | 1 Woche |
| DNS-Verifizierung | 🔴 | 3 Tage |
| 1 Partner-Integration (z.B. Awin) | 🔴 | 1 Woche |
| Landing Page Generator (Minimal) | 🟡 | 3 Tage |
| Transaction Tracking | 🟡 | 3 Tage |

**Ergebnis:** User können Domains aktivieren, wir routen zu 1 Partner-Netzwerk.

### Phase 2.2: Erweiterung (4 Wochen)

| Task | Prio | Aufwand |
|------|------|---------|
| Weitere Partner (5-10) | 🔴 | 2 Wochen |
| Payout-System | 🔴 | 1 Woche |
| Public Landing `/yield` | 🟡 | 3 Tage |
| Landing Page Customization | 🟡 | 3 Tage |
| Revenue Analytics Dashboard | 🟡 | 3 Tage |

### Phase 2.3: Marktplatz-Integration

| Task | Prio | Aufwand |
|------|------|---------|
| "Yield-Generating Domains" Kategorie | 🟡 | 1 Woche |
| Valuation basierend auf Yield (30x MRR) | 🟡 | 3 Tage |
| Yield-History für Käufer sichtbar | 🟡 | 3 Tage |

---

## 5. Monetarisierung

### Revenue Split

| Party | Anteil |
|-------|--------|
| **Domain Owner** | 70% |
| **Pounce** | 30% |

### Tier-Gating

| Tier | Yield-Domains | Payout Threshold |
|------|---------------|------------------|
| **Scout** | 0 (Feature locked) | — |
| **Trader** | 5 | CHF 100 |
| **Tycoon** | Unlimited | CHF 50 |

---

## 6. UX-Philosophie

### Prinzipien

1. **Zero Config:** User ändert nur Nameserver. Alles andere ist automatisch.
2. **Transparent:** Klare Anzeige was passiert, welcher Partner, welche Einnahmen.
3. **Instant Value:** Zeige geschätzten Revenue VOR Aktivierung.
4. **Trust:** Partner-Logos, echte Zahlen, keine Versprechen.

### Sprache

- ❌ "Domain Parking" (klingt nach 2005)
- ✅ "Domain Yield" / "Intent Routing"
- ❌ "Passive Income" (scammy)
- ✅ "Your domain works for you"

---

## 7. Technische Voraussetzungen

| Komponente | Benötigt | Status |
|------------|----------|--------|
| Eigene Nameserver (ns1/ns2.pounce.ch) | ✅ | Neu |
| DNS-Hosting (Cloudflare API oder ähnlich) | ✅ | Neu |
| Landing Page CDN | ✅ | Neu |
| Affiliate-Netzwerk Accounts | ✅ | Neu |
| Payout-System (Stripe Connect?) | ✅ | Teilweise (Stripe existiert) |

---

## 8. Zusammenfassung

### Was ändert sich im UI?

| Bereich | Änderung |
|---------|----------|
| **Landing Page** | Neuer 4. Pillar "YIELD" + Link zu `/yield` |
| **Public `/yield`** | Neue Landingpage mit Calculator |
| **Terminal Sidebar** | Neuer Menüpunkt "YIELD" unter MANAGE |
| **`/terminal/yield`** | Neue Seite: Domain-Liste, Stats, Activate-Wizard |
| **Watchlist** | Optional: "Activate for Yield" Button bei eigenen Domains |

### Backend-Aufwand

- 3 neue Models
- 1 neuer API Router
- 2 neue Services (Intent, DNS)
- Partner-Integrationen (Awin, PartnerStack, etc.)

### Priorität

**Starte mit `/terminal/yield` + Intent-Detection + 1 Partner.**
Public Page und Marktplatz-Integration kommen später.

---

*"Domains werden keine toten Assets mehr. Sie werden autonome Agenten."*

