logistics.book_bike_transport — Full Intent Specification
INTENT NAMESPACE: logistics
INTENT NAME: book_bike_transport
FULL ID: logistics.book_bike_transport
VERSION: v1.0.0
STATUS: live
TTBS WEIGHTS: time 0.25 · taste 0.10 · budget 0.30 · safety 0.35
LAST UPDATED: 2026-05-14
Intercity two-wheeler relocation: motorcycle / scooter from city A to city B inside India. Distinct from logistics.send_intercity_parcel because: (a) the cargo is a registered motor vehicle with RC + chassis + engine number; (b) fuel must be drained to <100 ml before loading (transport rule); (c) battery may need disconnect (lithium / lead-acid varies); (d) anti-scratch wrapping is part of base service (vehicle is high-value identity); (e) the vehicle is registered — RC must be on file; (f) tracking is at hub-scan level; (g) damage claim depends on photo-at-load and photo-at-unload; (h) insurance is typically a separate product on top of carriage fee.
1. NATURAL LANGUAGE COVERAGE
Classifies IN
- "transport my bike from Hyderabad to Pune"
- "ship motorcycle to Bangalore"
- "scooter relocation Chennai → Delhi"
- "send my Royal Enfield to Goa"
- "bike carrier Mumbai to Hyderabad"
- "two-wheeler transport, Pulsar 150"
- "Activa shifting Bengaluru → Coimbatore"
- "send KTM Duke 390 to relative"
- "bike packing and transport"
- "EV scooter transport, battery removable"
Classifies OUT — borderline NO
- "rent a bike for the week" →
mobility.book_two_wheeler_rental - "drive my bike to Pune myself" → not a TOMO intent
- "courier bike spare parts" →
logistics.send_intercity_parcel - "transport a car" → out of v1 (car relocation = specialty vendor; backlog)
- "transfer bike RC to my name" →
auto.book_rc_transfer
MULTI-INTENT TRIGGERS
- "ship bike + transfer RC" →
logistics.book_bike_transport+auto.book_rc_transfer - "move household + bike to Bangalore" →
logistics.book_full_house_move+logistics.book_bike_transport
2. INPUT — TOMO → PROVIDER
{
"intent": "logistics.book_bike_transport",
"intent_version": "v1.0.0",
"request_id": "req_bk_7q5p_2026-05-14T13:30:00Z",
"user_session_id": "anon_user_token_or_uid",
"pickup": {
"address_id": "addr_hyd_home_v1",
"pin": "500032",
"city": "Hyderabad",
"contact_phone_e164": "+91XXXXXXXXXX",
"ready_at_iso": "2026-05-16T10:00:00+05:30"
},
"drop": {
"address_id": "addr_pune_home_v1",
"pin": "411014",
"city": "Pune",
"contact_phone_e164": "+91XXXXXXXXXX",
"recipient_name": "Rohit Gamasany"
},
"vehicle": {
"make": "Royal Enfield",
"model": "Classic 350",
"year": 2021,
"rc_number": "TS09EZXXXX",
"chassis_last_5": "12345",
"engine_last_5": "67890",
"fuel_type": "petrol",
"tank_capacity_l": 13.5,
"fuel_current_band": "quarter_tank",
"battery_type": "lead_acid_12v",
"ev_battery_removable": false,
"modifications": ["crash_guard", "saddle_bag"],
"declared_value_inr": 175000
},
"service_level": "express_3d",
"service_levels_allowed": ["surface_5_7d", "express_3d", "premium_2d"],
"insurance": {
"type": "transit_only",
"type_allowed": ["transit_only", "comprehensive", "none"],
"sum_insured_inr": 175000
},
"user_constants": {
"preferred_partners": ["VRL Logistics Bike", "Agarwal Bike", "BVC Logistics", "BlackBuck Bike"]
}
}
Field rules
rc_numbermandatory — partner verifies against Parivahan (where partner integration allows).fuel_current_bandenforced: at pickup fuel must be drained tonear_empty(regulation); partner has drain station.ev_battery_removable: truetriggers separate-pack-and-ship for battery (different DGCA-aligned rule even for surface above certain Wh).service_levelSTRICT ENUM.
3. PROVIDER TOOLS
bike.quote
Returns price + ETA based on vehicle class + service level + insurance choice.
bike.rc_verify
Verifies RC against Parivahan (where integrated). Returns vehicle class + owner-name match.
bike.fuel_drain_station_check
Returns whether partner has a drain station at pickup city — needed before pickup.
bike.book
Locks order; returns AWB-equivalent + pickup slot.
bike.handover_capture
Photo set at pickup: front, back, both sides, fuel tank, odometer reading, scratches map.
bike.live_track
Hub-scan stream.
bike.delivery_capture
Photo set at drop matching pickup angles + recipient sign-off.
bike.dispute_damage
Claim within 24h with comparison-photo pair.
bike.cancel
Pre-pickup only.
4. RESPONSE SHAPE
{
"intent": "logistics.book_bike_transport",
"request_id": "req_bk_7q5p_2026-05-14T13:30:00Z",
"rc_verify": {
"owner_name_match": true,
"vehicle_class": "MC_W_GEAR",
"registration_active": true
},
"options": [
{
"tier": "OK",
"provider": "BVC Logistics",
"service_level": "surface_5_7d",
"price_inr": 4200,
"eta_business_days": 6,
"pickup_within_hours": 24,
"fuel_drain_station_at_pickup": true,
"anti_scratch_wrap_included": true,
"insurance_top_up_available": true,
"insurance_included_inr": 25000,
"ttbs_score": 0.62,
"tier_reason": "cheapest, low cover"
},
{
"tier": "GOOD",
"provider": "VRL Logistics Bike",
"service_level": "express_3d",
"price_inr": 6800,
"eta_business_days": 3,
"pickup_within_hours": 12,
"fuel_drain_station_at_pickup": true,
"anti_scratch_wrap_included": true,
"insurance_top_up_available": true,
"insurance_included_inr": 75000,
"tracking_scan_granularity": "hub_plus_linehaul",
"ttbs_score": 0.83,
"tier_reason": "balanced — 3 days + decent cover"
},
{
"tier": "GREAT",
"provider": "Agarwal Bike Premium",
"service_level": "premium_2d",
"price_inr": 11500,
"eta_business_days": 2,
"pickup_within_hours": 6,
"fuel_drain_station_at_pickup": true,
"anti_scratch_wrap_included": true,
"wooden_crate_packing": true,
"insurance_top_up_available": true,
"insurance_included_inr": 175000,
"insurance_cover_meets_declared_value": true,
"tracking_scan_granularity": "every_handover",
"ttbs_score": 0.91,
"tier_reason": "2 days + crate packing + full cover"
}
],
"fuel_drain_disclosure": {
"current_band": "quarter_tank",
"must_drain_to": "near_empty",
"drain_handled_by_partner": true,
"drain_fee_inr": 0
}
}
5. CONTROLLED VOCABULARIES
service_level
surface_5_7d · express_3d · premium_2d
vehicle.fuel_type
petrol · diesel · ev
vehicle.battery_type
lead_acid_12v · li_ion_removable · li_ion_fixed · none
vehicle.fuel_current_band
empty · near_empty · quarter_tank · half_tank · three_quarter · full
insurance.type
transit_only · comprehensive · none
vehicle_class (from RC verify)
MC_W_GEAR · MC_WO_GEAR · MCV · EV_2W
All STRICT ENUM.
6. TTBS DIMENSIONS
TIME (weight 0.25)
eta_business_dayspickup_within_hours- Hub coverage of dest PIN
- TIME = 1 − eta_business_days / 7
TASTE (weight 0.10)
- Brand familiarity
- Tracking granularity
- TASTE = brand_band × tracking_band
BUDGET (weight 0.30)
price_inrvs best- Hidden surcharges (fuel-drain fee, packing fee)
- Insurance top-up cost
- BUDGET = 1 − (price − best) / best
SAFETY (weight 0.35)
insurance_cover_meets_declared_value- Anti-scratch wrapping mandatory
- Wooden crate for premium
- Fuel-drain station at pickup confirmed
- RC verified active
- Photo-pair protocol enforced (pickup + drop)
- Tracking granularity
- SAFETY = insurance_fit × wrap × crate_band × drain × rc_active × photo_pair × tracking_band
HARD FILTERS
- RC verified active (where partner integration permits).
- Fuel-drain station available at pickup city.
- Anti-scratch wrap included (mandatory).
- Insurance ≥ declared value OR user-acknowledged gap.
- EV battery rule satisfied for service level.
7. COMPLETION CONTRACT
Success criteria
- RC verified, owner-name match.
- Pickup scheduled; fuel drained at pickup hub.
- Photo-set captured at pickup; scratches map signed.
- Anti-scratch wrap applied; (premium tier) wooden crate sealed.
- Hub scans observed in-transit.
- Photo-set captured at drop; recipient compares vs pickup photos.
- Recipient signs; damage register completed.
- CPC webhook fires.
CPC webhook
{
"event": "logistics.book_bike_transport.completed",
"intent_id": "logistics.book_bike_transport",
"request_id": "req_bk_7q5p_2026-05-14T13:30:00Z",
"order_id": "BK9KP72",
"provider": "VRL Logistics Bike",
"service_level": "express_3d",
"rc_number": "TS09EZXXXX",
"price_inr": 6800,
"tomo_commission_base_inr": 850,
"tomo_commission_inr": 85,
"pass_through_inr": 5950,
"pickup_photo_set_hash": "sha256-…",
"drop_photo_set_hash": "sha256-…",
"delivered_at_iso": "2026-05-19T15:42:00+05:30",
"signature_hmac_sha256": "…"
}
Failure cases
rc_verify_failed→ block at intake; ask user to recheck RC.fuel_drain_unavailable_at_pickup→ reschedule via different hub.damage_at_delivery→ photo-pair dispute viabike.dispute_damage.delivery_recipient_unreachable→ return-to-sender; partner fee per partner.
8. WIDGET
{
"widget": "BikeTransportWidget",
"header": {
"vehicle_strip": "Royal Enfield Classic 350 · 2021 · TS09EZXXXX",
"route_strip": "Hyderabad → Pune · ~560 km",
"fuel_strip": "Drain to near-empty handled at partner hub (no charge)"
},
"regions": {
"region_1_intelligence": ["RC active", "owner name match", "anti-scratch wrap included on all tiers", "₹1.75L declared"],
"region_2_summary": "Pickup tomorrow, deliver in 2–7 days based on tier",
"region_3_visual": null,
"region_4_now_pin": "Book — drain slot at hub 10 AM",
"region_5_tomo_choices": [
{"tier": "OK", "label": "BVC · ₹4,200 · 5–7 days · ₹25k cover", "reason": "cheapest"},
{"tier": "GOOD", "label": "VRL Express · ₹6,800 · 3 days · ₹75k cover", "reason": "balanced"},
{"tier": "GREAT", "label": "Agarwal Premium · ₹11,500 · 2 days · crate + full cover", "reason": "safest + fastest"}
]
},
"footer_disclosures": [
"Fuel drains to near-empty before loading — regulation, no exception.",
"Photo-set is captured at pickup and drop — compare them to file any damage claim within 24 h.",
"If your bike is worth more than included cover, top up insurance before pickup."
]
}
9. CACHING POLICY
- Quote: 1 hour TTL.
- RC verification: cached 30 days; fresh check before pickup.
- Pickup/drop photos: hash only on TOMO; full at partner.
- Past bike transports: 5 years on-device, encrypted.
10. ERROR CODES
| Code | Meaning | UI surface |
|---|---|---|
ERR_RC_VERIFY_FAILED |
Parivahan no match | Recheck RC inline |
ERR_OWNER_NAME_MISMATCH |
RC owner ≠ sender | Confirm or block |
ERR_FUEL_DRAIN_UNAVAILABLE |
No drain station at pickup hub | Suggest nearest hub |
ERR_EV_BATTERY_RULE |
Wh > air/surface rule | Switch service or split-ship battery |
ERR_INSURANCE_GAP |
cover < declared | Top-up |
ERR_PICKUP_NO_SHOW |
no one at pickup | Cancel fee |
ERR_DELIVERY_RECIPIENT_UNREACHABLE |
dropoff unreachable | RTO trigger |
ERR_DAMAGE_CLAIM_LATE |
beyond 24h | Apology + escalation |
ERR_HUB_UNSERVICED_DESTINATION |
dest hub not in network | Try alt partner |
ERR_PARTNER_OFFLINE |
partner API down | Try next |
11. SANDBOX → PRODUCTION CHECKLIST
- Sandbox RC verify path tested with valid + invalid + expired.
- Sandbox fuel-drain availability tested per pickup city.
- Sandbox EV battery split-ship flow tested.
- Sandbox photo-set capture mandatory before load.
- Sandbox damage-claim window 24h boundary.
- Production Parivahan integration cache window ≤ 30 days.
- Production rate-limit: 5 bike transports/user/year.
- Production insurance contract attested by legal.
- Production multi-partner rotation for high-demand routes.
- Production CPC HMAC-SHA256 verified.
12. ANTI-FABRICATION RULES
- NO
paid_placementon partners. - NO synthetic vehicle photos.
- NO claim of RC verification without Parivahan integration response.
- NO concealing fuel-drain or packing fees.
- NO bundling promo into quote price.
- NO claim of "no scratch guaranteed" — claim window is 24h via dispute.
- NO TOMO-issued AWB.
- NO holding RC/chassis/engine numbers at TOMO beyond pointer.
- NO synthetic crate-packing claim if standard wrap only.
- NO marketing language ("smart bike shift").
13. REGULATORY FRAMING
- Motor Vehicles Act 1988 — RC, fitness, permits.
- Petroleum Rules 2002 — fuel handling in carriage.
- Carriage by Road Act 2007 — goods carrier regulations.
- DGCA / IATA-DGR — EV battery transport (mostly surface; air rare for whole bike).
- GST E-way Bill — typically applies to bike movements above ₹50k.
- IRDAI — transit and comprehensive insurance.
- Consumer Protection Act 2019 — partner is service provider.
- DPDPA 2023 — RC + photos = personal data; partner is processor; TOMO holds pointer.
- TOMO is router only — does NOT operate trucks/hubs, does NOT verify RC by itself, does NOT issue insurance.