# Vehicle Database — 2015+ 400+ HP Production Cars ## Source of truth - **Live URL:** https://core.itpropartner.com/vehicles.json - **Local copy (Caddy):** /var/www/static/vehicles.json - **Portal copy:** /root/portal-mockup/vehicles.json - **Caddy config:** core.itpropartner.com serves static files from /var/www/static/ ## Database Stats (as of Jul 7, 2026) - **47 makes** — every global automaker - **373 models** — every production 2015+ car with 400+ HP - **1,433 year-HP data points** ## Data Structure ``` { "Make": { "Model": { "Year": HP, "Year": HP, ... }, ... }, ... } ``` Example: ```json { "Ferrari": { "296 GTB": { "2022": 819, "2023": 819, "2024": 819, "2025": 819 } } } ``` ## Maintenance Rules 1. **New model launches** — When new model years launch (2027s, mid-cycle refreshes), add them proactively within a week of announcement 2. **Corrections** — User reports missing cars (like ZR1 year ranges). Add immediately, verify with the user 3. **No snippet updates needed** — The Apex WPForms form fetches live from the JSON endpoint. Updating the JSON is sufficient 4. **HP values** — use manufacturer claimed horsepower. For EVs, use combined system HP 5. **Sorting** — Makes alphabetically, models alphabetically, years descending (newest first) 6. **Years are strings** — `"2025"` not `2025`. The vehicle registration form expects string keys. 7. **HP is integer** — No decimal points. ## Deploy Updates After editing vehicles.json in portal-mockup, you MUST copy to the web root: ```bash cp /root/portal-mockup/vehicles.json /var/www/static/vehicles.json ``` Then verify via curl: ```bash curl -s https://core.itpropartner.com/vehicles.json | python3 -c "import sys,json; d=json.load(sys.stdin); print(len(d.keys()), 'makes')" ``` ## Common Maintenance Tasks ### Add a missing year to a model ```python data['Ferrari']['296 GTB']['2025'] = 819 # same HP as existing year ``` ### Add a missing model ```python data['Ferrari']['SF90 XX Spider'] = {"2024": 1016} ``` ## PITFALLS - **User may notice missing models via customer feedback** — This is the primary signal. When a participant can't find their car in registration, check if the model exists in the DB. If not, add it. - **Ferrari "Speciale" variants** — Ferrari does not produce a production model called "Speciale" for the 296 line. Only GTB (coupe) and GTS (spider) exist. - **Current as of Jul 2026** — Years should be kept current. If user reports years are missing, add the current year +1. ## Apex Form Integration - Form fetches from `https://core.itpropartner.com/vehicles.json` (HTTPS, CORS-enabled) - WPForms HTML Content field embeds JS snippet that populates cascading dropdowns - Make → Model → Year → Color → HP display - Existing WPForms snippet at `/root/.hermes/references/apex-vreg-live.html` ## Significance This is a showcase project for IT Pro Partner. Every missing car that gets corrected makes the Apex form more reliable and builds trust. Accuracy here directly leads to more MSP tech projects.