Files

4.0 KiB

Exotic Vehicle Scout — Implementation Notes

Specific implementation details for the Apex Track Experience vehicle database cron job.

Database

Location: /root/portal-mockup/vehicles.json (dev/mockup copy) and /var/www/static/vehicles.json (live, served via core.itpropartner.com/vehicles.json)

Schema: {Make: {Model: {Year: HP, ...}, ...}}

  • Makes are top-level keys (capitalized: "Ferrari", "Mercedes-AMG")
  • Models are sub-keys (capitalized: "296 Speciale", "Mustang GTD")
  • Years are string keys (not integers): {"2025": 819, "2026": 819}
  • Years span from 2015 onward (the database covers 2015+ per initial requirement)

Duplicates exist: There are TWO copies — /root/portal-mockup/vehicles.json (flat format with single-line years, ~234 lines, simpler) and /root/docker/docuseal/data/vehicles.json (pretty-printed, ~2,277 lines, comprehensive). The DocuSeal copy is the canonical one.

De-duplication Check Pattern

In Python:

import json
v = json.load(open('/root/portal-mockup/vehicles.json'))

def is_in_db(make, model):
    """Check if a make+model combination exists in the vehicle database."""
    if make in v:
        models = v[make]
        if model in models:
            return True
        # Also check partial matches (e.g., 'Mustang GTD' vs 'Mustang GT')
        matches = [m for m in models.keys() if model.lower() in m.lower()]
        if matches:
            return True
    return False

For partial matches, be precise: "Corvette ZR1X" vs "Corvette ZR1" — these are DIFFERENT models. Use python to list ALL models under a make and manually review ambiguous cases.

Prior-Report Cross-Reference

Use session_search(query="exotic-vehicle-scout", limit=5, sort="newest") to find prior cron runs. Each run delivers a full report with a table of findings. Extract those findings and check each one against the live DB:

# For each prior report's claimed new-find list:
for item in prior_findings:
    still_missing = not is_in_db(item['make'], item['model'])
    # If still missing, include in the "accumulated" section

Key Sources for Vehicle Research

  • Exa Search (MCP via web_search_exa) — best single source for niche/boutique brands (Zenvo, Denza, McMurtry). Semantic search catches what keyword search misses. Returns publication dates for recency filtering. Set numResults=10. Use natural-language page descriptions, not keyword lists.
  • Goodwood Festival of Speed entry lists (July, annual) — catches boutique/hypercar debuts
  • motor1.com — good factory-style coverage of all industry events
  • CarThrottle — catches niche/meme-worthy debuts (Ruf B8, Apollo Evo)
  • roadandtrack.com / thedrive.com — performance-focused journalism
  • Manufacturer press sites — for official HP figures (ferrari.com, pagani.com, audi-mediacenter.com, lamborghini.com/news, ford.com/performance)
  • carscoops / carnewschina — Chinese-market vehicles (BYD/Denza, Xiaomi, Nio)
  • caranddriver.com/future-cars — aggregated future vehicle guide

Known Model Name Variations

When checking the DB, you need to account for inconsistencies in model naming:

  • "Corvette Stingray" != "Stingray" — always use full manufacturer model names
  • "M5" in DB currently ends at 2024/617hp — the 2025+ G90 generation (717hp) needs separate entries
  • "GT 63 S 4-Door" is in the DB but "GT 63 S E Performance Coupe" (2-door, 805hp) is NOT
  • "Ioniq 5 N" vs "IONIQ 5 N" — capitalization differs but python dict check is case-sensitive; check .lower() on both sides

Apex Track Experience Event

  • Date: September 19, 2026
  • Invites: Any vehicle 500+ HP regardless of body style or drivetrain
  • Registration form: DocuSeal-based, fetches make/model from vehicles.json dropdown
  • Known gaps: "custom/homebuilt" option needed for prototype/low-volume builds

Database Corrections (Known)

  • Aston Martin Valhalla: DB says 998 hp, actual is 1,064 hp (1,079 PS)
  • BMW M5 (G90): 2025+ entries at 717 hp are missing (DB ends at 2024/617hp)
  • Polestar 6 (884 hp, 2026): missing — DB only has Polestar 1