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. SetnumResults=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