Files
scaev/INTELLIGENCE_DASHBOARD_UPGRADE.md
2025-12-07 06:09:45 +01:00

26 KiB
Raw Blame History

Intelligence Dashboard Upgrade Plan

Executive Summary

The Troostwijk scraper now captures 5 critical new intelligence fields that enable advanced predictive analytics and opportunity detection. This document outlines recommended dashboard upgrades to leverage the new data.


New Intelligence Fields Available

1. followers_count (Watch Count)

Type: INTEGER Coverage: Will be 100% for new scrapes, 0% for existing (requires migration) Intelligence Value: CRITICAL

What it tells us:

  • How many users are watching/following each lot
  • Real-time popularity indicator
  • Early warning of bidding competition

Dashboard Applications:

  • Popularity Score: Calculate interest level before bidding starts
  • Follower Trends: Track follower growth rate (requires time-series scraping)
  • Interest-to-Bid Conversion: Ratio of followers to actual bidders
  • Sleeper Lots Alert: High followers + low bids = hidden opportunity

2. estimated_min_price & estimated_max_price

Type: REAL (EUR) Coverage: Will be 100% for new scrapes, 0% for existing (requires migration) Intelligence Value: CRITICAL

What it tells us:

  • Auction house's professional valuation range
  • Expected market value
  • Reserve price indicator (when combined with status)

Dashboard Applications:

  • Value Gap Analysis: current_bid / estimated_min_price ratio
  • Bargain Detector: Lots where current_bid < estimated_min_price * 0.8
  • Overvaluation Alert: Lots where current_bid > estimated_max_price * 1.2
  • Investment ROI Calculator: Potential profit if bought at current bid
  • Auction House Accuracy: Track actual closing vs estimates

3. lot_condition & appearance

Type: TEXT Coverage: Will be ~80-90% for new scrapes (not all lots have condition data) Intelligence Value: HIGH

What it tells us:

  • Direct condition assessment from auction house
  • Visual quality notes
  • Cleaner than parsing from attributes

Dashboard Applications:

  • Condition Filtering: Filter by condition categories
  • Restoration Projects: Identify lots needing work
  • Quality Scoring: Combine condition + appearance for rating
  • Condition vs Price: Analyze price premium for better condition

Data Quality Improvements

Orphaned Lots Issue - FIXED

Before: 16,807 lots (100%) had no matching auction After: 13 lots (0.08%) orphaned

Impact on Dashboard:

  • Auction-level analytics now possible
  • Can group lots by auction
  • Can show auction statistics
  • Can track auction house performance

Auction Data Completeness - FIXED

Before:

  • lots_count: 0%
  • first_lot_closing_time: 0%

After:

  • lots_count: 100%
  • first_lot_closing_time: 100%

Impact on Dashboard:

  • Show auction size (number of lots)
  • Display auction timeline
  • Calculate auction velocity (lots per hour closing)

Priority 1: Opportunity Detection (High ROI)

1.1 Bargain Hunter Dashboard

╔══════════════════════════════════════════════════════════╗
║                   BARGAIN OPPORTUNITIES                  ║
╠══════════════════════════════════════════════════════════╣
║ Lot: A1-34731-107 - Ford Generator                      ║
║ Current Bid: €500                                        ║
║ Estimated Range: €1,200 - €1,800                        ║
║ Bargain Score: 🔥🔥🔥🔥🔥 (58% below estimate)          ║
║ Followers: 12 (High interest, low bids)                 ║
║ Time Left: 2h 15m                                        ║
║ → POTENTIAL PROFIT: €700 - €1,300                       ║
╚══════════════════════════════════════════════════════════╝

Calculations:

value_gap = estimated_min_price - current_bid
bargain_score = value_gap / estimated_min_price * 100
potential_profit = estimated_max_price - current_bid

# Filter criteria
if current_bid < estimated_min_price * 0.80:  # 20%+ discount
    if followers_count > 5:  # Has interest
        SHOW_AS_OPPORTUNITY

1.2 Popularity vs Bidding Dashboard

