Reduce Online Clothing Returns: Read Return Reasons With AI

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Reduce Online Clothing Returns: Read Return Reasons With AI.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Reduce Online Clothing Returns: Read Return Reasons With AI.

AI helps a clothing brand reduce size-related returns by reading return reasons at scale: tag each free-text comment with a fit cause (runs small, short sleeve, tight hip), count the tags by style and size, then fix the size chart or product page for the worst offenders. The analysis takes an afternoon; the benefit shows after the fixes go live.

The tagging is quick. The harder part is deciding what to do with it: a pattern of "too small" on one style is a size-chart problem, a pattern of "not as expected" is a photography or copy problem, and a mixed pattern across every style is something else, such as returns by design (bracketing, buying three sizes to keep one). Separating those is the real value of reading the reasons rather than counting returns.

Follow me on Instagram@sagnikteaches

Six weeks is a realistic span for one small brand to go from a raw export to a measured result: a week to clean the data and fix the tag list, one to tag, one to count, two to fix and ship pages, and one to measure. The brand below and every figure in it are illustrative; your own rates and costs will differ.

Connect on LinkedInSagnik Bhattacharya

The brand and the problem, in numbers

Take a direct-to-consumer brand selling around 1,800 orders a month through its own online shop: twelve styles, mostly tops and trousers, sizes XS to XL, average order $62. About 24% of orders come back in some way, or roughly 430 returns a month. The owner knows the rate is high but cannot see why, because the returns system shows a drop-down reason on every row and nothing useful beyond it.

Subscribe on YouTube@sagnikteaches

Here is the first sum, so the problem has a price. If each return costs $9 to process (postage label, handling, repackaging) and 8% of returned items cannot be resold at full price, then 430 returns cost 430 × $9 = $3,870 plus roughly 34 write-downs of about $25 = $850. That is about $4,700 a month, or $56,000 a year, before counting lost sales. If about half of those returns are size-related, removing a quarter of them takes out some 54 returns a month, worth roughly $600 in handling and write-downs (54 × $9, plus about 8% of them written down at $25). That figure is what makes an afternoon of analysis worth doing.

The Complete Excel Course with AI Integration thumbnail

The Complete Excel Course with AI Integration

From formulas and pivot tables to Power Query, DAX, VBA and AI with Copilot, ChatGPT and Claude — hands-on from the first lesson.

By Sagnik Bhattacharya and Virginia Thorn, Primetime Emmy Award winner

Buy now

Week one: get the export and make it safe to paste

You need one row per returned item, not per order, because an order with three items may return one for fit and two for style. Ask your returns tool or order system for an export with these columns: order date, return date, product name, variant (size and colour), the reason chosen from the drop-down, any free-text comment, and whether the customer exchanged for another size or took a refund. If your system cannot give you every column, take what it can; the product, size and comment are the three that matter most.

Then strip personal data. Delete name, email, phone and address columns, and replace the order number with a row number. If a free-text comment includes a name or a phone number (it happens), search for "@", runs of digits and capital-letter names and clear them. The analysis never needs identity. Keep the original file where it is, and work on a copy.

Check the shape before you continue. Count the rows, count how many have a comment, and count how many are blank. In the illustrative brand: 2,580 returns over six months, 1,410 with comments (55%), 1,170 with only a drop-down. That ratio tells you the comment is optional and many customers skip it, which affects how much weight to put on each tag later.

For the bigger picture of analysing returns beyond size, the tutorial on spotting patterns in complaints, returns and defects with AI covers defects and service, whereas this one stays on fit.

Week one, continued: a fixed fit-tag list the assistant must use

If you let an AI invent categories, you get forty slightly different ones. Give it a closed list and ask it to pick from it. This is the list the example brand settled on after a first rough pass, with one line on what each tag means so tagging stays consistent.

