logistics.book_full_house_move — Full Intent Specification
INTENT NAMESPACE: logistics
INTENT NAME: book_full_house_move
FULL ID: logistics.book_full_house_move
VERSION: v1.0.0
STATUS: live
TTBS WEIGHTS: time 0.20 · taste 0.10 · budget 0.30 · safety 0.40
LAST UPDATED: 2026-05-14
End-to-end household relocation: complete packing + loading + transit + unloading + unpacking + reassembly. Distinct from logistics.book_furniture_move because: (a) full inventory (cartons + furniture + appliances + fragile glassware); (b) packing crew + carpenter + electrician + truck + driver — multi-day; (c) intercity is common (Hyderabad → Bengaluru) and requires permits, fuel surcharge, GST E-way bill above ₹50k value; (d) household-goods all-risk insurance differs from parcel insurance — Sum Insured and Itemized Declaration matter; (e) survey is mandatory (video or in-person) before final quote.
1. NATURAL LANGUAGE COVERAGE
Classifies IN
- "shift my 2BHK to Bengaluru"
- "full house move Hyderabad to Pune"
- "Agarwal Packers full quote"
- "I'm moving cities, pack everything"
- "house shifting + appliances + fragile crockery"
- "complete home relocation 3BHK"
- "intercity packers and movers Bangalore"
- "shift my flat next month, end-to-end"
- "move my household + car"
- "office shift to new building, 1500 sqft"
Classifies OUT — borderline NO
- "move just my sofa" →
logistics.book_furniture_move - "send 5 boxes Mumbai" →
logistics.send_intercity_parcel - "ship my bike Hyd to Pune" →
logistics.book_bike_transport - "store stuff for 3 months" →
logistics.book_storage_warehouse
MULTI-INTENT TRIGGERS
- "full house move + car transport" →
logistics.book_full_house_move+ (separate vehicle-transport vendor, out of v1) - "move + storage for 2 weeks" →
logistics.book_full_house_move+logistics.book_storage_warehouse - "move + cleaning at old flat" →
logistics.book_full_house_move+lifestyle.book_at_home_service
2. INPUT — TOMO → PROVIDER
{
"intent": "logistics.book_full_house_move",
"intent_version": "v1.0.0",
"request_id": "req_hh_9p3q_2026-05-14T13:00:00Z",
"user_session_id": "anon_user_token_or_uid",
"scope": {
"type": "intercity",
"type_allowed": ["intracity", "intercity"],
"home_size": "2bhk",
"home_size_allowed": ["1rk", "1bhk", "2bhk", "3bhk", "4bhk_plus", "villa", "office_small", "office_large"],
"occupied_sqft_estimate": 950,
"lived_in_years": 3
},
"pickup": {
"address_id": "addr_hyd_v1",
"city": "Hyderabad",
"pin": "500032",
"floor": "3",
"lift_available": true,
"narrow_lane_flag": false,
"ready_at_iso": "2026-06-01T08:00:00+05:30"
},
"drop": {
"address_id": "addr_blr_v1",
"city": "Bengaluru",
"pin": "560076",
"floor": "4",
"lift_available": true,
"narrow_lane_flag": true
},
"inventory": {
"rooms": ["bedroom_master", "bedroom_2", "living", "kitchen", "study"],
"fragile_count_estimate": 35,
"appliances": ["refrigerator_double_door", "washing_machine_front_load", "air_conditioner_split", "microwave", "tv_55"],
"furniture": ["sofa_3_seater", "queen_bed", "wardrobe_3_door", "dining_table_wood", "study_desk", "tv_unit", "bookshelf"],
"valuables_declared_inr": 35000,
"carton_count_estimate": 28
},
"services_required": {
"packing": true,
"loading": true,
"transit": true,
"unloading": true,
"unpacking": true,
"carpenter_reassembly": true,
"electrician_appliance_fit": true,
"fragile_specialist": true,
"live_tracking": true
},
"survey": {
"type": "video",
"types_allowed": ["video", "in_person"],
"completed": true,
"completed_at_iso": "2026-05-12T15:00:00+05:30"
},
"insurance": {
"type": "all_risk",
"sum_insured_inr": 600000,
"itemized_declaration_uploaded": true
},
"user_constants": {
"preferred_partners": ["Agarwal Packers", "LeoPackers", "Pikkol", "Writer Relocations"]
}
}
Field rules
survey.completed: truemandatory before final quote — elseERR_SURVEY_REQUIRED.insurance.sum_insured_inrmust be ≥ declared total household value; provider validates.itemized_declaration_uploaded: truerequired if claim window is to honor item-level damages.home_sizeSTRICT ENUM.
3. PROVIDER TOOLS
move.survey_request
Schedules video or in-person survey.
move.final_quote
Returns binding quote after survey; valid 7 days.
move.book
Locks slot + crew.
move.crew_pre_visit
Day-before site recce by lead packer.
move.day_one_packing_start
Starts on-site packing; crew GPS active.
move.loading_complete_seal
Truck sealed; seal_id captured; user receives photo.
move.in_transit_track
Truck live GPS + speed + estimated arrival.
move.unload_begin
Drop city — verify seal_id intact before opening.
move.unpacking_carpenter_electrician
Final-day services.
move.completion_handover
User signs off; itemized damage register completed.
move.dispute_damage
Claim within 7 days; insurance handles.
move.cancel
Pre-pack day cancel — penalty per partner.
4. RESPONSE SHAPE
{
"intent": "logistics.book_full_house_move",
"request_id": "req_hh_9p3q_2026-05-14T13:00:00Z",
"options": [
{
"tier": "OK",
"provider": "LeoPackers",
"crew_size": 6,
"vehicle": "20ft_truck",
"carpenter_included": true,
"electrician_included": false,
"fragile_specialist_included": false,
"packing_material_grade": "standard",
"price_inr": 38000,
"pickup_iso": "2026-06-01T08:00:00+05:30",
"delivery_eta_iso": "2026-06-03T14:00:00+05:30",
"insurance_included_inr": 200000,
"ttbs_score": 0.65,
"tier_reason": "cheapest — basic packing, lower cover"
},
{
"tier": "GOOD",
"provider": "Pikkol",
"crew_size": 8,
"vehicle": "22ft_truck",
"carpenter_included": true,
"electrician_included": true,
"fragile_specialist_included": true,
"packing_material_grade": "premium_bubble_wrap",
"price_inr": 56000,
"pickup_iso": "2026-06-01T08:00:00+05:30",
"delivery_eta_iso": "2026-06-03T10:00:00+05:30",
"insurance_included_inr": 600000,
"insurance_cover_meets_sum_insured": true,
"background_check_band": "verified",
"ttbs_score": 0.85,
"tier_reason": "balanced — fragile specialist + electrician + full sum insured"
},
{
"tier": "GREAT",
"provider": "Agarwal Packers",
"crew_size": 10,
"vehicle": "24ft_truck_dedicated",
"carpenter_included": true,
"electrician_included": true,
"fragile_specialist_included": true,
"packing_material_grade": "premium_with_double_corrugation",
"white_glove_unpacking": true,
"price_inr": 89000,
"pickup_iso": "2026-06-01T08:00:00+05:30",
"delivery_eta_iso": "2026-06-02T18:00:00+05:30",
"insurance_included_inr": 600000,
"insurance_cover_meets_sum_insured": true,
"background_check_band": "verified_plus_aadhaar",
"dedicated_supervisor_assigned": true,
"ttbs_score": 0.93,
"tier_reason": "next-day delivery + dedicated supervisor + white-glove"
}
],
"eway_bill_check": {
"required": true,
"reason": "household goods intercity > ₹50,000 value",
"partner_will_generate": true
},
"survey_disclosure": {
"completed": true,
"binding_quote_validity_days": 7
}
}
5. CONTROLLED VOCABULARIES
scope.type
intracity · intercity
home_size
1rk · 1bhk · 2bhk · 3bhk · 4bhk_plus · villa · office_small · office_large
vehicle
14ft_truck · 17ft_truck · 20ft_truck · 22ft_truck · 24ft_truck_dedicated · container_truck
packing_material_grade
standard · premium_bubble_wrap · premium_with_double_corrugation
insurance.type
all_risk · transit_only · none
survey.type
video · in_person
All STRICT ENUM.
6. TTBS DIMENSIONS
TIME (weight 0.20)
- Pickup-to-delivery business days
- Crew arrival punctuality SLA
- TIME = 1 − total_days / 5
TASTE (weight 0.10)
- Brand familiarity / customer rating
- Supervisor communication band
- TASTE = brand_band × supervisor_band
BUDGET (weight 0.30)
price_inrvs best- Hidden surcharge transparency (toll, fuel, narrow-lane)
- Insurance top-up cost
- BUDGET = 1 − (price − best) / best
SAFETY (weight 0.40 — dominant)
insurance_cover_meets_sum_insuredboolean- Background check band of every crew member
- Fragile specialist presence
- Truck sealing protocol (seal_id captured + verified at drop)
- Live GPS tracking active
- Carpenter + electrician for reassembly/refitting
- Survey completed (binding accuracy)
- SAFETY = insurance_fit × bg_band × fragile_specialist × seal_protocol × tracking × carpenter × electrician × survey_done
HARD FILTERS
- Survey completed (
survey.completed: true). - Insurance ≥ sum_insured; itemized declaration uploaded.
- Crew bg band ≥
verified. - Truck sealing protocol present (any intercity).
- Carpenter + electrician included when their flags are set.
7. COMPLETION CONTRACT
Success criteria
- Survey done → binding quote.
- Pre-visit by lead packer.
- Packing day: carton labels per room, fragile-specialist for glassware.
- Loading: photos before sealing; seal_id shared.
- Transit: live GPS, deviation alerts.
- Drop city: seal verified before opening.
- Unloading, unpacking, carpenter reassembly, electrician fit.
- Itemized damage register signed by user; claim within 7 days if any.
- CPC webhook fires on completion handover.
CPC webhook
{
"event": "logistics.book_full_house_move.completed",
"intent_id": "logistics.book_full_house_move",
"request_id": "req_hh_9p3q_2026-05-14T13:00:00Z",
"order_id": "FH98K2R",
"provider": "Pikkol",
"crew_size": 8,
"vehicle": "22ft_truck",
"price_inr": 56000,
"tomo_commission_base_inr": 8400,
"tomo_commission_inr": 840,
"pass_through_inr": 47600,
"seal_id_at_load": "SEAL-2K9PQ7",
"seal_intact_at_unload": true,
"completed_at_iso": "2026-06-03T12:42:00+05:30",
"signature_hmac_sha256": "…"
}
Failure cases
seal_broken_in_transit→ mandatory partner investigation + insurance pre-claim.damaged_appliance→ claim within 7 days; insurer pays per all-risk policy.crew_late_pack_day→ partner-side SLA penalty.vehicle_breakdown_in_transit→ alt vehicle; user notified.
8. WIDGET
{
"widget": "FullHouseMoveWidget",
"header": {
"scope_strip": "2BHK · Hyderabad → Bengaluru · ~570 km",
"survey_strip": "Survey complete · quote binding 7 days",
"eway_bill_strip": "GST E-way bill auto-generated by partner",
"insurance_strip": "All-risk · Sum Insured ₹6,00,000 · itemized declaration uploaded"
},
"regions": {
"region_1_intelligence": ["35 fragile items flagged", "fragile specialist on", "electrician for AC + WM"],
"region_2_summary": "Pack June 1, deliver June 2–3 depending on tier",
"region_3_visual": null,
"region_4_now_pin": "Lock tier — slot opens at 08:00 on June 1",
"region_5_tomo_choices": [
{"tier": "OK", "label": "LeoPackers · ₹38,000 · ₹2L cover · standard packing", "reason": "cheapest"},
{"tier": "GOOD", "label": "Pikkol · ₹56,000 · ₹6L cover + electrician + fragile specialist", "reason": "balanced"},
{"tier": "GREAT", "label": "Agarwal · ₹89,000 · next-day + dedicated supervisor + white-glove", "reason": "highest safety"}
]
},
"footer_disclosures": [
"Damage claims must be filed within 7 days — keep your itemized declaration handy.",
"Truck is sealed at loading and seal is verified at drop — never accept an opened truck without partner supervisor present.",
"If anything you're moving is worth more than your insurance cover, top up before pack day."
]
}
9. CACHING POLICY
- Binding quote: 7 days TTL per regulation/partner.
- Survey artifact (video/photos): pointer at TOMO; full at partner.
- Crew bg band: provider-fresh per quote.
- Past moves: 5 years on-device (audit value), encrypted.
- Itemized declaration: encrypted at partner; pointer on TOMO; deleted 90 days post-claim window.
10. ERROR CODES
| Code | Meaning | UI surface |
|---|---|---|
ERR_SURVEY_REQUIRED |
Survey not done | Schedule survey CTA |
ERR_QUOTE_EXPIRED |
7-day window over | Re-survey or re-quote |
ERR_INSURANCE_GAP |
cover < sum_insured | Top-up |
ERR_ITEMIZED_DECL_MISSING |
required upload missing | Inline capture |
ERR_BG_BAND_TOO_LOW |
crew bg insufficient | Upgrade tier |
ERR_SEAL_BROKEN_TRANSIT |
seal compromised | Auto-investigation + insurance pre-claim |
ERR_VEHICLE_BREAKDOWN |
partner vehicle down | Alt vehicle assigned |
ERR_PICKUP_NO_SHOW_USER |
user not present pack day | Re-schedule or cancel fee |
ERR_CARPENTER_NOT_ASSIGNED |
flag set but not provided | Partner remediation |
ERR_CLAIM_WINDOW_CLOSED |
beyond 7 days | Apology + escalation |
11. SANDBOX → PRODUCTION CHECKLIST
- Sandbox survey-required gate.
- Sandbox binding quote 7-day expiry.
- Sandbox seal_id capture + verification at unload.
- Sandbox insurance gap flow with top-up.
- Sandbox damage-claim window 7-day boundary.
- Sandbox itemized declaration upload required.
- Production crew bg band sourced from partner — no inference.
- Production insurance contract attested by legal.
- Production rate limit: 2 full-house moves/user/year (anti-abuse).
- Production partner SLA penalty enforcement automated.
- Production CPC HMAC-SHA256 5-min replay verified.
12. ANTI-FABRICATION RULES
- NO
paid_placementon partners — TTBS only. - NO synthetic crew or supervisor photos.
- NO "fully insured" without exact
insurance_cover_inr. - NO concealing fuel/toll/narrow-lane surcharges.
- NO bundling "free packing material" if standard grade is default.
- NO claiming next-day delivery without partner SLA.
- NO TOMO-issued seal_id — partner's seal only.
- NO holding move data — partner is custodian.
- NO synthetic damage-claim settlement rate — partner-published only.
- NO marketing language ("smart packers").
13. REGULATORY FRAMING
- Carriage by Road Act 2007 + Rules 2011.
- Motor Vehicles Act 1988 + state RTO permits.
- GST E-way Bill Rules — value ≥ ₹50k intercity triggers; partner generates.
- IRDAI — household goods all-risk insurance product.
- Consumer Protection Act 2019 — partner is service provider.
- DPDPA 2023 — addresses, inventory, itemized declaration = personal data; partner is processor.
- Building / lift bye-laws — vary by city.
- TOMO is router only — does NOT operate trucks/crew, does NOT issue insurance.