# Pricing Page Documentation

**Last Updated:** 2026-04-02

## Ordio free trial (SSOT)

**Standard free trial length is 7 calendar days** for Ordio (full access to the chosen package; no credit card; no auto-renewal). Use **7 Tage** / **7-Tage-Testphase** in user-facing copy, FAQs, and form trust lines.

**Authoritative references:** [`v2/data/pricing-faq.json`](../../../../v2/data/pricing-faq.json) (visible FAQ + FAQPage JSON-LD), [`v2/pages/kostenlos-testen.php`](../../../../v2/pages/kostenlos-testen.php), [`v2/base/include_email_form.php`](../../../../v2/base/include_email_form.php) and [`v2/base/include_form-hubspot-kostenlos-testen.php`](../../../../v2/base/include_form-hubspot-kostenlos-testen.php) (trust row), Cello/Referral [`v2/pages/cello_einladung.php`](../../../../v2/pages/cello_einladung.php). **Do not** state 14, 30, or 100 days for Ordio’s trial unless product/legal explicitly changes policy (then update all SSOT locations in one pass).

**Competitor comparison pages** may describe *competitors’* trial lengths (e.g. 7shifts 14 days); that is not Ordio’s trial.

## Live page (canonical)

| | |
|--|--|
| **Public URL** | `https://www.ordio.com/preise` (no trailing slash) |
| **PHP** | [`v2/pages/static_pricing_new.php`](../../../../v2/pages/static_pricing_new.php) |
| **Status** | Published |
| **Visible FAQ + FAQPage JSON-LD** | [`v2/data/pricing-faq.json`](../../../../v2/data/pricing-faq.json) via [`render-faq-json.php`](../../../../v2/components/render-faq-json.php) + post-footer [`include-marketing-faq-jsonld.php`](../../../../v2/components/include-marketing-faq-jsonld.php) (no duplicate FAQPage in head `@graph`) |

**Routing:** [`.htaccess`](../../../../.htaccess) maps **`/preise`** → `static_pricing_new.php`. **`/preise-neu`** **301 → `/preise`** (QSA) — do **not** link to `/preise-neu` in editorial copy or JSON. **`?p=monthly`** / **`?p=yearly`** supported for deep links; `.htaccess` normalizes stray pricing params where configured.

**Related:** [CANONICAL_URLS_AND_LINKING.md](../../../development/CANONICAL_URLS_AND_LINKING.md), [COMPONENT_USAGE_GUIDE.md](../../../systems/shared-components/COMPONENT_USAGE_GUIDE.md) (pricing block row).

## Legacy / alternate files

- **`v2/pages/static_pricing.php`** — Legacy monolith; **not** served for **`/preise`**. Keep only for historical reference or non-canonical entry points (confirm `.htaccess` before editing for “live” pricing).
- **`v2/pages/static_pricing_alt.php`** — Alternate build; no primary canonical URL for `/preise`.

## Page structure (live)

Order follows `static_pricing_new.php` inside `<main>`:

1. **Hero** — Pill „Transparent & Fair“; **H1:** „Flexible Preise für“ + blue line „jedes Team“; decorative SVG; [`pricing-period-toggle.php`](../../../../v2/sections/pricing-period-toggle.php) (monthly/yearly; PHP `$period` from `?p=`).
2. **Plans** — [`pricing-data.php`](../../../../v2/sections/pricing-data.php) + [`pricing-cards-grid-simple.php`](../../../../v2/sections/pricing-cards-grid-simple.php) (modern cards + tooltips).
3. **Enterprise** — [`enterprise-box-modern.php`](../../../../v2/sections/enterprise-box-modern.php).
4. **Add-ons** — [`pricing-addons.php`](../../../../v2/sections/pricing-addons.php).
5. **Testimonials** — [`three-card-testimonials.php`](../../../../v2/sections/partials/three-card-testimonials.php) (`kunden_sagen` variant).
6. **Logo marquee** — [`customer-logo-marquee.php`](../../../../v2/sections/partials/customer-logo-marquee.php).
7. **Comparison table** — „Alle Pakete im Vergleich“ + [`comparison-table-modern.php`](../../../../v2/sections/comparison-table-modern.php); matrix data: [`v2/data/comparison-table-data.json`](../../../../v2/data/comparison-table-data.json).
8. **Reviews / OMR** — Star lines (Google / OMR) with **review counts** from [`v2/data/social-proof-trust-section.php`](../../../../v2/data/social-proof-trust-section.php) (SSOT: e.g. Google 40, OMR 55 as of 2026-04-02); OMR badge asset; CTAs (testen, `/kunden`, Rückruf).
9. **FAQ** — `pricing-faq.json` renderer.
10. **Footer** — [`footer.php`](../../../../v2/base/footer.php).