TagWhat it meansExample comment
RUNS_SMALLWhole garment smaller than the size label suggests"Ordered my usual M, felt like an S"
RUNS_LARGEWhole garment bigger than expected"Huge, swamped me"
TIGHT_SPOTTight in one place (shoulders, hips, calf, bust)"Fine except across the back"
LOOSE_SPOTLoose in one place (waist gape, wide neck)"Waist gaps at the back"
TOO_SHORT / TOO_LONGLength of sleeve, hem or inseam"Sleeves stop above my wrist"
FABRIC_FEELStretch, weight or texture differs from expectation"Thinner than the photos suggest"
LOOK_DIFFERENTColour, drape or shape unlike the photo"Colour is more orange in person"
BRACKETINGCustomer ordered several sizes on purpose"Sent back the other two sizes"
NOT_FIT_RELATEDGift, changed mind, late delivery, quality fault"Arrived after the party"
UNCLEARToo little information to tag"No"

A comment can carry two tags, for instance RUNS_SMALL and TOO_SHORT, but limit it to two, or the counts blur. Ask for the first tag to be the main cause.

Week two: tag a sample first, then the lot

Do not tag all 1,410 comments in one go. Take a sample of fifty, tag them yourself in a sheet, and then ask the assistant to tag the same fifty. Compare. Where the two disagree, find out which of you was right and which tag definition was unclear. Tighten the definitions, then run the whole set in batches of about a hundred comments per message, which is small enough for the assistant to stay consistent.

You are tagging clothing return comments for fit analysis. Use only these tags: RUNS_SMALL, RUNS_LARGE, TIGHT_SPOT, LOOSE_SPOT, TOO_SHORT, TOO_LONG, FABRIC_FEEL, LOOK_DIFFERENT, BRACKETING, NOT_FIT_RELATED, UNCLEAR. Give at most two tags per comment, main cause first. If a body area is mentioned, also give it in a second column (shoulders, bust, waist, hips, thigh, calf, sleeve, hem, neck, other).

Return a table with columns: row number, tag 1, tag 2, body area, and the 6 words from the comment that justify the tag. Never guess: use UNCLEAR when the comment does not say.

Rows:
[paste rows: row number | style | size ordered | comment]

Illustrative output for three rows: Row 14 (Straight trousers, size 12): "great fabric but tight on the thigh" returns TIGHT_SPOT, none, thigh, "tight on the thigh". Row 15 (Linen shirt, M): "sleeves too short, otherwise lovely" returns TOO_SHORT, none, sleeve. Row 16 (Linen shirt, M): "no" returns UNCLEAR. The six-word justification column is the quality check: when the quoted words do not support the tag, the tag is wrong. In the pilot the brand found the assistant tagging "felt cheap" as FABRIC_FEEL, which was acceptable, and tagging "didn't suit me" as LOOK_DIFFERENT, which was not; it added NOT_FIT_RELATED guidance to the list ("didn't suit me", "changed my mind").

Spot-check at least one batch in ten by eye. In the example, a 10% sample of 1,410 tags is 141 rows, which takes about fifteen minutes. If agreement is at least 85%, carry on; if not, revisit the definitions rather than re-running and hoping.

Week three: count by style and size, then ask what the counts mean

Paste the tagged table back into a spreadsheet and build a pivot with style down the side and tags across the top. Include the number sold in the same period for each style, so you can turn counts into rates. A style with 60 "runs small" returns means little until you know it sold 300 or 3,000.

StyleSold (6 months)Returns with commentRuns smallTight spotToo shortFabric feelFit-related share
Straight trousers1,1502104671 (thigh)41263%
Linen shirt980164229581557%
Knit jumper87011814654938%
Wrap dress6401314031 (bust)8766%

The fit-related share counts every size and fit tag, including runs large, loose spot and too long, which the table leaves out for space; fabric feel is not counted as fit. Each row suggests a different job. Straight trousers: a thigh problem across sizes, not a general sizing issue, so the pattern or the size chart's thigh measurement needs attention. Linen shirt: sleeves read short, which points to a chart that lists body length but not sleeve length, or a shrinkage issue after washing. Knit jumper: fabric feel dominates, so the product page undersells the thickness or stretch. Wrap dress: bust and runs-small together suggest the chart's bust figure was taken as a body measurement when it is a garment measurement, or the reverse.

Ask the assistant to propose hypotheses, but ask it to separate what the data shows from what it is guessing:

