DriveMatch - AI-Powered Vehicle Financing Made Simple

Inspiration

Car buying is stressful. Between confusing APR rates, hidden fees, and unclear affordability calculations, consumers often feel lost in the financing process. We were inspired to create DriveMatch - a zero-friction iOS app that transforms vehicle financing from a confusing maze into a delightful, transparent experience. Our goal: make lender-grade financial guidance as simple as a few taps.

What it does

DriveMatch is an intelligent vehicle financing companion that provides personalized, pre-approved vehicle recommendations in seconds:

Core Features

  • Smart Onboarding: Seamless 4-step setup collecting location, income (via Plaid), and credit data (via Equifax soft-pull)
  • AI-Powered Tax Calculation: Uses Gemini API to determine county-specific sales tax based on user location
  • TFS Score: Proprietary creditworthiness metric (0-100) calculated using:

$$\text{TFS Score} = 0.35 \times S_{\text{income}} + 0.30 \times S_{\text{credit}} + 0.20 \times S_{\text{available}} + 0.15 \times S_{\text{savings}}$$

where each component is normalized to 0-100 scale

  • Tinder-Style Swipe Interface: Browse personalized vehicle matches with instant affordability feedback
  • Real-Time Financial Calculations:

    • Monthly payments with dynamic APR based on TFS Score
    • Adjustable down payment slider
    • Comprehensive cost breakdowns (MSRP + Tax + Finance)
    • Affordability ratio: $\frac{\text{Monthly Payment}}{\text{Available Income}}$
  • AI Vehicle Ranking: Gemini API analyzes user's financial profile and ranks all vehicles, maintaining a 2:1 ratio of affordable to stretch options

  • Pre-Approval System: Users with affordability < 75% AND TFS Score ≥ 80 get instant pre-approval

  • Demo Settings Panel: Adjustable parameters (income, spending, credit score, tax rate) for testing different scenarios

Financial Intelligence

The app calculates available monthly payment capacity:

$$\text{Available} = \frac{\text{Annual Income}}{12} \times (1 - 0.20) - \text{Monthly Spending}$$

where 20% is automatically allocated to savings, and spending defaults to 70% of monthly income.

How we built it

Technology Stack

  • Frontend: SwiftUI (iOS 18+) with custom animations and gesture controls
  • State Management: @Observable macro for reactive UI updates
  • APIs:
    • Gemini 2.0 Flash for AI-powered tax lookup and vehicle ranking
    • Mock Plaid/Equifax integrations with realistic data simulation
  • Architecture: MVVM pattern with dedicated service layers
  • Security: API keys stored in secure .plist (gitignored) with runtime loading

Key Technical Achievements

  1. Smart Image Preloading: Cache manager preloads first 5 vehicle images, then fetches one ahead on each swipe
  2. Complex Gesture Handling: Solved interference between card swipe and down payment slider using simultaneousGesture
  3. AI Prompt Engineering:
    • Structured JSON output validation with retry logic
    • Enforced 2:1 affordable/stretch ratio in vehicle ranking
    • Context-aware tax percentage parsing (handles both decimal and percentage formats)
  4. Dynamic APR Calculation: TFS Score-based rates (3.49% - 11.99%) instead of traditional credit-only tiers
  5. Real-Time Re-Ranking: Changing demo settings triggers full AI re-evaluation of vehicle matches
  6. Accessibility: Full haptic feedback, VoiceOver support, and color-blind friendly status indicators

UI/UX Design

  • Premium Apple-quality interface with smooth animations
  • Glassmorphic affordability badges overlaid on vehicle images
  • Color-coded status system (Green/Yellow/Orange/Red) for instant visual feedback
  • Sequential loading animations for TFS Score calculation
  • Consistent spacing and typography across all onboarding screens