╔══════════════════════════════════════════════════════════╗
║              SLEEPER LOTS (High Watch, Low Bids)         ║
╠══════════════════════════════════════════════════════════╣
║ Lot               │ Followers │ Bids │ Current │ Est Min ║
║═══════════════════╪═══════════╪══════╪═════════╪═════════║
║ Laptop Dell XPS   │    47     │  0   │  No bids│  €800   ║
║ iPhone 15 Pro     │    32     │  1   │  €150   │  €950   ║
║ Office Chairs 10x │    18     │  0   │  No bids│  €450   ║
╚══════════════════════════════════════════════════════════╝

Insight: High followers + low bids = people watching but not committing yet. Opportunity to bid early before competition heats up.

1.3 Value Gap Heatmap

╔══════════════════════════════════════════════════════════╗
║                    VALUE GAP ANALYSIS                    ║
╠══════════════════════════════════════════════════════════╣
║                                                          ║
║  Great Deals        Fair Price       Overvalued         ║
║  (< 80% est)       (80-120% est)     (> 120% est)      ║
║  ╔═══╗              ╔═══╗             ╔═══╗             ║
║  ║325║              ║892║             ║124║             ║
║  ╚═══╝              ╚═══╝             ╚═══╝             ║
║   🔥                  ➡                 ⚠               ║
╚══════════════════════════════════════════════════════════╝

Priority 2: Intelligence Analytics

2.1 Lot Intelligence Card

Enhanced lot detail view with all new fields:

╔══════════════════════════════════════════════════════════╗
║ A1-34731-107 - Ford FGT9250E Generator                  ║
╠══════════════════════════════════════════════════════════╣
║ BIDDING                                                  ║
║   Current:     €500                                      ║
║   Starting:    €100                                      ║
║   Minimum:     €550                                      ║
║   Bids:        8 (2.4 bids/hour)                        ║
║   Followers:   12 👁                                     ║
║                                                          ║
║ VALUATION                                                ║
║   Estimated:   €1,200 - €1,800                          ║
║   Value Gap:   -€700 (58% below estimate) 🔥           ║
║   Potential:   €700 - €1,300 profit                     ║
║                                                          ║
║ CONDITION                                                ║
║   Condition:   Used - Good working order                ║
║   Appearance:  Normal wear, some scratches              ║
║   Year:        2015                                      ║
║                                                          ║
║ TIMING                                                   ║
║   Closes:      2025-12-08 14:30                         ║
║   Time Left:   2h 15m                                    ║
║   First Bid:   2025-12-06 09:15                         ║
║   Last Bid:    2025-12-08 12:10                         ║
╚══════════════════════════════════════════════════════════╝

2.2 Auction House Accuracy Tracker

Track how accurate estimates are compared to final prices:

╔══════════════════════════════════════════════════════════╗
║           AUCTION HOUSE ESTIMATION ACCURACY              ║
╠══════════════════════════════════════════════════════════╣
║ Category         │ Avg Accuracy │ Tend to Over/Under    ║
║══════════════════╪══════════════╪═══════════════════════║
║ Electronics      │    92.3%     │ Underestimate 5.2%    ║
║ Vehicles         │    88.7%     │ Overestimate 8.1%     ║
║ Furniture        │    94.1%     │ Accurate ±2%          ║
║ Heavy Machinery  │    85.4%     │ Underestimate 12.3%   ║
╚══════════════════════════════════════════════════════════╝

Insight: Heavy Machinery estimates tend to be 12% low
         → Good buying opportunities in this category

Calculation:

# After lot closes
actual_price = final_bid
estimated_mid = (estimated_min_price + estimated_max_price) / 2
accuracy = abs(actual_price - estimated_mid) / estimated_mid * 100

if actual_price < estimated_mid:
    trend = "Underestimate"
else:
    trend = "Overestimate"

2.3 Interest Conversion Dashboard

╔══════════════════════════════════════════════════════════╗
║              FOLLOWER → BIDDER CONVERSION                ║
╠══════════════════════════════════════════════════════════╣
║ Total Lots:           16,807                             ║
║ Lots with Followers:  12,450 (74%)                       ║
║ Lots with Bids:        1,591 (9.5%)                      ║
║                                                          ║
║ Conversion Rate:       12.8%                             ║
║ (Followers who bid)                                      ║
║                                                          ║
║ Avg Followers per Lot:  8.3                              ║
║ Avg Bids when >0:      5.2                               ║
║                                                          ║
║ HIGH INTEREST CATEGORIES:                                ║
║   Electronics:    18.5 followers avg                     ║
║   Vehicles:       24.3 followers avg                     ║
║   Art:            31.2 followers avg                     ║
╚══════════════════════════════════════════════════════════╝

