ExcelAnalyzerClient-side file inspector

Excel pivot cache checker

Verify that no file leaves your browser

Local check

What a pivot cache actually stores

A PivotTable on a sheet is a view. The bulk of the bytes often sits in a pivot cache: a definition part plus a records part under xl/pivotCache. The records part is a copy of the source data, kept so the pivot can change layout without rereading the sheet. That copy is why a workbook with one modest-looking pivot can be larger than the worksheet it came from. This checker measures those parts and, when the definition is XML, reads refreshOnLoad, saveData, and recordCount.

How the flags change the file

saveData controls whether the cached records are stored in the file. When it is on, the file travels with its own copy of the source. When it is off, the file is smaller and Excel must refresh from the source before the pivot is useful. refreshOnLoad tells Excel to refresh the cache when the workbook opens, which is convenient and can also surprise people on a missing network path. This page reports the flags. It does not change them.

The repair steps live in the guide on where pivot records sit in the package.

Duplicated caches

Each time a pivot is created from the same source in a way Excel does not share, you can get another cache with the same record count and the same records size. The checker flags caches whose source, record count, and records size match. Treat that as a candidate for duplication, not as proof. Two pivots that really do share one cache will not be listed twice. Rebuilding a pivot from the existing cache, or deleting a pivot you no longer use and saving, is the usual way to drop a spare copy.

What “large” means here

The Audit score calls the cache heavy when records exceed 8 MB or 20 percent of the file, and moderate above 1 MB or 5 percent. A cache that is large because the business data is large is not a defect by itself. It is a reason to ask whether every row needs to travel inside the workbook. Pointing the pivot at a query, a smaller staging sheet, or Power Pivot’s data model can move that weight out of the xlsx package. Those are structural choices, not switches this site flips.

Binary caches and .xlsb

Some workbooks store pivot records as .bin parts. The checker still reports their uncompressed size and labels the source as binary, because the XML flags are not there to read. Formula-level detail inside an .xlsb sheet is out of scope. If the only thing you needed was “is the cache the reason this file is 30 MB?”, the size row is the answer. Compare that row with the worksheet group in the size checker before you rebuild a pivot that was not the heavy part.

Also check

Questions people ask before trusting the result

Does clearing the cache delete the pivot?

No. In Excel, PivotTable Analyze, then Options, then Data, you can clear the cache or turn off saving source data. The pivot layout remains and will need a refresh.

Why is recordCount smaller than the sheet?

The cache stores the source range at last refresh, which may be a subset of the sheet, or the sheet may have grown since the refresh.

Can I delete pivotCacheRecords.xml by hand?

Do not. Excel expects the relationships inside the package to match. Change the pivot in Excel and save, then measure the file again.

Will this refresh the pivot?

No. refreshOnLoad is only reported. Opening the file here does not connect to the pivot’s source and does not update numbers.

Are slicers included?

Slicer caches are separate parts when present and show up in the size ranking. This page focuses on pivot cache definitions and records.

Last updated 5 November 2026. Initial release of this audit.