Files
scaev/docs/API_INTELLIGENCE_FINDINGS.md
2025-12-07 07:09:16 +01:00

6.6 KiB

API Intelligence Findings

GraphQL API - Available Fields for Intelligence

Key Discovery: Additional Fields Available

From GraphQL schema introspection on Lot type:

Already Captured ✓

  • currentBidAmount (Money) - Current bid
  • initialAmount (Money) - Starting bid
  • nextMinimalBid (Money) - Minimum bid
  • bidsCount (Int) - Bid count
  • startDate / endDate (TbaDate) - Timing
  • minimumBidAmountMet (MinimumBidAmountMet) - Status
  • attributes - Brand/model extraction
  • title, description, images

NEW - Available but NOT Captured:

  1. followersCount (Int) - CRITICAL for intelligence!

    • This is the "watch count" we thought was missing
    • Indicates bidder interest level
    • ACTION: Add to schema and extraction
  2. biddingStatus (BiddingStatus) - Lot bidding state

    • More detailed than minimumBidAmountMet
    • ACTION: Investigate enum values
  3. estimatedFullPrice (EstimatedFullPrice) - Found it!

    • Available via LotDetails.estimatedFullPrice
    • May contain estimated min/max values
    • ACTION: Test extraction
  4. nextBidStepInCents (Long) - Exact bid increment

    • More precise than our calculated bid_increment
    • ACTION: Replace calculated field
  5. condition (String) - Direct condition field

    • Cleaner than attribute extraction
    • ACTION: Use as primary source
  6. categoryInformation (LotCategoryInformation) - Category data

    • Structured category info
    • ACTION: Extract category path
  7. location (LotLocation) - Lot location details

    • City, country, possibly address
    • ACTION: Add to schema
  8. remarks (String) - Additional notes

    • May contain pickup/viewing text
    • ACTION: Check for viewing/pickup extraction
  9. appearance (String) - Condition appearance

    • Visual condition notes
    • ACTION: Combine with condition_description
  10. packaging (String) - Packaging details

    • Relevant for shipping intelligence
  11. quantity (Long) - Lot quantity

    • Important for bulk lots
  12. vat (BigDecimal) - VAT percentage

    • For total cost calculations
  13. buyerPremiumPercentage (BigDecimal) - Buyer premium

    • For total cost calculations
  14. videos - Video URLs (if available)

    • ACTION: Add video support
  15. documents - Document URLs (if available)

    • May contain specs/manuals

Bid History API - Fields

Currently Captured ✓

  • buyerId (UUID) - Anonymized bidder
  • buyerNumber (Int) - Bidder number
  • currentBid.cents / currency - Bid amount
  • autoBid (Boolean) - Autobid flag
  • createdAt (Timestamp) - Bid time

Additional Available:

  • negotiated (Boolean) - Was bid negotiated
    • ACTION: Add to bid_history table

Auction API - Not Available

  • Attempted auctionDetails query - does not exist
  • Auction data must be scraped from listing pages

Priority Actions for Intelligence

HIGH PRIORITY (Immediate):

  1. Add followersCount field (watch count)
  2. Add estimatedFullPrice extraction
  3. Use nextBidStepInCents instead of calculated increment
  4. Add condition as primary condition source
  5. Add categoryInformation extraction
  6. Add location details
  7. Add negotiated to bid_history table

MEDIUM PRIORITY:

  1. Extract remarks for viewing/pickup text
  2. Add appearance and packaging fields
  3. Add quantity field
  4. Add vat and buyerPremiumPercentage for cost calculations
  5. Add biddingStatus enum extraction

LOW PRIORITY:

  1. Add video URL support
  2. Add document URL support

Updated Schema Requirements

lots table - NEW columns:

ALTER TABLE lots ADD COLUMN followers_count INTEGER DEFAULT 0;
ALTER TABLE lots ADD COLUMN estimated_min_price REAL;
ALTER TABLE lots ADD COLUMN estimated_max_price REAL;
ALTER TABLE lots ADD COLUMN location_city TEXT;
ALTER TABLE lots ADD COLUMN location_country TEXT;
ALTER TABLE lots ADD COLUMN lot_condition TEXT;  -- Direct from API
ALTER TABLE lots ADD COLUMN appearance TEXT;
ALTER TABLE lots ADD COLUMN packaging TEXT;
ALTER TABLE lots ADD COLUMN quantity INTEGER DEFAULT 1;
ALTER TABLE lots ADD COLUMN vat_percentage REAL;
ALTER TABLE lots ADD COLUMN buyer_premium_percentage REAL;
ALTER TABLE lots ADD COLUMN remarks TEXT;
ALTER TABLE lots ADD COLUMN bidding_status TEXT;
ALTER TABLE lots ADD COLUMN videos_json TEXT;  -- Store as JSON array
ALTER TABLE lots ADD COLUMN documents_json TEXT;  -- Store as JSON array

bid_history table - NEW column:

ALTER TABLE bid_history ADD COLUMN negotiated INTEGER DEFAULT 0;

Intelligence Use Cases

With followers_count:

  • Predict lot popularity and final price
  • Identify hot items early
  • Calculate interest-to-bid conversion rate

With estimated prices:

  • Compare final price to estimate
  • Identify bargains (final < estimate)
  • Calculate auction house accuracy

With nextBidStepInCents:

  • Show exact next bid amount
  • Calculate optimal bidding strategy

With location:

  • Filter by proximity
  • Calculate pickup logistics

With vat/buyer_premium:

  • Calculate true total cost
  • Compare all-in prices

With condition/appearance:

  • Better condition scoring
  • Identify restoration projects

Updated GraphQL Query

query EnhancedLotQuery($lotDisplayId: String!, $locale: String!, $platform: Platform!) {
  lotDetails(displayId: $lotDisplayId, locale: $locale, platform: $platform) {
    estimatedFullPrice {
      min { cents currency }
      max { cents currency }
    }
    lot {
      id
      displayId
      title
      description { text }
      currentBidAmount { cents currency }
      initialAmount { cents currency }
      nextMinimalBid { cents currency }
      nextBidStepInCents
      bidsCount
      followersCount
      startDate
      endDate
      minimumBidAmountMet
      biddingStatus
      condition
      appearance
      packaging
      quantity
      vat
      buyerPremiumPercentage
      remarks
      auctionId
      location {
        city
        countryCode
        addressLine1
        addressLine2
      }
      categoryInformation {
        id
        name
        path
      }
      images {
        url
        thumbnailUrl
      }
      videos {
        url
        thumbnailUrl
      }
      documents {
        url
        name
      }
      attributes {
        name
        value
      }
    }
  }
}

Summary

NEW fields found: 15+ additional intelligence fields available Most critical: followersCount (watch count), estimatedFullPrice, nextBidStepInCents Data quality impact: Estimated 80%+ increase in intelligence value

These fields will significantly enhance prediction and analysis capabilities.