Find dealers with wholesale-ready inventory. Triggers: "find consignment leads", "who has aged inventory", "wholesale sourcing", "cars to bring to auction", "find vehicles to consign", "dealer wholesale opportunities", "aged inventory in my market", "who should I call for consignments", "sourcing for next sale", identifying dealers sitting on aged, overpriced inventory that should be wholesaled through auction.
Date anchor: Today's date comes from the
# currentDatesystem context. Compute ALL relative dates from it. Example: if today = 2026-03-14, then "prior month" = 2026-02-01 to 2026-02-28, "current month" (most recent complete) = February 2026, "three months ago" = December 2025. Never use training-data dates.
get_sold_summaryparameter safety:
- Always set
inventory_typeexplicitly (NeworUsed) — omitting it defaults toNew, returning zero results for used-vehicle queries- Always set
limit: 5000— the default (1000) silently truncates when (months × states × ranking combos) exceeds 1000 rows- For volume totals, use
ranking_dimensions: dealership_group_name(or the single relevant dimension) — never use the defaultmake,model,body_typewhich creates ~150K rows for national 3-month queries
Load the marketcheck-profile.md project memory file if exists. Extract: zip/postcode, state/region, target_dmas, vehicle_segments, consigner_types, seller_fee_pct, buyer_fee_pct, country, radius. If missing, ask minimum fields (state or zip). US: search_active_cars, predict_price_with_comparables, get_sold_summary. UK: search_uk_active_cars only (no ML pricing — use comp median; skip velocity workflows). Confirm: "Using profile: [company], [state], [Country]". All preference values from profile — do not re-ask.
Auction house consignment rep or sales exec looking for dealers with aged, overpriced inventory they should wholesale through auction rather than continuing to retail. The goal is to fill upcoming auction lanes with quality consigned inventory.
get_sold_summary and flag units exceeding 1.5x the model's market average DOM, not just a flat 60-day cutoff.predict_price_with_comparables with dealer_type=independent is the wholesale proxy — This is the closest approximation to wholesale/auction value. It is NOT actual auction data. Frame outputs as "estimated wholesale value" not "auction price." The 0.92 hammer factor is applied on top of this.floor_plan_per_day if available. Calculate burn as: $35/day x units x (avg_dom - 45) where 45 is the "acceptable" DOM threshold. Only count excess days.seller_name, but the same dealer group may have slightly different names across locations ("ABC Motors" vs "ABC Motors of Springfield"). Look for common prefixes in seller_name to identify likely groups.search_uk_active_cars sorted by DOM, but cannot price it (no predict_price_with_comparables). Use comp median from search_uk_active_cars with matching YMMT as a fallback. Skip overpriced% calculation and note "Wholesale pricing estimated from comp median — no ML prediction available for UK."| Field | Source | Default |
|---|---|---|
| State/ZIP, radius | Profile | — |
| Seller fee % | Profile | 3% |
| Buyer fee % | Profile | 5% |
| Vehicle segments | Profile | all |
Use this when the user says "who has aged inventory" or "find consignment leads."
Search for aged inventory — Call mcp__marketcheck__search_active_cars with state=[XX] (or zip=[XXXXX], radius=[N]), car_type=used, seller_type=dealer, sort_by=dom, sort_order=desc, rows=50, price_min=1. If vehicle_segments specified, add body_type=[segment] filter. If profile has specific year preferences, add year_from and year_to.
→ Extract only: per vehicle — vin, year, make, model, trim, price, miles, dom, seller_name, seller_city, dealer_id. Skip any vehicle where price = 0 or null. Discard full response.
Price the top candidates — For the top 20 vehicles with DOM > 60 (or > 1.5x the model's market avg DOM — see Gotcha #1), call mcp__marketcheck__predict_price_with_comparables with vin=[VIN], miles=[miles], zip=[zip from vehicle location or profile], dealer_type=independent (wholesale proxy). If miles is missing from listing, use the vehicle's model-year average from step 1 stats and flag as "ESTIMATED MILES."
→ Extract only: predicted_price per VIN. Discard full response.
Check velocity for key models — For unique make/model combinations from step 1 (top 5-8 models), call mcp__marketcheck__get_sold_summary with make, model, state, inventory_type=Used, limit=5000, ranking_measure=average_days_on_market, date_from (first of prior month), date_to (last of prior month).
→ Extract only: average_days_on_market, sold_count per model. Discard full response.
Calculate consignment metrics — For each vehicle:
Cluster by dealer — Group vehicles by seller_name. Dealers with 3+ aged units = high-value consignment prospects. Calculate per dealer:
Use this when the user says "check [dealer name] for consignment opportunities."
Get dealer inventory — Call mcp__marketcheck__search_active_cars with dealer_id or source (domain), car_type=used, sort_by=dom, sort_order=desc, rows=30, stats=price,dom.
→ Extract only: per vehicle — vin, year, make, model, trim, price, miles, dom. Plus stats: total_count, avg_dom, avg_price. Discard full response.
Price aged units — For vehicles with DOM > 60 (up to 15), call mcp__marketcheck__predict_price_with_comparables with vin, miles, zip, dealer_type=independent.
→ Extract only: predicted_price per VIN. Discard full response.
Calculate per-unit and totals using formulas from main workflow step 4.
Generate consignment pitch — Summarize: total aged units, estimated floor plan burn ($35/day × aged units × avg excess DOM), total potential auction recovery, recommended units to consign.
Present consignment prospect list grouped by dealer. Per dealer: dealer_name, city, total_aged_units, avg_dom, estimated_floor_burn/month, total_auction_revenue_potential. Per unit: VIN, YMMT, DOM, listed_price, expected_hammer, overpriced%, urgency. Include summary: "[X] dealers with [Y] wholesale-ready units totaling ~$[Z] in potential auction fees." End with top 5 consignment calls to make.
-- Consignment Sourcing: [State/Area] — [Date] ------------------------------------
-- Prospect #1: [Dealer Name], [City] ---------------------------------------------
Aged Units: [N] | Avg DOM: [XX] days | Est. Floor Burn: $[X,XXX]/month
Total Auction Revenue Potential: $[X,XXX]
| VIN (last 8) | Year | Make | Model | DOM | Listed | Est. Hammer | Overpriced % | Urgency |
|---------------|------|--------|--------|-----|----------|-------------|------------- |---------|
| ...AB1234 | 2021 | Honda | Accord | 95 | $24,500 | $19,200 | +28% | HIGH |
| ...CD5678 | 2020 | Toyota | Camry | 72 | $21,800 | $18,100 | +20% | MEDIUM |
| ... | ... | ... | ... | ... | ... | ... | ... | ... |
Pitch: "You have [N] units averaging [X] days on lot and [Y]% above wholesale.
Consigning through auction could recover $[A] vs continued retail decline.
Floor plan savings alone: $[B]/month."
-- Prospect #2: [Dealer Name], [City] ---------------------------------------------
[... same format ...]
-- Summary -------------------------------------------------------------------------
[X] dealers with [Y] wholesale-ready units
Total potential auction fees: ~$[Z]
Highest-urgency dealer: [Name] ([N] units, [X] avg DOM)
-- Top 5 Calls to Make ------------------------------------------------------------
1. [Dealer] — [N] aged units, $[X] floor burn/month, pitch: [one-liner]
2. ...
dealer_type=independent. Verify no overpriced calculation uses franchise pricing (which would understate overpricing).