{{ $car->dealer->trading_name }} · Platform-only ranking details
PLATFORM PLACEMENTS
Up to {{ count(config('ranking.promotion.slots')) }} reserved opportunities per {{ config('ranking.promotion.window') }} Recommended results, at positions {{ implode(', ', config('ranking.promotion.slots')) }} when organic matches are available. Search filters, quality, availability and dealer diversity still apply. Explicit price, year and newest sorts keep their order.
Starts immediately; maximum 90 days. Active promotions are labelled publicly. Reserved placement requires {{ config('ranking.promotion.quality_min') * 100 }}% listing quality and {{ config('ranking.promotion.confidence_min') * 100 }}% availability confidence; promotion cannot make private stock public. Existing results remain stable until a new search or Discover more.
• {{ $reason }}
@emptyEligible for public discovery.
@endforelse{{ $snapshot->ranked_at }} · {{ $snapshot->allocation ?: 'Not yet displayed' }} allocation · New pool: {{ $snapshot->new_pool ? 'yes':'no' }} · Older pool: {{ $snapshot->older_pool ? 'yes':'no' }}
| Signal | Value / 100 | Weight |
|---|---|---|
| {{ ucfirst($name) }} | {{ number_format($snapshot->$name*100,2) }} | {{ number_format($weight/max(.0001,array_sum(config('ranking.weights')))*100) }}% |
Boost in this snapshot: +{{ number_format($snapshot->boost*100,2) }} points.
Total: {{ number_format($snapshot->score*100,2) }} / 100
Context: {{ $snapshot->filters }}. This is a frozen, context-specific score; it is not a universal vehicle rating.
@elseNo result-set snapshot yet. The next eligible discovery visit will compute one.
@endif{{ ucfirst(str_replace('_',' ',$name)) }} {{ number_format($count) }}
@endforeachViewable impressions only. Aggregates refresh every 15 minutes. A buyer contributes at most one interest credit per {{ config('ranking.recent_days') }}-day window; individual event types remain separate.
Current cooldown: {{ $cooldownUntil && $cooldownUntil->isFuture() ? 'until '.$cooldownUntil : 'none' }}
{{ config('ranking.refresh.cooldown_days') }}-day cooldown; at most {{ config('ranking.refresh.max_in_90_days') }} boosts in 90 days; {{ config('ranking.refresh.boost_days') }}-day duration.
@forelse($changes as $change){{ json_encode(json_decode($change->details),JSON_PRETTY_PRINT) }}No meaningful refresh decisions recorded.
@endforelse