Create recurring trip templates with mandatory GPS coordinates for 90%+ accuracy automatic matching
Purpose: Create recurring trip templates with mandatory GPS coordinates to enable high-confidence automatic matching (90%+ accuracy)
Activation: User says "create template", "save this route", "I make this trip every week", or after reconstruction when no matching template exists
Template Creation allows users to define recurring routes that Car Log will automatically recognize in future checkpoint gaps. The key principle: GPS coordinates are mandatory (70% matching weight), while addresses are optional labels (30% weight). This ensures high-confidence matching even when addresses are ambiguous.
Why GPS is Required: "Košice" could mean 3 different fuel stations, but GPS 48.7164°N, 21.2611°E is exact - enabling 90%+ confidence matches within 100m radius.
Ask for a descriptive name and whether it's for business or personal use:
"What would you like to name this template?"
User: "Warehouse Run"
"Is this for business or personal use?"
User: "Business"
"What's the business purpose?"
User: "Weekly warehouse pickup and delivery"
Convert address to GPS coordinates using geocoding service:
MCP Tool: geo-routing.geocode_address(address, country_hint="SK")
Handling Ambiguity: If multiple matches found (confidence <70%), present alternatives:
"Multiple locations found for 'Bratislava':
1. Bratislava City Center (48.1486°N, 17.1077°E)
- Capital city center
- Confidence: 75%
2. Bratislava-Petržalka (48.1234°N, 17.1100°E)
- Residential district
- Confidence: 60%
3. Bratislava Airport (48.1702°N, 17.2127°E)
- M. R. Štefánik Airport
- Confidence: 55%
Which location? (1/2/3) or provide more specific address:"
User selects → Use GPS coordinates from selected alternative
GPS Validation:
Repeat geocoding process for destination:
MCP Tool: geo-routing.geocode_address(address, country_hint="SK")
Same ambiguity handling as Step 2.
Calculate route between coordinates to get accurate distance:
MCP Tool: geo-routing.calculate_route(start_coords, end_coords, alternatives=true)
Show Route Alternatives:
"3 routes found:
1. D1 highway: 395km (4.2 hrs) €12 tolls
2. E50: 410km (4.5 hrs) ← Recommended (most direct)
3. Local roads: 385km (5.8 hrs)
Which route do you typically take? (1/2/3 or 'skip')"
If user skips, template will have GPS but no distance (can be calculated during matching).
Gather additional data to improve matching confidence:
Round Trip?
"Is this a round trip? (yes/no)"
If yes → Distance doubled, system will create outbound + return trips
Typical Days?
"Which days do you typically make this trip?
(e.g., 'Monday, Thursday' or 'every day' or 'skip')"
Enables +5% confidence bonus when day-of-week matches
Business Description? (if purpose is business)
"What's the business purpose? (e.g., 'client meeting', 'delivery')"
Required for Slovak tax compliance if trips are business
Save template with validated GPS coordinates:
MCP Tool: car-log-core.create_template(template_data)
Required Fields:
name: User-provided descriptive namefrom_coords: {lat, lng} - MANDATORYto_coords: {lat, lng} - MANDATORYpurpose: "business" or "personal"Optional Fields:
from_address: Human-readable labelto_address: Human-readable labeldistance_km: From route calculationis_round_trip: Boolean (default false)typical_days: Array of day namesbusiness_description: Required if purpose is businessAssess template quality to inform user:
MCP Tool: trip-reconstructor.calculate_template_completeness(template_id)
Completeness Scoring:
User Confirmation:
"✅ Template created!
'Warehouse Run'
• From: 48.1486°N, 17.1077°E 'Bratislava Office'
• To: 48.7164°N, 21.2611°E 'Košice Warehouse'
• Distance: 820km (round trip)
• Days: Monday, Thursday
• Purpose: Business - Weekly warehouse pickup
• GPS coordinates saved ← 70% matching weight!
• Completeness: 95%
I'll match this template with 90%+ confidence on future trips!"
Why GPS is Required:
Matching Weights in Algorithm:
User Messaging: Always emphasize GPS benefits:
"✓ GPS coordinates saved - I can match future trips within 100m accuracy!"
"This enables 90%+ confidence automatic matching"
Fallback: Manual GPS Entry If geocoding fails or user has coordinates directly:
User: "GPS is 48.2000, 17.3000"
Claude: "✓ GPS coordinates received: 48.2000°N, 17.3000°E"
[Optionally reverse-geocode for friendly label]
Triggered from:
Enables:
High Confidence Geocoding:
Ambiguous Geocoding:
GPS-Only Template:
Minimal Template:
Complete Template:
Implementation Status: Specification complete, implementation pending Estimated Effort: 3 hours Dependencies: geo-routing (geocoding, routing), car-log-core (template storage), trip-reconstructor (completeness calculation)