# karting.guide

Site grounding for agents without the karting.guide repository: its seven charter files, unchanged except that headings sit two levels lower and every term id the pinned version defines, in the frontmatter blocks too, is followed by its label from the pinned version. The YAML blocks are therefore for reading, not parsing; the repo files are the source.

- Domain: karting.guide
- Pins: editorial-charter@1.3.1, portfolio-icp@1.0.0
- Repo: dcac9fac17c6997ac13f087f3732e3d445408cdb (committed 2026-10-03T13:38:59-07:00)
- Built 2026-10-05T03:25:29+00:00
- Pages: https://taxonomy.tfw.bz/sites/karting.guide/

## BRAND.md

Version 1.0.1 · status draft · sha256 0ac12671c5f43fdc0ef584dded94b7e6d0cb0acf47ac58de0d0e4c379e2597a7

```yaml
charter: 1
version: 1.0.1
profile: editorial-charter@1.3.1
domain: karting.guide
status: draft
reviewed_by: ""
archetype: charter:brand-archetype-sage (sage)
secondary_archetype: charter:brand-archetype-everyman (everyman)
claims:
  - id: c1
    text: The site is not affiliated with any track, venue or brand, and listings and guides are researched and written independently.
    basis: charter:claim-basis-documented (documented)
    source: about.manifest.json copy.summary150
  - id: c2
    text: Track specs and prices come from the operators' published pages, and every price carries the date it was checked.
    basis: charter:claim-basis-documented (documented)
    source: VOICE.md sections 4 and 6
  - id: c3
    text: The site never invents a track, price or lap record.
    basis: charter:claim-basis-documented (documented)
    source: briefs/site.md (handover section 6.4 placeholders); VOICE.md section 4
```

### BRAND

#### Name and entity
karting.guide, an independent guide to go-kart tracks, racing classes and getting started, founded in 2026. Byline: "karting.guide editors" (VOICE.md section 6). Entity home: https://karting.guide/en/about/ (`about.manifest.json`, generated from the entity registry; About copy in `content/about.md`).

#### Promise
You compare go-kart tracks on the same numbers, session length, age and height limits and price with its check date, before you book.

#### Personality
The sage, with an everyman streak: a pit-wall briefing for ordinary drivers. It gives the number first, states the unit and the date checked, and leaves out the hype operators use. It is plain enough for a birthday group and exact enough for someone timing laps.

#### Visual pointers
Locked "Pit Lane" direction (industrial, bolted black and white signage, spec sheets with a track code). Tokens: `design/tokens.json`. Rationale and rules: `DESIGN.md` and `design/DIRECTION.md`.

#### Do / Don't
Do: put the spec table before the prose on every track page. Do: give session length in minutes, not laps. Do: label every featured or paid slot as paid.
Don't: invent a track, price or lap record. Don't: use operator hype or Mario Kart jokes. Don't: let a paid listing change the default sort.

## VOICE.md

Version 1.0.1 · status draft · sha256 adf5b4adb99c612738f4608970fcc85e55ae3cb8825a219e60c84eb584cff1ef

```yaml
charter: 1
version: 1.0.1
profile: editorial-charter@1.3.1
domain: karting.guide
status: draft
reviewed_by: ""
register: charter:voice-register-consumer (consumer)
person: charter:voice-person-second (second person)
languages: [en, de, es, fr]
addresses: [leisure-karters, new-racers]
essence: "Pit-wall briefing: the numbers you need to pick a track, delivered fast."
```

<!-- ASSUMED DEFAULT, 2026-09-17: recommended voice option 'a. Pit-wall briefing' from ~/reports/site-strategy/karting.guide.json, pending Tom's review in ~/reports/site-decisions/index.html. If Tom picks another voice this file is replaced. -->

### VOICE: karting.guide (karting.guide)

> Loaded by /humanizer (Step 0) and the content publishing gate (drafting Step 1
> + humanizer Step 3). If absent, both fall back to generic mode.