Challenges we ran into

  1. Number Formatting Chaos: Currency values initially displayed as $,.0f due to string interpolation issues. Solved by implementing proper NumberFormatter instances.

  2. Gemini API Inconsistency: Tax percentages returned as decimals (0.08) instead of percentages (8%). Built intelligent parsing with fallback logic to multiply by 100 when values < 1.0.

  3. UI State Management: Screen transitions wouldn't trigger despite state changes. Fixed with @MainActor annotation, .id() modifiers, and withAnimation wrappers.

  4. Gesture Conflicts: Swiping cards while adjusting sliders caused unintended actions. Resolved using simultaneousGesture(DragGesture()) to capture slider interactions.

  5. Image Loading Performance: Vehicle images took too long to load. Implemented intelligent URLCache preloading strategy.

  6. JSON Validation: Gemini sometimes returned invalid JSON for vehicle ranking. Built retry mechanism with schema validation.

  7. Affordability Calculation: Initially didn't account for user spending correctly. Refined formula to: Available = (Income/12) × 0.8 - Spending with adjustable spending percentage in settings.

  8. SwiftUI Layout Bugs:

    • Multiple cards visible during swipe (fixed with conditional rendering based on offset)
    • Grey background flash on load (fixed with explicit zIndex layering)
    • Whitespace after completing deck (fixed with Spacer() centering)

Accomplishments that we're proud of

Built a production-quality iOS app in record time with sophisticated AI integration

🎨 Achieved Apple-level UI polish - smooth animations, premium feel, intuitive interactions

🤖 Pioneered TFS Score - a holistic creditworthiness metric that goes beyond traditional credit scores

🧮 Complex Financial Math - Real-time APR calculation, affordability ratios, and dynamic payment projections

🚀 Intelligent AI Integration - Gemini API powers both tax lookup and personalized vehicle ranking with 2:1 ratio enforcement

🎯 Pre-Approval Innovation - Instant qualification decisions based on multi-factor analysis

🛠️ Solved Hard Problems - Gesture conflicts, async state management, AI response validation, image preloading

📱 Accessibility First - Haptic feedback, readable fonts, color-blind friendly indicators

What we learned

  • SwiftUI Concurrency: Deep dive into @MainActor, async/await, and state isolation in Swift 6
  • AI Prompt Engineering: Structured output generation, JSON validation, and retry strategies
  • Financial Domain Knowledge: APR calculations, loan amortization, debt-to-income ratios
  • Performance Optimization: Image caching strategies, lazy loading, and preloading techniques
  • UX Psychology: How progressive disclosure and instant feedback improve user confidence
  • API Security: Proper key management and gitignore best practices

What's next for DriveMatch

Immediate Features

  • Real Plaid Integration: Connect to actual bank accounts for transaction analysis
  • Live Equifax API: Perform real soft credit pulls with user consent
  • Lease Options: Add lease calculations with residual values and money factors
  • Insurance Estimation: Partner with insurance APIs for accurate premium quotes

Advanced Intelligence

  • Enhanced TFS Score: $$\text{TFS}_{\text{v2}} = f(\text{income stability, debt history, payment patterns, employment tenure})$$
  • Predictive Analytics: ML model to predict approval likelihood
  • Market Analysis: Real-time vehicle pricing and incentive data
  • Scenario Modeling: "What if" calculator for income changes, rate fluctuations

User Experience

  • Dealer Integration: QR code handoff for seamless in-person experience
  • Document Scanning: OCR for W-2, paystub, and ID verification
  • Push Notifications: Alert users to rate drops and new vehicle matches
  • Social Features: Share favorite vehicles with family/friends

Scale & Partnerships

  • Multi-Lender Support: Expand beyond TFS to other financial institutions
  • Used Vehicle Market: Integrate with certified pre-owned inventories
  • Trade-In Valuation: Instant offers based on VIN and condition
  • White-Label Platform: License technology to other auto lenders

DriveMatch isn't just an app - it's the future of transparent, AI-powered vehicle financing. 🚗✨

Built With

Share this project:

Updates