@include('inventory::reports.partials.styles')
Stock Valuation Expiry Forecast ABC Analysis Dead Stock Reorder Stock Aging

Stock Aging Report

Inventory freshness analysis by last receipt date

Fresh (0-30 days)
{{ $stats['fresh_count'] }}
₹{{ number_format($stats['fresh_value'], 0) }} ({{ $stats['fresh_percent'] }}%)
Normal (31-60 days)
{{ $stats['normal_count'] }}
₹{{ number_format($stats['normal_value'], 0) }} ({{ $stats['normal_percent'] }}%)
Aging (61-90 days)
{{ $stats['aging_count'] }}
₹{{ number_format($stats['aging_value'], 0) }} ({{ $stats['aging_percent'] }}%)
Stale (90+ days)
{{ $stats['stale_count'] }}
₹{{ number_format($stats['stale_value'], 0) }} ({{ $stats['stale_percent'] }}%)
Reset
Stock by Age
@php $allItems = array_merge($stale, $aging, array_slice($normal, 0, 10), array_slice($fresh, 0, 10)); @endphp @if(count($allItems) > 0)
@foreach($allItems as $i => $item) @endforeach
# Age Product Category Qty Value Last Receipt Days Old
{{ $i + 1 }} {{ ucfirst($item->age_class) }}
{{ strtoupper(substr($item->product_name, 0, 2)) }}
{{ $item->product_name }}
{{ $item->sku }}
{{ $item->category_name }} {{ number_format($item->total_qty, 2) }} {{ $item->unit_name }} ₹{{ number_format($item->stock_value, 0) }} {{ $item->last_receipt }} {{ $item->age_days }}d
@php $hiddenCount = max(0, count($normal) - 10) + max(0, count($fresh) - 10); @endphp @if($hiddenCount > 0)
+ {{ $hiddenCount }} more items not shown (prioritizing stale/aging stock)
@endif @else
📭

No stock data found

@endif