--- title: Stats --- ## Getting started Filament comes with a "stats overview" widget template, which you can use to display a number of different stats in a single widget, without needing to write a custom view. Start by creating a widget with the command: ```bash php artisan make:filament-widget StatsOverview --stats-overview ``` Then return `Card` instances from the `getCards()` method: ```php description('32k increase') ->descriptionIcon('heroicon-s-trending-up'), Card::make('Bounce rate', '21%') ->description('7% increase') ->descriptionIcon('heroicon-s-trending-down'), Card::make('Average time on page', '3:12') ->description('3% increase') ->descriptionIcon('heroicon-s-trending-up'), ]; } ``` ## Card colors You may also give cards a `color()` (`primary`, `success`, `warning` or `danger`): ```php protected function getCards(): array { return [ Card::make('Unique views', '192.1k') ->description('32k increase') ->descriptionIcon('heroicon-s-trending-up') ->color('success'), Card::make('Bounce rate', '21%') ->description('7% increase') ->descriptionIcon('heroicon-s-trending-down') ->color('danger'), Card::make('Average time on page', '3:12') ->description('3% increase') ->descriptionIcon('heroicon-s-trending-up') ->color('success'), ]; } ``` ## Card extra HTML attributes You may also pass extra HTML attributes to cards using `extraAttributes()`: ```php protected function getCards(): array { return [ Card::make('Processed', '192.1k') ->color('success') ->extraAttributes([ 'class' => 'cursor-pointer', 'wire:click' => '$emitUp("setStatusFilter", "processed")', ]), // ... ]; } ``` ## Card charts You may also add or chain a `chart()` to each card to provide historical data. The `chart()` method accepts an array of data points to plot: ```php protected function getCards(): array { return [ Card::make('Unique views', '192.1k') ->description('32k increase') ->descriptionIcon('heroicon-s-trending-up') ->chart([7, 2, 10, 3, 15, 4, 17]) ->color('success'), // ... ]; } ``` ## Live updating (polling) By default, stats overview widgets refresh their data every 5 seconds. To customize this, you may override the `$pollingInterval` property on the class to a new interval: ```php protected static ?string $pollingInterval = '10s'; ``` Alternatively, you may disable polling altogether: ```php protected static ?string $pollingInterval = null; ```