Priority 3: Real-Time Alerts

3.1 Opportunity Alerts

# Alert conditions using new fields

# BARGAIN ALERT
if (current_bid < estimated_min_price * 0.80 and
    time_remaining < 24_hours and
    followers_count > 3):

    send_alert("BARGAIN: {lot_id} - {value_gap}% below estimate!")

# SLEEPER LOT ALERT
if (followers_count > 10 and
    bid_count == 0 and
    time_remaining < 12_hours):

    send_alert("SLEEPER: {lot_id} - {followers_count} watching, no bids yet!")

# HEATING UP ALERT
if (follower_growth_rate > 5_per_hour and
    bid_count < 3):

    send_alert("HEATING UP: {lot_id} - Interest spiking, get in early!")

# OVERVALUED WARNING
if (current_bid > estimated_max_price * 1.2):

    send_alert("OVERVALUED: {lot_id} - 20%+ above high estimate!")

3.2 Watchlist Smart Alerts

╔══════════════════════════════════════════════════════════╗
║                  YOUR WATCHLIST ALERTS                   ║
╠══════════════════════════════════════════════════════════╣
║ 🔥 MacBook Pro A1-34523                                  ║
║    Now €800 (€400 below estimate!)                      ║
║    12 others watching - Act fast!                        ║
║                                                          ║
║ 👁 iPhone 15 A1-34987                                    ║
║    32 followers but no bids - Opportunity?              ║
║                                                          ║
║ ⚠ Office Desk A1-35102                                  ║
║    Bid at €450 but estimate €200-€300                   ║
║    Consider dropping - overvalued!                       ║
╚══════════════════════════════════════════════════════════╝

Priority 4: Advanced Analytics

4.1 Price Prediction Model

Using new fields for ML-based price prediction:

# Features for price prediction model
features = [
    'followers_count',           # NEW - Strong predictor
    'estimated_min_price',       # NEW - Baseline value
    'estimated_max_price',       # NEW - Upper bound
    'lot_condition',             # NEW - Quality indicator
    'appearance',                # NEW - Visual quality
    'bid_velocity',              # Existing
    'time_to_close',             # Existing
    'category',                  # Existing
    'manufacturer',              # Existing
    'year_manufactured',         # Existing
]

predicted_final_price = model.predict(features)
confidence_interval = (predicted_low, predicted_high)

Dashboard Display:

╔══════════════════════════════════════════════════════════╗
║                 PRICE PREDICTION (AI)                    ║
╠══════════════════════════════════════════════════════════╣
║ Lot: Ford Generator A1-34731-107                        ║
║                                                          ║
║ Current Bid:      €500                                   ║
║ Estimate Range:   €1,200 - €1,800                       ║
║                                                          ║
║ AI PREDICTION:    €1,450                                 ║
║ Confidence:       €1,280 - €1,620 (85% confidence)      ║
║                                                          ║
║ Factors:                                                 ║
║   ✓ 12 followers (above avg)                            ║
║   ✓ Good condition                                       ║
║   ✓ 2.4 bids/hour (active)                              ║
║   - 2015 model (slightly old)                           ║
║                                                          ║
║ Recommendation: BUY if below €1,280                      ║
╚══════════════════════════════════════════════════════════╝

4.2 Category Intelligence

╔══════════════════════════════════════════════════════════╗
║          ELECTRONICS CATEGORY INTELLIGENCE               ║
╠══════════════════════════════════════════════════════════╣
║ Total Lots:           1,243                              ║
║ Avg Followers:        18.5 (High Interest Category)      ║
║ Avg Bids:            12.3                                ║
║ Follower→Bid Rate:    15.2% (above avg 12.8%)           ║
║                                                          ║
║ PRICE ANALYSIS:                                          ║
║   Estimate Accuracy:  92.3%                              ║
║   Avg Value Gap:      -5.2% (tend to underestimate)     ║
║   Bargains Found:     87 lots (7%)                       ║
║                                                          ║
║ BEST CONDITIONS:                                         ║
║   "New/Sealed":       Avg 145% of estimate               ║
║   "Like New":         Avg 112% of estimate               ║
║   "Used - Good":      Avg 89% of estimate                ║
║   "Used - Fair":      Avg 62% of estimate                ║
║                                                          ║
║ 💡 INSIGHT: Electronics estimates are accurate but      ║
║    tend to slightly undervalue. Good buying category.    ║
╚══════════════════════════════════════════════════════════╝