Here is the pivot by style (counts and units sold). For each style, give: (1) what the data shows in one sentence with the numbers, (2) two possible causes, (3) one check I can do with a tape measure and a returned garment, and (4) what I would change on the page or chart if the check confirms it. Do not recommend any pattern change without a measurement.

The "tape measure" line is deliberate. The assistant will happily explain a pattern problem it cannot see. Your job is to pull three returned garments of that style off the shelf, measure them flat, and compare to the published chart. That is the verification step, and it takes ten minutes per style.

Week three: bracketing and the returns you should not fix

Some size returns are not errors. A customer who orders a size 10 and a 12 and returns one has done what the shop invited her to do. The tagging shows how large this slice is: in the example, 280 of the 1,410 comments were BRACKETING or NOT_FIT_RELATED and should be set aside before judging the size chart.

Before you decide to discourage bracketing, think about what it signals: customers do not trust the chart. Fix the chart first, and measure bracketing again afterwards. If it stays high on a style that fits well, look at your policy on free exchanges and returns carriage; that is a commercial decision for the owner, not an AI one.

Week four: fix the size chart so it measures the garment

A common cause of fit returns is a chart that lists body measurements for size labels but not the finished garment measurements. Customers compare against a garment they own. The fix is to publish both.

Take the straight trousers. Measure five returned or sample pairs in each size, flat on a table: waist, hip, thigh at the widest, inseam, rise. Average them per size, round to half a centimetre or quarter inch, and add a column "garment measurement" beside "fits body". The assistant's job then is the page text, from a prompt like this:

Here are measured garment dimensions for the straight trousers in sizes 8 to 16 [table] and the body measurement ranges we print today [table]. Write: (1) a size table with both, (2) a two-sentence fit note that says honestly where the garment is closest to the body (thigh) and what to do if between sizes, (3) a "how to measure a pair you own" line. Use inches and centimetres. Do not call the fit generous or slim unless the numbers support it.

A sensible output notes: "Thigh measures 11.5 in (29 cm) flat in size 12, which is close to the body. If you carry weight on your thighs, size up." That sentence is only valid if the tape measure says so. Compare it with the 71 "tight on the thigh" returns, and the claim is credible.

Week four: product-page notes that remove the surprise

Many "not as expected" returns come from a gap between the photo and the garment. Add a short fit and feel block to each page, built from the tags that actually appear in returns. For the linen shirt: "Sleeves finish at the wrist bone on a 5 ft 7 model; if your arms are long, size up. Linen softens and relaxes after the first wash." For the knit jumper: "Mid-weight knit, about the thickness of a standard winter jumper; not a fine merino." Each line answers a return reason. For more on clothing copy beyond fit notes, see the checklist of fabric, fit and care errors in clothing descriptions.

One discipline keeps this honest: every fit note names the fact behind it, such as a measurement, the model's height and size, or a washing result. If a line cannot name its fact, delete it.

Week five: ship the changes one style at a time

Change the pages for the worst two styles first, not all twelve. Record the date and what you changed in a small log: style, change, date live. If you change everything at once, you cannot tell which fix helped, and seasonal swings will mislead you. The two styles in the example were the straight trousers and the wrap dress, which together accounted for 341 of the 1,410 comments.

A short test is possible if traffic allows: show the new chart to half the visitors for a month. Most small shops lack the volume, so a before and after comparison on the style, with the same measures, is the practical route.

Week six: measure whether it worked

Return rates move with the season, promotions and the mix of customers, so use a like-for-like comparison. For each changed style, compare the fit-related return rate for the four weeks before the change with the four weeks after. In the illustration, straight trousers sold 190 pairs in the "before" window with 21 fit-tagged returns (11.1%) and sold 205 in the "after" window with 13 (6.3%).

That is a drop of about 4.7 percentage points. Be careful with how far you trust it. Thirteen returns is a small count, and a few more or fewer would move the rate by a point. The honest reading is: this is encouraging; keep measuring for another month before extrapolating. If you want to see what that saving looks like at scale, work out the sum again: 4.7% of 205 pairs is about ten fewer returns; at $9 handling each, plus 8% of them written down at $25, that is roughly $110 a month on one style. Multiply by the number of styles you fix, and you see why the analysis is a series of small wins.