**Head assets:** [`head.php`](../../../../v2/base/head.php); canonical `https://www.ordio.com/preise`; OG `get_og_image_for_page('static', 'pricing', …)`. **CSS:** `pricing-page.min.css`, `product-pages.min.css` (page gradient), `pricing-tooltips.min.css`. **JS:** sets `window.currentPricingPeriod`, `pricing-page.min.js`, AOS, `lead-capture-triggers.min.js`, `pricing-tooltips.min.js`. **Lead capture:** [`lead-capture-popup.php`](../../../../v2/components/lead-capture-popup.php).

### Plan tiers & progressive feature lists (verify in `pricing-data.php` + Product schema when changing prices)

Cards use a **progressive** structure: **Starter** lists base features only; **Plus** shows „Alle Funktionen von Starter plus:“ + Plus-only rows; **Pro** shows „Alle Funktionen von Plus plus:“ + Pro-only rows (see [`pricing-data.php`](../../../../v2/sections/pricing-data.php) keys `features_base`, `features_plus`, `features_pro`). Tooltip copy lives on each feature’s `description`. Keep row labels in [`comparison-table-data.json`](../../../../v2/data/comparison-table-data.json) aligned when feature names change.

**Three main plans:**

1. **Starter** — €99/Standort/Monat (monthly), €89/Standort/Monat (yearly); „Kostenloses Onboarding“; includes e.g. Schichtplanung, Personalakte, Dokumente, Abwesenheiten, Rechte/Rollen, **Automatische Lohnabrechnung**, Mitarbeiter-App, Nano AI, App Store, Reporting (match live cards + JSON-LD in [`static_pricing_new.php`](../../../../v2/pages/static_pricing_new.php)).
2. **Plus** — €149 / €129; adds gesetzeskonforme Zeiterfassung, GPS, Signatur, Team Terminal, Broadcasts, Pausenregeln, Toleranzen, Verspätungsdoku.
3. **Pro** — €179 / €149; highlighted „Am beliebtesten“; adds Checklisten & Formulare, DATEV/Lohn-Export, Public REST-API.

**Enterprise** — Custom („Preis auf Anfrage“), typically 70+ MA; modal / form flow per section partial.

**Add-ons (six):** Payroll Plus, Ordio Events, Hardware-Terminals, Personaldienstleister, QR-Code Multi-Checkin, Trinkgeld — each with inquiry CTA/modal as implemented in `pricing-addons.php`.

**Comparison table:** Sticky header, category/plan views, filters; long compatibility detail belongs in **card tooltips**, not only in table row labels (see [`comparison-table-data-structure.md`](../../../implementation/comparison-table-data-structure.md)).

## Content Strategy

### Messaging

**Primary Value Proposition:**

- Flexible und faire Pakete für jedes Team
- Fixpreis pro Standort (transparency)
- Kostenloses Onboarding

**Key Benefits:**