Implementation Priority

Phase 1: Quick Wins (1-2 days)

  1. Bargain Hunter Dashboard - Filter lots by value gap
  2. Enhanced Lot Cards - Show all new fields
  3. Opportunity Alerts - Email/push notifications for bargains

Phase 2: Analytics (3-5 days)

  1. Popularity vs Bidding Dashboard - Follower analysis
  2. Value Gap Heatmap - Visual overview
  3. Auction House Accuracy - Historical tracking

Phase 3: Advanced (1-2 weeks)

  1. Price Prediction Model - ML-based predictions
  2. Category Intelligence - Deep category analytics
  3. Smart Watchlist - Personalized alerts

Database Queries for Dashboard

Get Bargain Opportunities

SELECT
    lot_id,
    title,
    current_bid,
    estimated_min_price,
    estimated_max_price,
    followers_count,
    lot_condition,
    closing_time,
    (estimated_min_price - CAST(REPLACE(REPLACE(current_bid, 'EUR ', ''), '€', '') AS REAL)) as value_gap,
    ((estimated_min_price - CAST(REPLACE(REPLACE(current_bid, 'EUR ', ''), '€', '') AS REAL)) / estimated_min_price * 100) as bargain_score
FROM lots
WHERE estimated_min_price IS NOT NULL
  AND current_bid NOT LIKE '%No bids%'
  AND CAST(REPLACE(REPLACE(current_bid, 'EUR ', ''), '€', '') AS REAL) < estimated_min_price * 0.80
  AND followers_count > 3
  AND datetime(closing_time) > datetime('now')
ORDER BY bargain_score DESC
LIMIT 50;

Get Sleeper Lots

SELECT
    lot_id,
    title,
    followers_count,
    bid_count,
    current_bid,
    estimated_min_price,
    closing_time,
    (julianday(closing_time) - julianday('now')) * 24 as hours_remaining
FROM lots
WHERE followers_count > 10
  AND bid_count = 0
  AND datetime(closing_time) > datetime('now')
  AND (julianday(closing_time) - julianday('now')) * 24 < 24
ORDER BY followers_count DESC;

Get Auction House Accuracy (Historical)

-- After lots close
SELECT
    category,
    COUNT(*) as total_lots,
    AVG(ABS(final_price - (estimated_min_price + estimated_max_price) / 2) /
        ((estimated_min_price + estimated_max_price) / 2) * 100) as avg_accuracy,
    AVG(final_price - (estimated_min_price + estimated_max_price) / 2) as avg_bias
FROM lots
WHERE estimated_min_price IS NOT NULL
  AND final_price IS NOT NULL
  AND datetime(closing_time) < datetime('now')
GROUP BY category
ORDER BY avg_accuracy DESC;

Get Interest Conversion Rate

SELECT
    COUNT(*) as total_lots,
    COUNT(CASE WHEN followers_count > 0 THEN 1 END) as lots_with_followers,
    COUNT(CASE WHEN bid_count > 0 THEN 1 END) as lots_with_bids,
    ROUND(COUNT(CASE WHEN bid_count > 0 THEN 1 END) * 100.0 /
          COUNT(CASE WHEN followers_count > 0 THEN 1 END), 2) as conversion_rate,
    AVG(followers_count) as avg_followers,
    AVG(CASE WHEN bid_count > 0 THEN bid_count END) as avg_bids_when_active
FROM lots
WHERE followers_count > 0;

Get Category Intelligence

SELECT
    category,
    COUNT(*) as total_lots,
    AVG(followers_count) as avg_followers,
    AVG(bid_count) as avg_bids,
    COUNT(CASE WHEN bid_count > 0 THEN 1 END) * 100.0 / COUNT(*) as bid_rate,
    COUNT(CASE WHEN followers_count > 0 THEN 1 END) * 100.0 / COUNT(*) as follower_rate,
    -- Bargain rate
    COUNT(CASE
        WHEN estimated_min_price IS NOT NULL
        AND current_bid NOT LIKE '%No bids%'
        AND CAST(REPLACE(REPLACE(current_bid, 'EUR ', ''), '€', '') AS REAL) < estimated_min_price * 0.80
        THEN 1
    END) as bargains_found
