# How to run a UGC audit: coverage, rights, freshness, and what it is worth

A UGC audit is four measurements and one comparison: how much of the catalogue has customer content, whether the rights are current, how old the newest post is per product, and whether engaged visitors convert better than the store average.

By Rohin Aggarwal · 2026-09-27

The first UGC audit I ran for a brand took a weekend and a spreadsheet with four tabs. The finding that mattered fitted in one cell: most of the catalogue had no customer content at all, and the products that did were the ones already selling. Nobody had asked the question because nobody had a column for it.

**Quick answer**

- Coverage: the share of live products with at least one rights-cleared piece of customer content, weighted by traffic rather than by SKU count.
- Rights: every public piece has a grant with a source and an expiry. The audit counts expired and undated grants as uncleared.
- Freshness: the age of the newest post per product. A gallery whose newest post is eighteen months old is decoration.
- Value: compare conversion among visitors who engaged with UGC against the store average on the same pages in the same window, and keep attributed revenue and influenced cart value in separate columns.
- Run it quarterly. The free scanner at /tools/ugc-audit does the outside-in pass; the 30-minute /audit does the inside-out one.

## What a UGC audit is for

An audit answers a question the dashboard does not: is the UGC programme doing its job across the catalogue, or only on the twelve products someone remembered to tag? Most brands run UGC as a series of moments. A campaign, a widget on the homepage, a gallery on the hero product. The audit turns that into a map of the whole store, with four measurements that can be re-run next quarter and compared. It is the same discipline as a stock count. Boring, periodic, and the only way to find out what you actually have.

The four measurements are coverage, rights, freshness and value. The first three are inventory questions: how much, is it usable, is it current. The fourth is the one finance asks. Run them in that order, because value means nothing if half the content counted is not cleared to show.

## Coverage: how much of the catalogue has proof

Coverage is the share of products with at least one piece of customer content that is cleared and live. The naive version counts SKUs. The useful version weights by traffic, because a store where 15% of products carry UGC can be a store where most sessions see it, or a store where almost none do. Pull the product list, join it to sessions for the last 90 days, mark each product covered or not, and report both the SKU share and the traffic share. The gap between the two is the first finding of the audit.

Then cut it by category and price band. Coverage clusters where the marketing team already looked: the hero range, the launch, whatever was on sale. The long tail, which is often where margin lives, tends to have nothing. That list, sorted by traffic descending, is the collection brief for the next quarter. If the answer to "where do we get content for those" is a blank, the [own-versus-rent library piece](/blog/own-vs-rent-building-a-ugc-content-library) is the argument for building the pipeline rather than licensing stock every season.

## Rights: cleared, dated, and not expired

Every piece counted as covered needs a rights grant that exists, names its source, and has not expired. Count the rest as uncleared, including the ones with a grant but no date, because an undated grant is a grant whose expiry you cannot defend. The reason is not only legal exposure. A creator who revokes, or a grant that lapses, pulls the content from every surface at once, and a coverage number that includes it is a number that can drop overnight.

The output here is three counts per product: cleared and current, cleared but expiring within 90 days, and uncleared or unknown. The middle column is the operational one. It is the renewal list. The [rights-expiry audit](/blog/auditing-creator-rights-expiry-at-scale) covers the mechanics of finding these past a few dozen agreements, and the short version is that a shared inbox stops working long before the volume feels large.

## Freshness: the age of the newest post

Freshness is the age of the newest cleared post per product. It is the measurement most audits skip and the one shoppers notice. A gallery whose most recent post is two seasons old tells the visitor the product stopped being bought, which is the opposite of the message the gallery exists to send. Set a threshold that fits your cycle, 90 days for fashion and beauty, longer for furniture, and report the share of covered products whose newest post is older than it.

Freshness also feeds the collection brief. A product with twenty posts and nothing new in a year needs a nudge (a post-purchase ask, a hashtag, a QR on the packaging) more than a product with three posts from last week. Sorting the covered list by newest-post age puts the stale-but-important products at the top. The [competition runbook](/blog/how-to-run-a-ugc-competition) is the fastest way to refill a stale product; a monthly winner keeps the newest-post date moving.

## Value: engaged visitors versus the store average

The value question has a clean version and a flattering version, and the audit should run the clean one. The flattering version compares pages with UGC against pages without, which mostly measures the fact that you put UGC on the pages that were already selling. The clean version compares, on the same pages and in the same window, the conversion of visitors who engaged with the UGC (opened a tile, played a video, tapped a product) against the store average for those pages. Engagement is a choice the visitor made, so this still carries selection bias. But it is the honest starting point, and it is the number a holdout test then confirms or corrects.

Keep the revenue lines apart. Attributed revenue is orders reconciled against a UGC click through the store's order webhook. Influenced cart value is the value of add-to-cart events that followed an engagement, whether or not they closed. They answer different questions and they are not additive, so a report that sums them is a report nobody should sign. Engagement metrics belong in a third column, because they exist for a brand with no commerce integration at all.

"Value delivered", the phrase that ends up on the slide, is then a sentence rather than a number: this share of traffic saw customer content, those visitors converted at this rate against this baseline, and this much revenue reconciled to it. Published vendor datasets show the ceiling.

