# Product Feature Cards Specification

**Last Updated:** 2026-02-16

Specification for feature card copy on product pages (Schichtplan, Arbeitszeiterfassung, Abwesenheiten). Ensures visual consistency, SEO/AEO/GEO optimization, and conversion-focused messaging.

## Target Character Length

| Metric | Value |
|--------|-------|
| **Target range** | 70–95 characters per description |
| **Warn threshold** | 60–110 characters |
| **Fail threshold** | 50–120 characters |

Descriptions outside the target range create visual inconsistency in the card grid. Run the validation script after edits:

```bash
python3 v2/scripts/dev-helpers/validate-feature-card-copy.py
python3 v2/scripts/dev-helpers/validate-feature-card-copy.py schichtplan  # single page
```

## Copy Formula

**Benefit-driven pattern:** [Action] du [Outcome] or [Du/Verb] [benefit] [context]

- Lead with benefit, not feature
- Use active voice ("verwaltest du" not "können verwaltet werden")
- Du tone throughout (informal "du", never "Sie")

**Examples:**

- ❌ "Über- und Unterstunden können in einem Konto verwaltet werden."
- ✅ "Verwalte Über- und Unterstunden in einem Konto – inklusive Abgeltung."

- ❌ "Den gesamten Abwesenheitsverlauf anzeigen."
- ✅ "Alle Abwesenheiten zentral einsehen – gefiltert nach Zeitraum und Typ."

## SEO/AEO/GEO Guidelines

### SEO

- Include 1 primary keyword per card where natural (Schichtplanung, Zeiterfassung, Abwesenheit, Urlaub, DATEV, gesetzeskonform, App, Reporting)
- Avoid keyword stuffing; prioritize readability

### AEO (Answer Engine Optimization)

- Self-contained, quotable chunks – each description stands alone
- Answer-first: lead with the benefit or capability
- No Ordio brand name in descriptions (snippets prefer unbranded answers)

### GEO (Generative Engine Optimization)

- One idea per card; avoid mixing multiple concepts
- Clear, factual tone for AI extraction
- Entity consistency: use stable terminology (Urlaub, Krankheit, Elternzeit, etc.)

## Validation Checklist

Before committing feature card changes:

- [ ] Run `validate-feature-card-copy.py` – all descriptions within 70–95 chars
- [ ] Du tone throughout
- [ ] Active voice, benefit-driven
- [ ] No Ordio in description text
- [ ] Self-contained (no dependency on prior context)
- [ ] Keywords integrated naturally

## Related Documentation

- [product-pages.mdc](../../../.cursor/rules/product-pages.mdc) – Product page patterns
- [product-feature-cards.mdc](../../../.cursor/rules/product-feature-cards.mdc) – Cursor rule for feature cards
- [CONTENT_WRITING_BEST_PRACTICES_2026.md](../CONTENT_WRITING_BEST_PRACTICES_2026.md) – Content guidelines