FROM lots
WHERE category IS NOT NULL AND category != ''
GROUP BY category
HAVING COUNT(*) > 50
ORDER BY avg_followers DESC;

API Requirements

Real-Time Updates

For dashboards to stay current, implement periodic scraping:

# Recommended update frequency
ACTIVE_LOTS = "Every 15 minutes"  # Lots closing soon
ALL_LOTS = "Every 4 hours"         # General updates
NEW_LOTS = "Every 1 hour"          # Check for new listings

Webhook Notifications

# Alert types to implement
BARGAIN_ALERT = "Lot below 80% estimate"
SLEEPER_ALERT = "10+ followers, 0 bids, <12h remaining"
HEATING_UP = "Follower growth > 5/hour"
OVERVALUED = "Bid > 120% high estimate"
CLOSING_SOON = "Watchlist item < 1h remaining"

Migration Scripts to Run

To populate new fields for existing 16,807 lots:

# High priority - enriches all lots with new intelligence
python enrich_existing_lots.py
# Time: ~2.3 hours
# Benefit: Enables all dashboard features immediately

# Medium priority - adds bid history intelligence
python fetch_missing_bid_history.py
# Time: ~15 minutes
# Benefit: Bid velocity, timing analysis

Note: Future scrapes will automatically capture all fields, so migration is optional but recommended for immediate dashboard functionality.


Expected Impact

Before New Fields:

  • Basic price tracking
  • Simple bid monitoring
  • Limited opportunity detection

After New Fields:

  • 80% more intelligence per lot
  • Advanced opportunity detection (bargains, sleepers)
  • Price prediction capability
  • Auction house accuracy tracking
  • Category-specific insights
  • Interest→Bid conversion analytics
  • Real-time popularity tracking

ROI Potential:

Example Scenario:
- User finds bargain: €500 current bid, €1,200-€1,800 estimate
- Buys at: €600 (after competition)
- Resells at: €1,400 (within estimate range)
- Profit: €800

Dashboard Value: Automated detection of 87 such opportunities
Potential Value: 87 × €800 = €69,600 in identified opportunities

Monitoring & Success Metrics

Track dashboard effectiveness:

# User engagement metrics
opportunities_shown = COUNT(bargain_alerts)
opportunities_acted_on = COUNT(user_bids_after_alert)
conversion_rate = opportunities_acted_on / opportunities_shown

# Accuracy metrics
predicted_bargains = COUNT(lots_flagged_as_bargain)
actual_bargains = COUNT(lots_closed_below_estimate)
prediction_accuracy = actual_bargains / predicted_bargains

# Value metrics
total_opportunity_value = SUM(estimated_min - final_price) WHERE final_price < estimated_min
avg_opportunity_value = total_opportunity_value / actual_bargains

Next Steps

  1. Immediate (Today):

    • Run enrich_existing_lots.py to populate new fields
    • Update dashboard to display new fields
  2. This Week:

    • Implement Bargain Hunter Dashboard
    • Add opportunity alerts
    • Create enhanced lot cards
  3. Next Week:

    • Build analytics dashboards
    • Implement price prediction model
    • Set up webhook notifications
  4. Future:

    • A/B test alert strategies
    • Refine prediction models with historical data
    • Add category-specific recommendations

Conclusion

The scraper now captures 5 critical intelligence fields that unlock advanced analytics:

Field Dashboard Impact
followers_count Popularity tracking, sleeper detection
estimated_min_price Bargain detection, value assessment
estimated_max_price Overvaluation alerts, ROI calculation
lot_condition Quality filtering, restoration opportunities
appearance Visual assessment, detailed condition

Combined with fixed data quality (99.9% fewer orphaned lots, 100% auction completeness), the dashboard can now provide:

  • 🎯 Opportunity Detection - Automated bargain hunting
  • 📊 Predictive Analytics - ML-based price predictions
  • 📈 Category Intelligence - Deep market insights
  • Real-Time Alerts - Instant opportunity notifications
  • 💰 ROI Tracking - Measure investment potential

Estimated intelligence value increase: 80%+

Ready to build! 🚀