#### 1. Identity & Register
- Voice owner / who speaks: the site, second person, pit-wall register
- Register: brand
- Language/locale: en (source language; see Languages below)
- One-line essence: "Pit-wall briefing: the numbers you need to pick a track, delivered fast."

#### 2. Audience
- Primary audience: leisure karters, groups and event organizers choosing a track
- Reader's job-to-be-done: compare tracks on the same terms and book the right session
- Assume they know what a go-kart is; always give session length, age and height limits and price basis

#### 3. Tone Axes  (mark where this voice sits)
- Formal   ────●───  Casual
- Authority ─●─────  Peer
- Serious  ──●─────  Playful
- Concise  ●──────  Expansive
- Default editorial_track: factual

#### 4. Person, POV & Cadence
- Person: second person ('you'); imperative for checks
- Sentence rhythm: short, clipped, numbers early; no adjectives where a number fits
- Paragraph length: 1 to 3 sentences
- Spec table before prose on every track and comparison page
- Every price with 'checked' date and what it includes
- Units always stated (m, km/h, min)
- Never invent a track, price or lap record (§6.4 placeholders only)

#### 5. Lexicon
- Preferred terms: 'track length', 'session', 'arrive-and-drive', 'electric', 'petrol', 'lap time', 'minimum age', 'group booking', 'rental kart'
- Banned phrases (beyond humanizer's generic list): 'adrenaline-fuelled', 'ultimate thrill', 'feel like a Formula 1 driver', 'fun for all the family', 'epic', 'unforgettable'
- Capitalization & spelling rules: 'go-kart' hyphenated in running text, 'karting' one word; metric first with imperial in brackets on en pages; operator brand names in their own casing (K1 Speed)
- Domain-jargon level: Moderate: racing terms (apex, braking zone) allowed, defined once on beginner pages.

#### 6. E-E-A-T / Experience Claims  (anchors gate Step 7)
- Authentic experience this voice can claim: Data collection only: the site compiles published track specs and prices. No claims of having driven a track unless an editor actually did, with date.
- Named author + bio source: Byline 'karting.guide editors'. Do not invent drivers or lap records.
- Quantified credential for bios: Number of tracks with verified specs and last check date, published on the methodology page.
- Citation posture: Cite track operators' published specs and national motorsport bodies for classes, licences and safety rules.
- Original-data hooks this voice owns: Comparable spec tables per city; track count and coverage stats per country.
- "What I got wrong" angle: Note when a spec on a track page was wrong and what changed, with date.

#### 7. Gold-Standard Examples  (few-shot anchor, highest leverage)
- Example A (seed sample, replace with a published paragraph once live): "Indoor or outdoor? Pick by what you want out of the session. Indoor tracks are shorter and tighter, usually run electric karts, and work in any weather, which makes them the easier choice for a birthday or a work group. Outdoor tracks are longer and faster, with real straights and braking zones, and are where lap times start to mean something. Before you book either, check three numbers on the track page: session length in minutes, not laps; minimum driver age and height; and the price per driver including any mandatory helmet liner or licence fee."
  - Why on-voice: Decision rule first, then the three numbers to check.
- Example B (seed sample, replace with a published paragraph once live): "Session: 12 min. Min age: 14. Min height: 150 cm. Price basis: per driver, helmet liner included. Checked: September 2026."
  - Why on-voice: Pure pit-wall data line that the design's spec tables echo.

#### 8. Anti-References  (do NOT sound like)
- Track operators' hype copy
- Mario Kart jokes and gaming puns
- Groupon-style deal pages
- Generic 'top 10 go-kart tracks' listicles

#### Languages
- de: du throughout, as is normal for leisure motorsport and indoor-karting operators in German; switch to Sie only on pages for corporate event bookers. Knapp, zahlenorientiert. 'Kartbahn', 'Indoor-Kartbahn', 'Leihkart', 'Rennlizenz'. Racing classes and licences per DMSB, cited.
- es: tú throughout, direct and technical. 'Circuito de karts', 'karting indoor', 'kart de alquiler'. Spanish demand is city-led (Barcelona, Madrid, coastal resorts), so track pages name the city in the first line. Classes and licences per RFEDA, cited.
- fr: vous throughout (French leisure operators mostly use vous). Sobre et chiffré. 'Piste de karting', 'karting en salle', 'kart de location', 'licence FFSA'. Classes and licences per FFSA, cited.

## STRATEGY.md

Version 1.1.1 · status draft · sha256 771e7d8f0be6b5dcf8ff8bfa982b844e8d1747b1420132a2499c1acef8991c73

```yaml
charter: 1
version: 1.1.1
profile: editorial-charter@1.3.1
domain: karting.guide
status: draft
reviewed_by: ""
mission_shape: charter:mission-shape-serve-x-to-achieve-y (serve X to achieve Y)
horizon: charter:horizon-12m (12 months)
positioning:
  primary: charter:positioning-axis-locality (locality)
  secondary: [charter:positioning-axis-speed-of-answer (speed of answer)]
audiences:
  - kind: charter:audience-kind-consumer (consumer)
    name: Leisure karters
    segment: leisure-karters
    job_to_be_done: Find a track nearby or in a city they are visiting, compare it on the same terms and book the right session or group event.
  - kind: charter:audience-kind-consumer (consumer)
    name: New racers
    segment: new-racers
    job_to_be_done: Understand racing classes, licences and the step from rental karts to competition.
profile_required: true
```

### STRATEGY

#### Mission
We help people choosing a go-kart track compare tracks on the same terms and book the right session, using data from each track rather than generic copy.

#### Positioning
Locality first: every track gets a data-led page by city, because the question is which track nearby is worth it. Speed of answer second: the spec table comes before the prose. We concede brand navigation such as "k1 speed" to the operators' own sites, and "near me" intent to Google Maps; the directory has to win on comparable data, not on the listing alone (briefs/strategy.md risks). Comparable numbers alone are not unique: kartingtracks.co.uk already lists age, height, minutes and price per minute for 137 UK and Irish circuits. What no reviewed competitor shows is a check date on each price and coverage in German, Spanish and French, so those carry the positioning (docs/competitive-landscape.md, 2026-10-03).

#### Audiences
Leisure karters are adults planning a session at a rental track, alone, with friends, for a birthday or a work outing. The trigger is a free evening, an event to organize or a visit to a new city.

New racers want to move beyond rentals into kart racing. They need racing classes and licence rules from the national motorsport body. This is a watch segment while the plan focuses on leisure.

#### Competitors
Researched 2026-10-03 in docs/competitive-landscape.md (US search results for eight head queries plus three discovery queries).

Operators own the English head queries: K1 Speed ranks on most of them, with RPM Raceway, Andretti and single tracks, and Wikipedia takes the definitional ones. We concede their brand queries.

Independent directories answer our question on longer comparison queries: RaceGoKarts (US, ballpark prices, session length, age and height), GoKartingUSA (US city rankings and a price study), Go-Karts Near Me (US, featured listings), Karting Tracks (UK and Ireland, the closest match: minutes, price per minute, age and height, claim and Featured), GoKartingUK (UK, price guides and group quotes), and RacinGO and Kart-fahren.com in German. Groupon, Tripadvisor and Yelp answer with deals and reviews. Google Maps takes "near me" (briefs/strategy.md), which the search tool could not observe.

None of these shows a check date per price or covers English, German, Spanish and French together. UK, German, Spanish and French result pages are not yet checked.

#### What we will not do
No invented track, listing, price or lap record; city and venue pages use placeholders until data exists (briefs/site.md). No unlabelled paid slot and no paid default sort. No kart retail affiliate or experience-booking affiliate, which were alternatives not chosen. No listing fee, ad slot or affiliate link goes live until Tom confirms.

#### Bets for the horizon
1. Build comparable city track pages for the largest English and Spanish, German and French demand (moves gsc_clicks).
2. Make the spec tables and indoor against outdoor guides the page people keep open while booking (moves content_engaged).
3. Earn track trust with a free claim flow before any paid profile (moves pageview_recorded).

## AUDIENCE.md

Version 1.2.1 · status draft · sha256 eb2c5f20e6a7c1c9589aa48f64a7058c0e11210beaf59bbe18b3a393b0f93616

```yaml
charter: 1
version: 1.2.1
profile: editorial-charter@1.3.1
domain: karting.guide
status: draft
reviewed_by: ""
segments:
  - slug: leisure-karters
    name: Leisure karters
    kind: charter:audience-kind-consumer (consumer)
    archetype: icp:first-time-experience-seeker (First-time experience seeker)
    priority: charter:segment-priority-primary (primary)
    job_to_be_done: Find a track nearby or in a city they are visiting, compare it on the same terms and book the right session or group event.
    funnel_stages: [charter:funnel-stage-awareness (awareness), charter:funnel-stage-consideration (consideration), charter:funnel-stage-decision (decision)]
    languages: [en]
    regions: [US, GB]
    pains:
      - Track websites hide prices and session length.
      - There is no way to compare tracks on the same terms.
      - Group or party packages are unclear.
    channels: [charter:channel-organic-search (organic search)]
    entry_paths: ["/*/indoor-karting/*", "/*/go-kart-track/*", "/*/go-kart-places/*"]
    size_signal: {metric: monthly_searches, value: 131000, unit: count}
    evidence:
      default: {basis: charter:evidence-basis-researched (researched), source: "about.manifest.json copy.modules what-we-do (leisure karters organizing a casual group outing), VOICE.md section 2 and briefs/strategy.md ICP a", as_of: 2026-10-03}
      size_signal: {basis: charter:evidence-basis-assumed (assumed), source: "briefs/strategy.md (about 131,000 monthly en searches across go-kart-places, go-kart-track and indoor-karting, before city and non-English queries)", as_of: 2026-09-17}
      job_to_be_done: {basis: charter:evidence-basis-researched (researched), source: "docs/content-inventory.md (all 4 drafted pages, en only, compare rental sessions by format, driver requirements and price; 0 published)", as_of: 2026-10-03}
      regions: {basis: charter:evidence-basis-assumed (assumed), source: "about.manifest.json entity.languages and content/ hold en only (de, es, fr are planned in briefs/site.md, not drafted); US from the en keyword set (K1 Speed, Andretti), GB assumed; no traffic data", as_of: 2026-10-03}
  - slug: new-racers
    name: New racers
    kind: charter:audience-kind-consumer (consumer)
    archetype: icp:unmapped (Unmapped)
    priority: charter:segment-priority-watch (watch)
    job_to_be_done: Understand racing classes, licences and the step from rental karts to competition.
    funnel_stages: [charter:funnel-stage-awareness (awareness)]
    languages: [en]
    regions: [US, GB]
    channels: [charter:channel-organic-search (organic search)]
    evidence:
      default: {basis: charter:evidence-basis-researched (researched), source: "about.manifest.json copy.modules what-we-do (people getting into kart racing who want to understand classes and licensing), briefs/site.md audience and briefs/strategy.md ICP alternative b; only one racing page is drafted, so watch priority", as_of: 2026-10-03}
      job_to_be_done: {basis: charter:evidence-basis-researched (researched), source: "docs/content-inventory.md (1 of 4 drafts, content/en/adult-go-kart/adult-go-kart-racing.md, covers rental leagues and whether you need to own a kart; the 16 ownership rows are blocked)", as_of: 2026-10-03}
```

### AUDIENCE

#### Leisure karters
Adults planning a session at a rental track, alone, with friends, for a birthday or a work outing. They want the track nearby that is worth it, with session length, age and height limits and the price basis on one page. The site serves English only today; German, Spanish and French pages are planned. All four drafted pages serve this segment: the home page and two indoor pages compare session format, driver requirements and total cost, and the adult racing page compares a timed session with a rental league. None is published yet. Source: briefs/strategy.md ICP a, VOICE.md section 2, about.manifest.json, docs/content-inventory.md (2026-10-03).

#### New racers
Drivers who want to move from rental karts into kart racing and need classes and licence rules from the national motorsport body. Watch priority. One draft serves them in part: the rental-league and "do you need to own a kart" sections of the adult racing page. No page on classes or licences is drafted. Source: briefs/site.md, briefs/strategy.md alternative b, docs/content-inventory.md (2026-10-03).

#### Excluded audiences
Not written for: children as drivers or readers (pages address the adult who books), buyers of a go-kart to own, and readers looking for deal coupons. Source: briefs/strategy.md alternatives not chosen, VOICE.md section 8.

## MONETIZATION.md

Version 1.1.1 · status draft · sha256 8aa669c645fc306ca75be900afbb916159fc5d4be3f36ad0e2d66b5ca9b2731a

```yaml
charter: 1
version: 1.1.1
profile: editorial-charter@1.3.1
domain: karting.guide
status: draft
reviewed_by: ""
revenue_lines:
  - slug: paid-listings-enhanced-profiles
    name: Enhanced track profiles and labelled featured slots
    type: charter:revenue-type-paid-listing (paid listing)
    partner: {name: Track operators, entity: null, program_url: null}
    network: direct
    program_status: charter:program-status-none (none)
    commission_model: charter:commission-model-flat-fee (flat fee)
    placements: [charter:placement-type-listing (listing)]
    segments: [leisure-karters]
    kpi_key: sponsored_income_recorded
    status: charter:revenue-status-idea (idea)
    share_band: charter:revenue-share-band-minor (minor)
    start_trigger: Tom confirms the monetization choice and city pages carry traffic an operator can see
    evidence:
      default: {basis: charter:evidence-basis-assumed (assumed), source: "agent draft 2026-10-03 from briefs/strategy.md monetization option a; a direct sale, so no third-party program exists", as_of: 2026-10-03}
  - slug: lead-sale-group-events
    name: Group and corporate event enquiries
    type: charter:revenue-type-lead-sale (lead sale)
    partner: {name: Track operators, entity: null, program_url: null}
    network: direct
    program_status: charter:program-status-none (none)
    commission_model: charter:commission-model-cpl (CPL)
    placements: [charter:placement-type-listing (listing)]
    segments: [leisure-karters]
    kpi_key: lead_submitted
    status: charter:revenue-status-idea (idea)
    share_band: charter:revenue-share-band-minor (minor)
    start_trigger: Tom confirms the monetization choice and city pages rank
    evidence:
      default: {basis: charter:evidence-basis-assumed (assumed), source: "agent draft 2026-10-03 from briefs/strategy.md monetization option a (per-enquiry fee or included in the enhanced tier)", as_of: 2026-10-03}
  - slug: display-ads-guides
    name: Display ads on guides and comparison pages
    type: charter:revenue-type-display-ads (display ads)
    network: Mediavine Journey
    commission_model: charter:commission-model-rpm (RPM)
    placements: [charter:placement-type-display-slot (display slot)]
    segments: [leisure-karters, new-racers]
    kpi_key: ad_revenue_recorded
    status: charter:revenue-status-idea (idea)
    share_band: charter:revenue-share-band-minor (minor)
    start_trigger: Tom confirms the monetization choice and traffic reaches the network minimum
    evidence:
      default: {basis: charter:evidence-basis-assumed (assumed), source: "agent draft 2026-10-03 from briefs/strategy.md (Journey from 1,000 monthly sessions; Raptive needs a share of US, UK, CA, AU, NZ traffic; requirements not re-read in this run)", as_of: 2026-10-03}
```

### MONETIZATION

#### Revenue model
The assumed default in briefs/strategy.md is a free, data-led listing for every track, with paid enhanced profiles and labelled featured slots for operators, group event enquiries passed to tracks, and display ads on guides and comparison pages. Every line is an idea until Tom confirms. No line is marked core because no source gives a revenue split. The model is common in the niche, not a gap: Karting Tracks and Go-Karts Near Me sell claimed or featured listings, GoKartingUK runs a group quote form, and RacinGO sells advertising (docs/competitive-landscape.md, 2026-10-03).

#### Disclosure rules
Featured slots and sponsored profiles are labelled as paid (FTC Endorsement Guides, 16 CFR 255). The default sort stays unpaid so the spec tables stay credible. Every price carries its check date.

#### Not monetised
The free base listing and the claim flow for operators to correct their data. Spec tables and the default sort. No kart retail or experience-booking affiliate links.

#### Enhanced track profiles and labelled featured slots
A monthly or annual fee for photos, a live booking link, event packages and a labelled "Featured" slot on city pages.

#### Group and corporate event enquiries
An enquiry form that sends group and corporate requests to tracks, charged per enquiry or included in the enhanced tier.

#### Display ads on guides and comparison pages
Display ads through Mediavine Journey once traffic meets the network minimum. A Europe-heavy audience may miss Raptive's traffic mix at first.

## KPI.md

Version 1.0.1 · status draft · sha256 eab1f7c7e1f2ca629fab087dc5d7d27d99f9def15f6d0a8faa4083bea3936306

```yaml
charter: 1
version: 1.0.1
profile: editorial-charter@1.3.1
domain: karting.guide
status: draft
reviewed_by: ""
template: charter:kpi-template-editorial-traffic (editorial traffic)
template_override: ""
kpis:
  - {key: pageview_recorded, role: charter:kpi-role-primary (primary)}
  - {key: gsc_clicks, role: charter:kpi-role-secondary (secondary)}
  - {key: gsc_impressions, role: charter:kpi-role-secondary (secondary)}
  - {key: avg_position, role: charter:kpi-role-secondary (secondary)}
  - {key: content_engaged, role: charter:kpi-role-secondary (secondary)}
  - {key: newsletter_subscribed, role: charter:kpi-role-secondary (secondary)}
  - {key: affiliate_clicked, role: charter:kpi-role-secondary (secondary)}
  - {key: crawl_errors, role: charter:kpi-role-guardrail (guardrail)}
  - {key: pages_indexed, role: charter:kpi-role-guardrail (guardrail)}
catalog_sha: 4304fc97e9ac457725bdc25dcbb724c36257a707cbb3c237b69cd3e7ba04ac39
```

### KPI

#### Why these metrics
pageview_recorded is the number the site is run on while city track pages and guides build reach; listing and enquiry revenue depend on traffic an operator can see. gsc_clicks, gsc_impressions and avg_position show whether the directory wins on comparable data against operator sites and Google Maps. content_engaged shows whether readers use the spec tables and filters. newsletter_subscribed is kept from the template; there is no signup yet. affiliate_clicked is kept only because the template requires it; no affiliate line is planned. crawl_errors and pages_indexed are the guardrails: errors must not rise and indexed pages must follow the four-language plan.

#### Reading guide
Read pageview_recorded weekly against the target in kpi-mgmt once one is entered; none exists yet. The site is pre-launch, so every key starts at zero. After launch, read gsc_clicks per city: a city with impressions and few clicks needs better data on its page, not more pages.

#### Review cadence
Quarterly, with the 12-month bets in STRATEGY.md. Revisit the KPI template if listing or enquiry lines go live.

## taxonomy/binding.yaml

Version 1.1.1 · status draft · sha256 c0e9540aa9b887b234b3ce11a24bf6e2564c0ef056736695de28fa72f2ec7a36

```yaml
charter: 1
version: 1.1.1
profile: editorial-charter@1.3.1
domain: karting.guide
status: draft
reviewed_by: ""
iab_content: ["iab:483"]
icp_profile: portfolio-icp@1.0.0
content_profile: null
languages: [en]
regions: [US, GB]
```