- Transparent pricing (no hidden fees)
- Flexible billing (monthly/yearly)
- **7-day** free trial (see [Ordio free trial (SSOT)](#ordio-free-trial-ssot))
- Fair pricing structure

**Pricing Philosophy:**

- Per-location pricing (not per-user)
- Simple, transparent pricing
- No hidden fees
- Fair for all business sizes

### SEO Focus

**SSOT for targets + evidence:** [`preise/data/target-keywords.json`](preise/data/target-keywords.json) and [`preise/data/KEYWORD_DECISION.md`](preise/data/KEYWORD_DECISION.md) (refresh via [`DATA_COLLECTION_STATIC_SITE.md`](DATA_COLLECTION_STATIC_SITE.md)).

- **Primary keyword:** **Ordio Preise** (branded commercial; aligns with GSC query demand on `/preise`, e.g. *ordio preise*, *ordio kosten*).
- **Secondary keywords:** Ordio Kosten; HR-Software-Preise; Schichtplan-Software-Kosten; Zeiterfassung-Software-Preis; Personalsoftware-Kosten; Preis pro Standort; DATEV-Export-Kosten (feature depth stays on Produkt-URLs where applicable).
- **Long-tail / synonym clusters:** wie viel kostet ordio; ordio preise pro standort; schichtplanung software kosten; hr software preise vergleich.

**Target Intent:** Commercial (compare packages, understand billing, validate total cost of ownership)

### Conversion Strategy

- **Hero:** Trust pill + clear H1; period toggle immediately below hero art
- **Reviews block:** OMR badges and star ratings build trust below the comparison table
- **Pricing Toggle:** Yearly pricing highlighted (16% discount)
- **Plan Highlighting:** Pro plan visually emphasized ("Am beliebtesten")
- **Free Trial CTAs:** Multiple CTAs; trial length **7 Tage** (consistent with FAQ + forms)
- **Enterprise Modal:** Custom inquiry form for larger businesses
- **Add-on Modals:** Separate inquiry forms for add-ons
- **Feature Comparison:** Detailed comparison helps users choose right plan
- **Social Proof:** Testimonials and customer logos
- **FAQ:** Addresses common pricing objections

## Schema Markup

### Product Schema (for each plan)

**Starter:**

```json
{
  "@type": "Product",
  "name": "Ordio Starter",
  "description": "Starter Paket für kleine Teams. Inklusive Personalakte, Dokumentenmanagement, Abwesenheiten, Nano AI und Ordio App Store.",
  "offers": [
    {
      "@type": "Offer",
      "priceCurrency": "EUR",
      "price": "99.00",
      "priceValidUntil": "2026-12-31",
      "url": "https://www.ordio.com/preise?p=monthly"
    },
    {
      "@type": "Offer",
      "priceCurrency": "EUR",
      "price": "89.00",
      "priceValidUntil": "2026-12-31",
      "url": "https://www.ordio.com/preise?p=yearly"
    }
  ]
}
```

**Plus:**

- Monthly: €149.00
- Yearly: €129.00

**Pro:**

- Monthly: €179.00
- Yearly: €149.00

**Enterprise:**

- Custom pricing (price: "0.00", availability: "LimitedAvailability")

### Standard Schemas

- **WebPage schema:** Includes canonical URL, dates, description
- **BreadcrumbList schema:** Home > Preise

## Technical Implementation

### PHP Files

- **Main page (live `/preise`):** `v2/pages/static_pricing_new.php` — see [Live page (canonical)](#live-page-canonical). Legacy: `static_pricing.php` (not canonical for `/preise`).
- **Sections:**
  - `v2/sections/pricing-data.php` - Pricing plan data (cards + tooltips)
  - `v2/data/comparison-table-data.json` - Full feature matrix for „Alle Pakete im Vergleich“ (category + plan views)
  - `v2/sections/pricing-card-modern.php` - Modern pricing card component (uses tooltip component)
  - `v2/sections/pricing-card.php` - Legacy pricing card component
  - `v2/sections/enterprise-box.php` - Enterprise plan section
  - `v2/sections/pricing-addons.php` - Add-ons section
- **Components:**
  - `v2/components/pricing-feature-tooltip.php` - Tooltip component for feature descriptions
- **Base Components:**
  - `v2/base/head.php` (with AOS script enabled)
  - `v2/base/header.php`
  - `v2/base/footer.php`

### CSS Files

- **Pricing Page CSS:** `v2/css/pricing-page.css` (minified: `pricing-page.min.css`)
- **Tooltip CSS:** `v2/css/pricing-tooltips.css` - WCAG 2.2 compliant tooltip styles
- **Versioning:** Dynamic version parameter using `filemtime()`

### JavaScript Files

- **Pricing Page JS:** `v2/js/pricing-page.js` (minified: `pricing-page.min.js`)
- **Tooltip JS:** `v2/js/pricing-tooltips.js` - Tooltip interaction handlers
- **AOS (Animate On Scroll):** Enabled (`$aosScript = "true"`)
- **Swiper:** Disabled (`$swiperScript = "false"`)
- **Alpine.js:** Used for modal management and interactive elements

### Feature Tooltips

**Component:** `v2/components/pricing-feature-tooltip.php`

Feature descriptions are displayed in tooltips (not inline) to reduce visual clutter:

- **Trigger:** Info icon (ⓘ) next to feature title
- **Display:** Tooltip appears on hover (desktop) or tap (mobile)
- **Accessibility:** WCAG 2.2 compliant with keyboard support (Tab, Enter/Space, Escape)
- **Positioning:** Auto-adjusts for viewport edges
- **Mobile:** Full-width tooltips with larger touch targets (44px minimum)

**Implementation:**
- Component automatically renders tooltip if `description` key exists in feature array
- ARIA attributes: `role="tooltip"`, `aria-describedby`, `aria-label`
- Keyboard navigation: Tab to focus, Enter/Space to toggle, Escape to dismiss

See `docs/guides/pricing-page-tooltips.md` for complete implementation guide.

### Pricing Toggle Functionality

**JavaScript Functions:**

- `switchPricing(period)` - Switches between monthly/yearly pricing
- `initializePricing()` - Initializes pricing display on page load
- URL parameter support: `?p=monthly` or `?p=yearly`
- Smooth animations for price changes
- Analytics tracking for toggle events

**Pricing Data Structure:**

```javascript
const pricingData = {
  monthly: {
    starter: "99 €",
    plus: "149 €",
    pro: "179 €",
  },
  yearly: {
    starter: "89 €",
    plus: "129 €",
    pro: "149 €",
  },
};
```

### Modal Functionality

**Enterprise Modal:**

- Opens via `openEnterpriseModal()` function
- Contains custom inquiry form
- Includes UTM tracking

**Add-on Modals:**

- Individual modals for each add-on
- Form submissions with tracking
- Modal overlay with backdrop blur

### Dependencies

**Backend:**

- PHP session management
- Pricing data from `pricing-data.php`
- Base component includes
- Schema generation helpers

**Frontend:**

- **CSS Files (REQUIRED for `pricing-card-modern.php`):**
  - `pricing-page.min.css` - Base pricing page styles
  - `pricing-tooltips.min.css` - Tooltip styles (REQUIRED - missing causes broken rendering)
- **JavaScript Files (REQUIRED for `pricing-card-modern.php`):**
  - `pricing-page.min.js` - Pricing toggle functionality
  - `pricing-tooltips.min.js` - Tooltip interactions (REQUIRED - missing causes broken rendering)
- AOS library for scroll animations
- Alpine.js for interactive elements
- Tailwind CSS for styling
- Custom pricing toggle JavaScript
- Modal management system

**See `docs/systems/pricing-components/PRICING_COMPONENTS_AUDIT.md` for complete dependency documentation.**

## Maintenance

### Update Triggers

- **Pricing Changes:** When pricing plans or add-on prices change
- **New Plans:** When new pricing tiers are added
- **Feature Updates:** When plan features change
- **Promotional Pricing:** When special offers or discounts are active
- **Schema Updates:** When Product schema prices need updating (check `priceValidUntil` dates)
- **OMR Badges:** When new OMR Reviews badges are received
- **Guarantee Changes:** When guarantee terms change

### Review Schedule

- **Monthly:** Verify all prices are current and correct
- **Quarterly:** Review pricing competitiveness and market positioning
- **Annually:** Comprehensive pricing strategy review
- **After Promotions:** Update pricing after special offers expire

### Update Checklist

- [ ] Verify all plan prices are current (€89/Standort/Monat standard for yearly Starter)
- [ ] Check `priceValidUntil` dates in Product schema (align with calendar year, e.g. `2026-12-31` in `static_pricing_new.php`)
- [ ] Update OMR badges if new reviews received
- [ ] Verify pricing toggle works correctly (monthly/yearly)
- [ ] Test all modal forms (Enterprise, Add-ons)
- [ ] Validate schema markup with Google Rich Results Test
- [ ] Check feature comparison table is accurate
- [ ] Verify all CTAs are functional
- [ ] Test responsive design on mobile devices
- [ ] Verify pricing calculations (16% discount for yearly)
- [ ] Check add-on pricing is current
- [ ] Validate canonical URL and meta tags

### Critical Pricing Information

**Current Standard Pricing (2026):**

- **Starter:** €89/Standort/Monat (yearly), €99/Standort/Monat (monthly)
- **Plus:** €129/Standort/Monat (yearly), €149/Standort/Monat (monthly)
- **Pro:** €149/Standort/Monat (yearly), €179/Standort/Monat (monthly)
- **Enterprise:** Custom pricing (70+ employees)

**Discount:** 16% off when paying yearly

**Onboarding:** Kostenloses Onboarding for all plans

## Related Documentation

- [Static Pages Inventory](STATIC_PAGES_INVENTORY.md)
- [Pricing Page Design System](../../design-system/pricing-page-design-system.md)
- [Pricing Page Testing Guide](../../testing/pricing-page-testing-guide.md)
- [Pricing Page Validation Checklist](../../validation/pricing-page-validation-checklist.md)
- [Pricing Page Tooltips Guide](../../../guides/pricing-page-tooltips.md) - Tooltip implementation guide

## Related Cursor Rules

- [static-pages.mdc](../../../../.cursor/rules/static-pages.mdc)
- [pricing-tooltips.mdc](../../../../.cursor/rules/pricing-tooltips.mdc) - Tooltip patterns
- [pricing-page-copy.mdc](../../../../.cursor/rules/pricing-page-copy.mdc) - Copy guidelines
- [shared-patterns.mdc](../../../../.cursor/rules/shared-patterns.mdc)
- [global.mdc](../../../../.cursor/rules/global.mdc)
