390 lines
12 KiB
Markdown
390 lines
12 KiB
Markdown
# CarPass Gamification Plan
|
|
|
|
## 1. Goals
|
|
|
|
CarPass gamification is a trust and data-quality system, not a game layer. The product goal is to turn a casual vehicle diary into a premium digital vehicle passport that keeps owners returning because the data becomes more useful over time.
|
|
|
|
Primary goals:
|
|
|
|
- Increase retention by showing owners how each verified record improves the vehicle passport.
|
|
- Improve data quality for VIN, license plate, mileage, oil specs, service intervals, fuel consumption, and service history.
|
|
- Motivate owner confirmation of service visits and sensitive vehicle data changes.
|
|
- Encourage structured interaction between owners and verified service centers.
|
|
- Make the vehicle more resale-ready by building a reliable, private maintenance history.
|
|
- Give service centers a trust signal based on confirmed work, low dispute rates, and good operational hygiene.
|
|
|
|
Non-goals:
|
|
|
|
- No public leaderboards.
|
|
- No speed, harsh driving, racing, or mileage competition.
|
|
- No coins, gambling, loot boxes, streak pressure, or daily spam loops.
|
|
- No public comparison of users, vehicles, or service centers.
|
|
|
|
## 2. UX Philosophy
|
|
|
|
The experience should feel like a premium automotive SaaS product: calm, precise, and useful. The visual language should resemble a digital inspection report, ownership dashboard, and service-grade vehicle passport.
|
|
|
|
Principles:
|
|
|
|
- Use "quality", "verification", "health", and "trust" language instead of "points" or "levels".
|
|
- Show progress as professional indicators: rings, bars, badges, timelines, and status chips.
|
|
- Explain why each missing item matters: VIN improves identity confidence, full-tank fuel records improve consumption accuracy, confirmed service visits improve resale trust.
|
|
- Avoid shame. Use neutral states like "Needs data", "Partially verified", "Attention needed".
|
|
- Keep notifications sparse and high-signal.
|
|
- Make the owner feel in control. Service centers can propose, but owner confirmation decides trust.
|
|
|
|
## 3. Reward Types
|
|
|
|
Rewards are evidence markers, not currency.
|
|
|
|
Vehicle rewards:
|
|
|
|
- Profile Quality: percentage of important fields completed.
|
|
- Verified History Status: self-reported, partially verified, verified maintenance history.
|
|
- Maintenance Health: green, yellow, red based on overdue service and reminders.
|
|
- Passport Badges: durable achievements such as Full Vehicle Profile or First Verified Service.
|
|
- Timeline Milestones: service, fuel, verification, OBD, and ownership events.
|
|
|
|
Owner rewards:
|
|
|
|
- Garage Quality: average completion across active vehicles.
|
|
- Complete Garage: every active vehicle has identity, mileage, and maintenance baseline.
|
|
- Maintenance Consistency: regular data capture without aggressive streak language.
|
|
|
|
Service center rewards:
|
|
|
|
- Verified Service Center badge.
|
|
- Trust Level: new, verified, reliable, high-confidence.
|
|
- Confirmation Quality: owner confirmation rate, low dispute rate, completed visit quality.
|
|
|
|
## 4. Progression System
|
|
|
|
Progression is based on increasing confidence in the digital passport.
|
|
|
|
Vehicle Profile Completion:
|
|
|
|
- 0-30: Basic profile.
|
|
- 31-60: Useful ownership profile.
|
|
- 61-85: Strong maintenance profile.
|
|
- 86-100: High-confidence vehicle passport.
|
|
|
|
Verified History:
|
|
|
|
- Self-reported: owner-only records.
|
|
- Partially verified: at least one confirmed service-center visit or a mixed history.
|
|
- Verified maintenance history: most service history is confirmed by verified service centers.
|
|
|
|
Maintenance Health:
|
|
|
|
- Green: no overdue critical service reminders.
|
|
- Yellow: service due soon or incomplete maintenance baseline.
|
|
- Red: overdue service by date or mileage.
|
|
|
|
Service Trust:
|
|
|
|
- New service: verified account but low confirmed work volume.
|
|
- Verified service: documents checked.
|
|
- Reliable service: good confirmation rate and low dispute rate.
|
|
- High-confidence service: consistent confirmed work and low unresolved disputes.
|
|
|
|
## 5. User Engagement Loops
|
|
|
|
Owner loop:
|
|
|
|
1. Add vehicle.
|
|
2. See passport quality and missing items.
|
|
3. Add VIN/license plate/oil/mileage/fuel/service data.
|
|
4. Receive a clearer score and timeline.
|
|
5. Confirm service-center visits.
|
|
6. Build a trustworthy maintenance history.
|
|
|
|
Service loop:
|
|
|
|
1. Register service center.
|
|
2. Pass verification.
|
|
3. Invite employees.
|
|
4. Create service visits.
|
|
5. Owner confirms work.
|
|
6. Trust score improves through confirmed, low-dispute work.
|
|
|
|
OCR loop:
|
|
|
|
1. Scan VIN, plate, or document.
|
|
2. System extracts candidates.
|
|
3. User or employee confirms suggested values.
|
|
4. Sensitive changes become pending requests until owner approval.
|
|
|
|
Notification loop:
|
|
|
|
- Notify only for due maintenance, owner confirmation, important data quality milestones, and access requests.
|
|
- Never send daily streak pressure.
|
|
|
|
## 6. Vehicle Profile Completion
|
|
|
|
Each vehicle gets `completeness_score` from 0 to 100.
|
|
|
|
Suggested scoring weights:
|
|
|
|
- Vehicle exists and has owner access: 5.
|
|
- Make/model/year/name baseline: 15.
|
|
- VIN: 15.
|
|
- License plate with country: 10.
|
|
- Current odometer: 10.
|
|
- Fuel type and consumption baseline: 10.
|
|
- Engine oil type and volume: 10.
|
|
- Transmission/coolant/brake fluid fields: 5.
|
|
- At least one fuel entry: 5.
|
|
- At least one service entry or service visit: 5.
|
|
- At least one confirmed service-center visit: 10.
|
|
- Future OBD connection: 10.
|
|
|
|
The score is capped at 100. The API should also return `missing_items` with practical next actions.
|
|
|
|
## 7. Verified Maintenance History
|
|
|
|
Verified history score measures how trustworthy the service history is.
|
|
|
|
Inputs:
|
|
|
|
- Total service records.
|
|
- Confirmed service-center visits.
|
|
- Whether the service center is verified.
|
|
- Disputed/rejected/cancelled visits.
|
|
- Owner-created self-reported records.
|
|
|
|
Statuses:
|
|
|
|
- `self_reported`: no confirmed service-center visits.
|
|
- `partially_verified`: at least one confirmed service visit or 30-79% trusted records.
|
|
- `verified`: 80%+ trusted records and no unresolved disputes.
|
|
|
|
Sensitive rule:
|
|
|
|
- OCR or service-center input can suggest values, but it cannot automatically make history trusted without owner confirmation.
|
|
|
|
## 8. Service Center Trust Mechanics
|
|
|
|
Trust score is operational quality, not a public star rating.
|
|
|
|
Inputs:
|
|
|
|
- Verification status.
|
|
- Confirmed visit count.
|
|
- Owner confirmation rate.
|
|
- Dispute rate.
|
|
- Rejected/cancelled visit rate.
|
|
- Employee hygiene: disabled employees, unresolved disputes, suspicious lookup patterns.
|
|
|
|
Display:
|
|
|
|
- New service.
|
|
- Verified service.
|
|
- Reliable service.
|
|
- High-confidence service.
|
|
|
|
Avoid:
|
|
|
|
- Public numeric ranking.
|
|
- Punitive public labels.
|
|
- One-click toxic ratings.
|
|
|
|
## 9. Anti-Abuse Rules
|
|
|
|
Achievements:
|
|
|
|
- Unlock once per user or once per vehicle depending on scope.
|
|
- Use unique constraints to prevent duplicate unlocks.
|
|
- Do not unlock from deleted or disputed records.
|
|
|
|
Scoring:
|
|
|
|
- Ignore duplicate low-quality records created in a short time window.
|
|
- Require valid owner access for vehicle score APIs.
|
|
- Require confirmed visits for verified-history credit.
|
|
- Require verified service-center status for high trust credit.
|
|
|
|
Search and OCR:
|
|
|
|
- Rate-limit VIN/license plate search and OCR later.
|
|
- Return masked/minimal search results.
|
|
- Log lookups in `AuditLog` or `EngagementEvent`.
|
|
|
|
Deletion:
|
|
|
|
- Owner cannot erase service-center history without trace.
|
|
- Use dispute, rejected, hidden, or cancelled status plus audit trail.
|
|
|
|
## 10. Notification Strategy
|
|
|
|
Notification types:
|
|
|
|
- Maintenance due soon.
|
|
- Maintenance overdue.
|
|
- Service visit pending owner confirmation.
|
|
- Vehicle data change request pending.
|
|
- Profile completion milestone: 50%, 80%, 100%.
|
|
- First verified service confirmed.
|
|
|
|
Rules:
|
|
|
|
- No daily streak reminders.
|
|
- No more than one non-critical nudge per vehicle per week.
|
|
- Critical maintenance alerts can repeat with conservative cooldown.
|
|
- Owner controls notification preferences.
|
|
- Notifications must be actionable and quiet.
|
|
|
|
## 11. Privacy Considerations
|
|
|
|
- No public leaderboard.
|
|
- No sharing of Telegram ID, phone, VIN, full plate, or service history without consent.
|
|
- Service-center search returns masked VIN/plate and minimal vehicle identity.
|
|
- Owner controls access duration and revocation.
|
|
- Scores are private by default.
|
|
- Service trust shown to owners should be aggregate and non-invasive.
|
|
|
|
## 12. Database Changes
|
|
|
|
New tables:
|
|
|
|
- `achievements`
|
|
- `id`
|
|
- `code`
|
|
- `scope`: user / vehicle / service_center
|
|
- `title`
|
|
- `description`
|
|
- `icon`
|
|
- `category`
|
|
- `is_active`
|
|
- `created_at`
|
|
|
|
- `user_achievements`
|
|
- `id`
|
|
- `user_id`
|
|
- `achievement_id`
|
|
- `vehicle_id`
|
|
- `service_center_id`
|
|
- `unlocked_at`
|
|
- `metadata_json`
|
|
|
|
- `vehicle_scores`
|
|
- `id`
|
|
- `vehicle_id`
|
|
- `completeness_score`
|
|
- `verified_history_score`
|
|
- `maintenance_health_score`
|
|
- `maintenance_status`
|
|
- `profile_quality`
|
|
- `verified_history_status`
|
|
- `missing_items`
|
|
- `computed_at`
|
|
|
|
- `service_center_scores`
|
|
- `id`
|
|
- `service_center_id`
|
|
- `trust_score`
|
|
- `trust_level`
|
|
- `confirmed_visits_count`
|
|
- `confirmation_rate`
|
|
- `dispute_rate`
|
|
- `computed_at`
|
|
|
|
- `engagement_events`
|
|
- `id`
|
|
- `user_id`
|
|
- `vehicle_id`
|
|
- `service_center_id`
|
|
- `event_type`
|
|
- `metadata_json`
|
|
- `created_at`
|
|
|
|
Indexes:
|
|
|
|
- `achievements.code` unique.
|
|
- `user_achievements(user_id, achievement_id, vehicle_id, service_center_id)` unique.
|
|
- `vehicle_scores.vehicle_id` unique.
|
|
- `service_center_scores.service_center_id` unique.
|
|
- `engagement_events(user_id, event_type, created_at)`.
|
|
- `engagement_events(vehicle_id, event_type, created_at)`.
|
|
|
|
## 13. API Changes
|
|
|
|
Owner APIs:
|
|
|
|
- `GET /api/me/achievements`
|
|
- `GET /api/my/vehicles/{vehicle_id}/score`
|
|
- `GET /api/my/vehicles/{vehicle_id}/timeline`
|
|
|
|
Service APIs:
|
|
|
|
- `GET /api/service-centers/{service_center_id}/trust-score`
|
|
|
|
Internal scoring APIs, optional later:
|
|
|
|
- `POST /api/internal/scoring/recompute`
|
|
- `POST /api/internal/achievements/evaluate`
|
|
|
|
Response principles:
|
|
|
|
- Return computed scores from backend.
|
|
- Return missing items and human-readable next actions.
|
|
- Never trust `user_id` from request body.
|
|
- Every vehicle endpoint uses `current_user` and vehicle access checks.
|
|
|
|
## 14. Frontend UI Changes
|
|
|
|
Replace the simple "Профиль учета" strip with a premium passport dashboard:
|
|
|
|
- Vehicle Passport Quality card with progress ring.
|
|
- Verified History card with status and trusted record ratio.
|
|
- Maintenance Health widget with green/yellow/red status.
|
|
- "Что улучшить" list with 2-4 next actions.
|
|
- Achievement cards in calm SaaS style.
|
|
- Vehicle timeline with fuel, service, confirmation, OCR, OBD, and achievements.
|
|
- Service trust badge in service-center screens.
|
|
- Garage overview with average completion and active alerts.
|
|
|
|
Style:
|
|
|
|
- Dark premium automotive UI.
|
|
- Calm contrast, thin borders, glass/dark panels used sparingly.
|
|
- No arcade language, no coin counters, no animated confetti.
|
|
|
|
## 15. Future Extensibility
|
|
|
|
Future modules should plug into the scoring engine without rewriting frontend:
|
|
|
|
- OBD2: connected vehicle badge, automatic mileage, battery monitoring.
|
|
- Insurance: verified maintenance packet for insurance offers.
|
|
- Resale: exportable CarPass report.
|
|
- Predictive maintenance: service recommendations based on mileage/time/fuel/OBD.
|
|
- AI assistant: explain score changes and suggest next best action.
|
|
- Service recommendations: based on vehicle type, overdue work, and trusted service access.
|
|
|
|
## Implementation Phases
|
|
|
|
Phase 1:
|
|
|
|
- Add backend models and migration.
|
|
- Add scoring engine.
|
|
- Add achievement engine.
|
|
- Add score, achievements, timeline, and trust-score APIs.
|
|
- Add focused tests.
|
|
|
|
Phase 2:
|
|
|
|
- Replace frontend progress strip with backend-driven widgets.
|
|
- Add achievements and timeline UI.
|
|
- Keep old MVP data flows intact.
|
|
|
|
Phase 3:
|
|
|
|
- Add smart notification events and cooldown-ready schema.
|
|
- Expand trust score for service centers.
|
|
- Add service-center-facing gamification signals.
|
|
|
|
Phase 4:
|
|
|
|
- Add engagement analytics and anti-abuse refinements.
|
|
- Optimize queries and add recomputation jobs.
|
|
- Prepare production deployment checklist.
|