Moves POC-files into PlanTempus

This commit is contained in:
Janus C. H. Knudsen 2026-02-03 19:12:45 +01:00
parent 51f3b92d69
commit ea3ecdfb68
91 changed files with 59868 additions and 0 deletions

View file

@ -0,0 +1,255 @@
# 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