Vehicle depreciation and value retention analysis. Triggers: "depreciation rate", "value retention", "residual value", "how fast is it losing value", "which cars hold value", "EV depreciation", "price trend over time", "brand value ranking", "depreciation curve", "residual forecast", "MSRP parity", "price over sticker", "incentive effectiveness", "geographic value variance", "which states have higher prices", residual value forecasting, segment value comparisons, brand retention rankings, MSRP-to-transaction price tracking across new and used vehicles.
From dealernpx claudepluginhub marketcheckhub/marketcheck-cowork-plugin --plugin dealerThis skill uses the workspace's default tool permissions.
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Calculates TAM/SAM/SOM using top-down, bottom-up, and value theory methodologies for market sizing, revenue estimation, and startup validation.
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.
Load the marketcheck-profile.md project memory file if exists. Extract: state, franchise_brands, dealer_type, country. If missing, ask. US-only skill (get_sold_summary, search_active_cars). If UK, inform: "Depreciation tracking requires US sold data and is not available for UK." Confirm: "Using profile context: [state]"
Dealer tracking how quickly inventory/target models lose value for stocking and pricing decisions.
| Required | Field | Source |
|---|---|---|
| Yes | Make/Model or segment, model year(s) | Ask |
| Auto/Ask | State/ZIP, dealer_type | Profile or ask |
| Optional | Inventory type (New/Used), comparison dimension (EV vs ICE, etc.), time horizon | Ask |
Clarify: used vehicle depreciation vs new vehicle MSRP parity — different workflows.
Use this when a user asks "how fast is the RAV4 losing value" or "show me the depreciation curve for a 2022 Civic."
Get current period sold data — Call get_sold_summary with make, model, inventory_type=Used, date_from (first of prior month), date_to (end of prior month). Include state if specified.
→ Extract only: average_sale_price, sold_count. Discard full response.
Get historical sold data at multiple intervals — Make separate calls to get_sold_summary for each lookback period:
average_sale_price at each point. Adjust dates based on today's date.
→ Extract only: average_sale_price, sold_count per interval. Discard full response.Get current active market asking price — Call search_active_cars with year, make, model, car_type=used, stats=price, rows=0. Include zip/state if available.
→ Extract only: mean, median, min, max, count for price. Discard full response.
Get original MSRP baseline — Call search_active_cars with same YMMT, rows=1, sort_by=price, sort_order=desc. Decode the VIN for MSRP. Fallback: highest 1-year-ago sold price.
→ Extract only: msrp from decode. Discard full response.
Build the depreciation curve — Calculate at each time interval:
Use this when a user asks "are SUVs holding value better than sedans" or "how is EV depreciation compared to ICE."
Get current period segment data — Call get_sold_summary with ranking_dimensions=body_type, ranking_measure=average_sale_price, date_from (first of prior month), date_to (end of prior month), inventory_type=Used, top_n=10.
→ Extract only: per body_type — average_sale_price, sold_count. Discard full response.
Get prior period segment data — Same call with dates shifted back 3 months (or user's chosen comparison window). → Extract only: per body_type — average_sale_price, sold_count. Discard full response.
Get fuel type comparison — Call get_sold_summary with fuel_type_category=EV, current period dates, inventory_type=Used. Repeat with fuel_type_category=ICE. Repeat both for prior period.
→ Extract only: average_sale_price, sold_count per fuel_type per period. Discard full response.
Calculate segment trends — For each body type and fuel type:
Deliver the segment comparison — Present a ranked table from strongest retention to weakest. Highlight the EV vs ICE gap specifically (this is the most commonly requested comparison). Include volume context — a segment with strong prices but falling volume may be about to soften.
Use this when a user asks "which brands hold value best" or "rank the automakers by residual value."
Get current period brand prices — Call get_sold_summary with ranking_dimensions=make, ranking_measure=average_sale_price, ranking_order=desc, date_from (first of prior month), date_to (end of prior month), inventory_type=Used, top_n=25.
→ Extract only: per make — average_sale_price. Discard full response.
Get prior period brand prices — Same call with dates shifted back 6 months (or user's preferred comparison window). → Extract only: per make — average_sale_price. Discard full response.
Get volume context — Call get_sold_summary with ranking_dimensions=make, ranking_measure=sold_count, ranking_order=desc, current period dates, inventory_type=Used, top_n=25.
→ Extract only: per make — sold_count. Discard full response.
Calculate brand retention scores — For each make:
Present the brand ranking — Show a ranked table with: Rank, Make, Current Avg Price, Prior Avg Price, Retention %, Volume, Tier. Highlight notable movers (brands that jumped or dropped tiers since the last period).
Use this when a user asks "where do Tacomas hold value best" or "which states have the highest used car prices."
Get state-level transaction data — Call get_sold_summary with make, model, summary_by=state, date_from (first of prior month), date_to (end of prior month), inventory_type=Used, limit=5000.
→ Extract only: per state — average_sale_price, sold_count. Discard full response.
Get national baseline — Same call without summary_by for national average.
→ Extract only: average_sale_price, sold_count. Discard full response.
Calculate geographic variance — For each state:
Identify patterns — Group states into:
Deliver the geographic map — Present as a ranked table: State, Avg Transaction Price, National Avg, Price Index, Premium/Discount $, Sold Count. Highlight the top 5 and bottom 5 states for the specific vehicle.
Use this when a user asks "which new cars are selling over sticker" or "are markups coming down" or "incentive effectiveness."
Get current MSRP parity data — Call get_sold_summary with inventory_type=New, ranking_dimensions=make,model, ranking_measure=price_over_msrp_percentage, ranking_order=desc, date_from (first of prior month), date_to (end of prior month), top_n=30.
→ Extract only: per make/model — price_over_msrp_percentage. Discard full response.
Get prior period parity data — Same call with dates shifted back 3 months. → Extract only: per make/model — price_over_msrp_percentage. Discard full response.
Get volume context — Call get_sold_summary with inventory_type=New, ranking_dimensions=make,model, ranking_measure=sold_count, ranking_order=desc, current period dates, top_n=30.
→ Extract only: per make/model — sold_count. Discard full response.
Classify parity status — For each make/model:
Present the parity report — Show a table: Make/Model, Current % Over/Under MSRP, Prior Period %, Change Direction, Sold Volume. Highlight:
Present: summary headline, depreciation curve/trend table (period, avg price, retention %, monthly rate, volume), comparison context (segment/brand/geographic), key signals (bullets), and one actionable recommendation with quantified business impact.