# AI Booking Optimering

## Produktoversigt

AI Booking Optimering er et intelligent tillægsmodul der hjælper saloner med at maksimere deres kalenderudnyttelse og reducere tabt omsætning fra tomme tidsslots.

---

## Features

### Feature 1: Smart Tidsforslag (Real-time)

Når kunder booker online, analyserer AI'en eksisterende bookinger og foreslår de mest optimale tidspunkter.

**Hvordan det virker:**
1. Kunden vælger ydelse (f.eks. Dameklip, 60 min)
2. AI'en analyserer dagens/ugens bookinger for den valgte medarbejder
3. Hvert ledigt tidsslot får en score baseret på:
   - Minimering af huller
   - Optimal udnyttelse af åbningstiden
   - Kontinuitet i bookinger
4. Top 2-3 bedste slots markeres med "Anbefalet" badge

**Scoring-algoritme:**

| Kriterium | Score |
|-----------|-------|
| Starter ved åbningstid | +3 |
| Slutter præcis på næste booking | +3 |
| Starter lige efter en booking | +2 |
| Slutter ved lukketid | +1 |
| Skaber hul < 30 min | -2 |

**UX-principper:**
- Blød anbefaling - kunden kan stadig vælge alle ledige tider
- Grøn badge med AI-ikon på anbefalede tider
- Info-tekst forklarer fordelen

---

### Feature 2: Kalender-optimering Dashboard

Salonejere får et dashboard der identificerer huller og foreslår handlinger.

**Dashboard-komponenter:**

1. **Statistik-kort**
   - Huller i dag
   - Tabt omsætning (estimeret)
   - Huller denne uge
   - Potentiel besparelse

2. **Mini-kalender**
   - Visuel oversigt over ugen
   - Farvekodede dage (grøn = optimalt, gul = huller, rød = kritisk)

3. **Hul-liste**
   - Detaljeret visning af hvert identificeret hul
   - Medarbejder og tidspunkt
   - Estimeret tabt omsætning
   - AI-forslag til at fylde hullet

4. **AI-forslag typer:**
   - **Flyt booking**: Foreslå at flytte en eksisterende kundes tid
   - **Venteliste**: Kontakt kunde fra ventelisten
   - **Rabattilbud**: Send SMS med rabat for at fylde hullet

5. **SMS-historik**
   - Track sendte tilbud
   - Accept/afvisning statistik
   - Pending tilbud

---

## Teknisk Implementation

### POC 1: poc-booking-v2.html

**Tilføjede komponenter:**

```javascript
// Mock data for eksisterende bookinger
const existingBookings = {
  'EMP001': {
    '2026-01-06': [
      { start: '10:00', end: '11:00', service: 'Dameklip' },
      { start: '13:30', end: '14:30', service: 'Herreklip' }
    ]
  }
};

// Scoring-algoritme
function calculateOptimalSlots(serviceDuration, date, employeeId) {
  // 1. Hent bookinger for dato/medarbejder
  // 2. Generer alle mulige slots (30 min intervaller)
  // 3. Tjek overlap med eksisterende bookinger
  // 4. Beregn score for hvert ledigt slot
  // 5. Marker top 3 med positiv score som "recommended"
  return slots;
}
```

**CSS-styling:**
- `.time-slot.recommended` - Grøn border og baggrund
- `.ai-badge` - Absolut positioneret badge med sparkle-ikon
- `.ai-info` - Info-boks over tidsgrid

### POC 2: poc-ai-booking-optimizer.html

**Struktur:**
- Topbar med AI-badge
- Stats-grid med 4 KPI-kort
- Main-grid med kalender og hul-liste
- Sidebar med optimeringsscore og SMS-historik

**Mock data:**
- `gaps[]` - Identificerede huller med forslag
- `weekDays[]` - Ugevisning med gap-status
- `smsHistory[]` - Historik over sendte tilbud

---

## Forretningsværdi

### ROI-beregning

```
Typisk salon:
- 4 medarbejdere
- 40 timer/uge pr. medarbejder
- 15% tomme slots = 24 timer/uge tabt
- Gennemsnitlig timepris: 500 kr.
- Tabt omsætning: 12.000 kr./uge = 624.000 kr./år

AI-optimering fylder 50% af huller:
- Ekstra omsætning: 312.000 kr./år

Pris for AI-modul: 499 kr./md = 5.988 kr./år
ROI: 52x investering
```

### Nøgletal at tracke

| Metrik | Beskrivelse |
|--------|-------------|
| Kalenderudnyttelse | % af tilgængelige timer der er booket |
| Gennemsnitligt hul | Minutter tabt pr. dag i gaps |
| Accept-rate | % af kunder der accepterer flyttetilbud |
| Tabt omsætning | Estimeret kr. i tomme slots |
| Optimeringsscore | Samlet effektivitet (mål: 90%+) |

---

## Fremtidig AI-udvidelse

### Niveau 1: Regelbaseret (Nuværende POC)
- Statiske scoring-regler
- Ingen læring
- Fungerer for alle saloner ens

### Niveau 2: Machine Learning
- Lærer fra salonens historik
- Personlige kundeprofilenr
- Forudsigelse af no-shows
- Dynamisk prisjustering

### ML-features (fremtidig):

1. **Historisk mønstergenkendelse**
   - Populære vs. døde tider
   - Sæsonvariation
   - Service-specifikke mønstre

2. **Kundesegmentering**
   - Fleksible vs. fastlåste kunder
   - Pris-sensitive kunder
   - No-show risiko-profiler

3. **Intelligent rabat-beregning**
   - Dynamisk rabat baseret på:
     - Hullets "værdi"
     - Kundens prissensitivitet
     - Sandsynlighed for naturlig booking

4. **Proaktiv optimering**
   - Forudsig huller før de opstår
   - Automatisk udsend tilbud
   - Venteliste-matching

---

## Integration med eksisterende system

### Data-flow

```
Booking system
     │
     ▼
┌─────────────────┐
│ AI Optimizer    │
│  - Analyse      │
│  - Scoring      │
│  - Anbefalinger │
└─────────────────┘
     │
     ▼
┌─────────────────┐    ┌─────────────────┐
│ Booking Widget  │    │ Dashboard       │
│ (kundevisning)  │    │ (ejervisning)   │
└─────────────────┘    └─────────────────┘
```

### API-endpoints (fremtidig)

```
GET  /api/ai/optimal-slots?date=X&employee=Y&duration=Z
POST /api/ai/send-offer
GET  /api/ai/gaps?week=X
GET  /api/ai/stats
```

---

## Konfiguration

### Indstillinger pr. salon

| Indstilling | Beskrivelse | Default |
|-------------|-------------|---------|
| `minGapMinutes` | Mindste hul der tæller som tabt | 30 min |
| `recommendedSlots` | Antal anbefalede slots | 3 |
| `defaultDiscount` | Standard rabat ved flytning | 5% |
| `autoSendOffers` | Automatisk udsend tilbud | Fra |
| `smsEnabled` | Aktiver SMS-udsendelse | Til |

---

## Filer

| Fil | Beskrivelse |
|-----|-------------|
| `poc-booking-v2.html` | Kundens booking-widget med AI-anbefalinger |
| `poc-ai-booking-optimizer.html` | Dashboard til salonejere |
| `docs/ai-booking-optimering.md` | Denne dokumentation |

---

## Changelog

### Version 1.0 (Januar 2026)
- Initial POC implementation
- Regelbaseret scoring-algoritme
- Dashboard med hul-identifikation
- SMS-historik tracking
