Attribute fill rate
Attribute fill rate is the percentage of required attribute fields that contain a usable value across a set of SKUs. It is calculated as filled cells divided by expected cells, and is usually cut per attribute, per category, or per channel. Data teams report it to executives as the headline measure of catalog completeness. On its own it says nothing about whether the values are correct.
What fill rate measures
Attribute fill rate is a ratio:
Fill rate = filled cells ÷ expected cells
The numerator is the number of attribute cells holding a usable value. The denominator is the number of cells that should hold one, based on the attribute set required for that category or channel.
The denominator is where every argument starts. A 3/8-16 Grade 8 hex bolt needs length, drive style, finish, and head style. It does not need a voltage rating. If your denominator counts every attribute in the PIM against every SKU, the number is permanently low and permanently useless.
The same underlying data produces four different numbers depending on how you cut it:
| Cut | Question it answers | Who asks for it |
|---|---|---|
| Per attribute | "How many SKUs have a UNSPSC code?" | The person deciding which field to fix first |
| Per SKU | "Is this item complete enough to publish?" | New item setup gatekeepers |
| Per category | "Is Fasteners worse than Wire Connectors?" | The manager assigning work |
| Per channel | "Will this pass the Amazon flat file?" | Whoever owns the launch date |
One blended catalog-wide percentage is the number executives ask for. The other three are the ones that tell you what to do on Monday.
What counts in the denominator
Four decisions determine whether the number means anything:
- Define the required set per category, not per catalog. Head style is required for fasteners and irrelevant for wire connectors. Different denominators, different targets.
- Decide what counts as filled before you run the report, and write it down.
- Handle "not applicable" by removing the cell from the denominator, not by writing "N/A" into it. An N/A that scores as filled inflates the number for free.
- Weight by something that matters. Fill rate across 400,000 SKUs treats a discontinued single-unit item the same as your top-selling connector. Cut it against SKUs with revenue or search traffic in the last 12 months and the picture usually gets worse. It also gets more honest.
What counts as filled:
| Cell value in Voltage Rating | Counts as filled? | Why |
|---|---|---|
600V | Yes | A real, parseable value |
N/A | No | Either the attribute doesn't apply — drop it from the denominator — or nobody found the value |
See catalog / Contact rep | No | A placeholder wearing a value's clothes |
- or a whitespace-only cell | No | IS NOT NULL returns true. Your buyer still sees a blank |
TBD inherited from a template | No | Template defaults inflate fill rate silently. Nobody typed the value, so nobody checks it |
What counts as a good fill rate
There is no industry benchmark worth quoting, and anyone handing you one is selling something. A good fill rate is defined by the requirement, not by a peer average. The useful move is to stop reporting one number and tier your attributes instead.
| Tier | What happens if it's blank | Target |
|---|---|---|
| Blocking | The channel rejects the item or it can't be sold | 100%, no exceptions |
| Filterable | The SKU exists but is invisible in faceted search | 100% on revenue-carrying SKUs |
| Differentiating | The buyer can find it but can't choose it confidently | Best effort, prioritized by category |
| Nice-to-have | Nothing | Whatever you get for free |
Blocking attributes are the ones with hard gates behind them: GTIN, MPN, category assignment, primary image, unit of measure. A 96% fill rate on GTIN is not a good score. In a 400,000-item catalog it is roughly 16,000 unsellable SKUs.
Filterable attributes are where fill rate turns into revenue. If finish is blank on a third of your fasteners, those SKUs vanish the moment a buyer clicks a filter. Price, stock, and description quality make no difference.
So the answer to "what's a good fill rate?" is: 100% on the attributes that gate the sale, measured against the SKUs that carry the revenue. Everything else is a roadmap, not a grade.
Why a high fill rate can still mean a bad catalog
Fill rate is a presence check. It confirms a cell is populated. It cannot confirm the value is true, in the right unit, or drawn from the right vocabulary. A part tagged 120V that is actually rated 600V scores exactly like a correct one.
Common ways a 95% fill rate hides a broken catalog:
- Unit drift.
0.375,3/8 in, and9.525 mmsitting in the same Length column. All filled. Unfilterable. - Vocabulary drift.
Zinc Plated,zinc-plated, andZN PLTas three separate facet values for one finish. - Template inheritance. A copied parent record fills 30 child SKUs with the parent's specs, several of which are wrong.
- Confident guesses. "UL listed: Yes" on a part that carries no listing. Filled, scored, and a compliance problem.
Pair fill rate with validation rules that check format and range, and with an accuracy sample: pull 50 SKUs per category, verify each attribute against the manufacturer spec sheet, and report accuracy beside fill rate. Two numbers. The second keeps the first honest.
Why the number stays flat
Fill rate is easy to measure and hard to move. A PIM will report it for you. It will not go source the missing value.
That gap is the whole problem. The PIM stores your product data; completing it means going out to manufacturer spec sheets, PDFs, distributor catalogs, and cut sheets, pulling the value, normalizing the unit, mapping it to your controlled vocabulary, and writing it back. That is sourcing work, not storage work. It's why fill rate sits flat for years while the PIM runs exactly as designed.
Anglera does that completion work alongside your PIM, writing sourced and normalized values back into the fields the report counts.
Frequently asked questions
How do you calculate attribute fill rate?
Divide the number of attribute cells holding a usable value by the number of cells that should hold one for that category or channel, then multiply by 100. The hard part is the denominator: define a required attribute set per category, exclude genuinely non-applicable attributes rather than writing "N/A" into them, and treat placeholders like "TBD" or "See catalog" as empty.
What is a good attribute fill rate?
No credible cross-industry benchmark exists, so set the bar by consequence instead. Attributes that gate the sale (a GTIN, an MPN, a category assignment, a unit of measure) need 100%, because a missing one means the item cannot be listed at all. Attributes that power faceted search need 100% on the SKUs carrying revenue. Everything below those two tiers is a sequencing decision.
Why is our fill rate high but our catalog still bad?
Fill rate only checks that a cell is populated, not that the value is correct. A column holding `0.375`, `3/8 in`, and `9.525 mm` scores 100% and still can't power a filter. Template inheritance and placeholder text inflate the number the same way. Report an accuracy sample beside fill rate — 50 verified SKUs per category — to keep it honest.
Should attribute fill rate be weighted by revenue?
Yes, at least as a second cut. An unweighted rate across 400,000 SKUs gives a discontinued long-tail item the same weight as your top-selling 600V wire connector. Recalculate against SKUs with sales or search traffic in the last 12 months. The weighted number is usually lower, and it's the one that predicts what buyers actually hit.
Can our PIM fix our attribute fill rate?
It will measure the gap and block incomplete items at new item setup, but measuring is not sourcing. A blank UL listing gets filled by someone reading the manufacturer's spec sheet, converting the unit, and matching the answer to your controlled vocabulary. No storage system does that on its own, which is why the metric holds steady while the PIM behaves exactly as configured.