- **137%** — more likely to buy after seeing customer photos (Yotpo, 200k+ stores / 163M orders analyzed)
- **+162%** — more revenue per visitor among shoppers who engage with UGC (Bazaarvoice, Shopper Experience Index)
- **161%** — higher conversion among shoppers who interact with UGC (Yotpo, 200k+ stores / 163M orders analyzed)

_Published vendor-dataset figures. Useful as a ceiling, not a forecast; the audit produces your own version of each._

Treat those as the top of the range. A lift measured on a catalogue with 15% coverage and stale galleries will not look like one measured across two hundred thousand stores that chose to install a reviews app. The audit exists to say which of the two you are.

## Where you are, and what to do next

**Where the audit usually lands**
1. **Moments** — signals: A homepage gallery, a campaign or two, coverage under 10% of traffic, rights in an inbox.; next move: Connect the sources, put a rights record on every existing piece, and pick the top 50 products by traffic as the collection target.
2. **Covered** — signals: Coverage past 40% of traffic, rights dated, but freshness slipping and value unmeasured.; next move: Set a freshness threshold, run the engaged-versus-average comparison, start a post-purchase ask on the stale products.
3. **Measured** — signals: Coverage, rights and freshness reported quarterly; attributed revenue kept apart from influenced cart value.; next move: Holdout-test one surface to confirm the lift, then expand beyond the PDP: email, lookbooks, ads.
4. **Compounding** — signals: The library grows faster than it expires, every surface draws from it, and the audit is a dashboard rather than a weekend.; next move: Put the audit on a schedule and spend the saved time on the long tail.

**What the coverage number tells you to do first**
Q: What did coverage come back as, weighted by traffic?
- Under 20% of sessions: **A collection problem** — Nothing else in the audit matters yet. The brief is content for the top products by traffic, with rights captured at the point of entry.
  - Sources connected, little inbound: A post-purchase ask plus a hashtag or in-store QR route. Run a competition if you need volume fast.
  - Sources not connected: Connect Instagram, TikTok and reviews first. The backlog is usually larger than it looks.
- 20% to 60% of sessions: **A rights and freshness problem** — The content exists. The audit is about whether it is cleared, current, and on the products that need it.
  - Many grants undated or expiring: Renewal list first. Nothing stale goes on a new surface until it is re-permissioned.
  - Rights fine, newest posts old: Set the freshness threshold and nudge the stale top-traffic products.
- Over 60% of sessions: **A measurement problem** — You have the inventory. The question is what it is worth, and the answer needs a clean comparison and then a holdout.
  - No commerce integration: Report engagement and influenced cart value. Do not model revenue you cannot reconcile.
  - Shopify or webhook attribution live: Report attributed revenue on its own line, then holdout-test the biggest surface.

## Running the first pass in an afternoon

Two free routes shorten the first pass. The [UGC audit scanner](/tools/ugc-audit) does the outside-in check on a public store: which sources are visible, whether galleries are present and how heavy they are, whether rights and schema signals are exposed. The [30-minute audit](/audit) is the inside-out version with a person on the call: widget weight, source coverage, rights state, layout fit, the attribution gap. Neither replaces the four measurements above. Both tell you which one to start with.

**Coverage before value:** Every audit that starts with "what is UGC worth to us" ends with a flattering number and no plan. Start with coverage weighted by traffic, then rights, then freshness. By the time you get to value you know what the number describes, and the finance team will believe it.

### FAQs

**Q: How often should a UGC audit run?**

A: Quarterly is the useful cadence. Coverage and freshness move with the season, rights expire on their own schedule, and a quarter is long enough for the previous brief to have changed the numbers.

**Q: What counts as "covered" for a product?**

A: At least one piece of customer content that is rights-cleared, current, and live on a surface a shopper can see. A post sitting in the library but on no page does not count; neither does one with an expired or undated grant.

**Q: Why weight coverage by traffic instead of counting products?**

A: Because the SKU share can flatter or hide the truth. A store where 15% of products carry UGC can be one where most sessions see it or almost none do. Traffic weighting tells you what shoppers actually experience.

**Q: Is engaged-visitor conversion the same as lift?**

A: No. Engagement is a choice, so visitors who engage differ from those who do not. The comparison is the honest first number; a holdout test, where a share of visitors never sees the UGC, is what confirms the lift.

### Sources
- [Yotpo, 200k+ stores / 163M orders (customer-photo conversion, revenue per visitor)](https://www.yotpo.com/resources/)
- [Bazaarvoice, Shopper Experience Index (conversion on pages with UGC)](https://www.bazaarvoice.com/press/bazaarvoice-shopper-experience-index-shows-surging-importance-of-ugc/)
- [Idukki, free UGC audit scanner](/tools/ugc-audit)
- [Idukki, the 30-minute UGC audit](/audit)
- [Idukki, auditing creator rights before they expire](/blog/auditing-creator-rights-expiry-at-scale)

---
Canonical: https://idukki.io/blog/how-to-run-a-ugc-audit
Tags: ugc-audit, rights-management, catalogue-coverage, measurement, strategy