A return form that gives better data next month

The analysis is only as good as the comments. Change the return form so it asks better questions. A drop-down first, with fit options that match your tags: "Too small overall", "Too large overall", "Tight somewhere", "Loose somewhere", "Too short", "Too long", "Not what I expected", "Ordered more than one size", "Other". Then an optional box: "Where was it too tight or too loose?" And, for customers who exchange, a final question: "Which size did you order instead?" A customer who swaps an M for an L has told you something no comment does. The example brand added the question, and the share of rows with usable comments rose from 55% to about 70% over two months.

When the tags say the photo is the problem, not the size

In the example, the knit jumper had few size complaints but 49 FABRIC_FEEL comments and a further 26 LOOK_DIFFERENT ones, mostly about colour. Changing the size chart would have done nothing. The fix lived in photography and copy: shoot the jumper in daylight beside a plain swatch, state the weight of the knit, and name the colour by what it looks like ("dusty rust", not "terracotta") with a line that says the screen may differ a little.

A quick way to test a suspicion like this is to ask the assistant to read the twenty most recent LOOK_DIFFERENT comments for that style and group them by what the customer expected: "browner", "thinner", "more shine", "less stretch". Three out of four pointing the same way is a page change. One-off remarks are not.

Also check the reply you send to a customer who writes that a garment ran small. A sample prompt for a short, honest answer, which a person sends:

Customer wrote: "The trousers were far too tight on the thigh, going back." Our size notes for this style: thigh measures 11.5 in flat in size 12; customers between sizes should size up. Write a three-sentence reply that thanks them, offers an exchange for the next size up with free return postage, and does not blame them or the chart. Under 70 words.

The reply is a retention tool: an exchange keeps the sale that a refund would lose. Track exchange rate beside return rate, because a fix that turns refunds into exchanges is also a win.

Five ways a returns analysis misleads you

  • Counting without selling. A style with the most returns may simply be the best seller. Always divide by units sold.
  • Trusting a tag with no quoted evidence. That is why the six-word justification column exists.
  • Treating negative comments as the whole truth. Only returners write. Customers who kept the item and were pleased say nothing, so a fit complaint rate of 6% does not mean 94% were happy, only that 94% did not return it for fit.
  • Fixing the chart for one body type. If the comments cluster in the thigh and bust, the chart may be right for the average customer. Add fit notes rather than reshape the pattern for a minority.
  • Changing too many things in one week. You will not know what worked.

A returns analysis also pairs well with feedback you collect before the return. If you gather post-purchase comments, analysing customer feedback surveys with AI uses the same tagging approach, and AI size recommendation from charts and returns data is the next step once your charts are sound.

Questions about reading clothing returns with AI

How many returns do I need before the analysis is useful?

A few hundred rows across your top styles is enough to see patterns, but you can start with fewer on a single best-seller. Below roughly thirty returns for one style, treat findings as hunches to test, not conclusions, and wait for more data before changing the size chart.

Should I tell customers I am reading their return comments?

Use comments only for the purpose they were given, to improve products and service, and make sure your privacy notice says so. Remove names, emails and addresses before pasting anything into a chat assistant, because the analysis never needs them.

Does free-text matter if my returns form has a drop-down?

Yes. Drop-downs such as 'too small' tell you the direction, while free text tells you where: tight across the shoulders, short in the sleeve, rolled at the waistband. The free-text is where the fixable detail usually sits, so keep the box optional but visible.

Can AI predict which customer will return an item?

Not reliably from the data a small shop holds, and acting on such a prediction can punish honest customers. The safer use is on products: find which style, size and fabric combinations produce fit returns, then fix the page or the pattern.

What if my returns tool only records a reason code?

Start with the code, add one open question to the return form, and run the analysis again in a month. Even a single sentence from the customer doubles the usefulness of the data.

Further reads

Sources: the author's method; figures are illustrative and not drawn from any vendor or study. Check your returns or order system's help pages for its export options.

Want your return data turned into page fixes?

On a 1:1 call we'll look at what your returns system exports, choose the three styles costing you most, and decide how to run the tagging and the fixes without adding another tool.

Book a 1:1 call with me