Online Purchase Refund Analysis

This dataset provides a comprehensive record of online purchase refund requests, including customer details, product and order references, refund reasons, response times, and final resolutions. It enables in-depth analysis of refund patterns, operational response efficiency, and customer retention, supporting data-driven strategies to enhance customer satisfaction and reduce churn.

  • last updated 12 Jul 2025
  • by GoMask
The brief that made it

Analyzing common refund reasons and trends to inform product or service improvements

Sample rows

preview · 8 of 120 rows · all 16 columns
refund_idstringrefund_statusstringrefund_amountfloatchurn_flagbooleanrefund_methodstringorder_idstringcustomer_idstringcustomer_emailstringproduct_idstringrefund_request_datedatetimerefund_reasonstringresolution_datedatetimeresponse_time_hoursfloatsupport_agent_idstringcustomer_feedbackstringrefund_descriptionstring
RFD-100001Completed249.99falseOriginal Payment MethodORD-200001CUST-0010jane.doe99@example.comPRD-10012021-08-14T10:43:00ZDamaged Item2021-08-15T12:30:00Z1.78AGT-001Quickly resolved, thank you!Received the item with a cracked screen and scratches.
RFD-100002Approved59.95falseOriginal Payment MethodORD-200002CUST-0011matthew.baker@webmail.co.ukPRD-10022023-03-09T15:27:00ZWrong Item Sent2023-03-10T16:10:00Z24.72AGT-003Replacement was sent, appreciate the fast service.I ordered a blue variant, but received the red one instead.
RFD-100003Rejected23.5trueStore CreditORD-200003CUST-0012li.xiaoyu+shop@zhongmail.comPRD-10032022-01-20T11:12:00ZChanged Mind2022-01-22T14:54:00Z40.5AGT-002Disappointed that my request was rejected.No longer needed the item after ordering.
RFD-100004Completed119.99falseOriginal Payment MethodORD-200004CUST-0013sophia_wilson@vipmail.netPRD-10042023-11-08T18:05:00ZDamaged Item2023-11-09T14:10:00Z20.08AGT-004Thank you for resolving this quickly.Box arrived crushed, product inside was broken.
RFD-100005Rejected34trueOtherORD-200005CUST-0014ramirez.juan@correo.mxPRD-10052020-04-03T09:01:00ZLate Delivery2020-04-06T13:00:00Z76AGT-003blankItem arrived a week later than promised.
RFD-100006Approved62falseStore CreditORD-200006CUST-0015patel_nisha@indmail.inPRD-10062024-02-11T06:42:00ZItem Not as Described2024-02-11T14:55:00Z8.22AGT-006Appreciate the quick resolution.The material was synthetic instead of cotton, as described.
RFD-100007Completed599falseOriginal Payment MethodORD-200007CUST-0016t.obrien@usermail.comPRD-10072022-07-25T18:40:00ZDamaged Item2022-07-26T09:00:00Z14.33AGT-002Happy with the fast replacement.Screen was shattered upon arrival.
RFD-100008Approved15.49falseStore CreditORD-200008CUST-0017alex.smithers@customdomain.bizPRD-10082023-05-17T14:16:00ZWrong Item Sent2023-05-17T19:00:00Z4.73AGT-005Support responded promptly.Ordered headphones, received phone case.

What the 120 rows show

from the 120-row sample

Rejected (refund status) stands out: 17 of its 17 rows have churn_flag = true, against 2 of 103 for the rest.

  • 16%churn_flag = true
  • 62.3median refund_amount
  • 6refund reasons
  • 20.1median response_time_hours
Churn flag rate by refund_statuschurn_flag = true
0%50%100%0%Pending0 of 45%Approv…2 of 38100%Reject…17 of 170%Proces…0 of 110%Comple…0 of 50
refund_amount120 rows, in bands of 2e+298B
0601201180000000201e+299BInfinityBrefund_amount →

Median 62.3, from 0.0 to 179,769,313,486,231,570,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.

refund_method105 rows with a value · 15 left blank
  1. Original Payment Method48
  2. Store Credit27
  3. Other18
  4. Gift Card12
16 columns by typefrom the column list below
  • string 11
  • float 2
  • datetime 2
  • boolean 1

Columns

16 columns in four groups
blueprint · 16 columns
columntypedescriptionexample
Text 11 columns
refund_idstringUnique identifier for each refund requestuniqueRFD-100001
order_idstringIdentifier for the order associated with the refund requestORD-200001
customer_idstringUnique identifier for the customer submitting the refund requestCUST-0010
customer_emailstringEmail address of the customerjane.doe99@example.com
product_idstringIdentifier for the product being refundedPRD-1001
refund_reasonstringReason provided by the customer for the refund request6 valuesDamaged Item
refund_descriptionstringDetailed description of the refund reason provided by the customeroptionalPurchased by mistake.
refund_statusstringCurrent status of the refund requestPending · Approved · Rejected · Processing · CompletedCompleted
support_agent_idstringIdentifier for the support agent handling the refund requestoptionalAGT-001
refund_methodstringMethod used to process the refund4 values · optionalOriginal Payment Method
customer_feedbackstringOptional feedback provided by the customer after resolutionoptionalVIP service was great.
Numbers 2 columns
refund_amountfloatTotal amount requested for refund0 or more249.99
response_time_hoursfloatTime in hours between refund request and first response from support0 or more · optional1.78
Dates and times 2 columns
refund_request_datedatetimeDate and time when the refund request was submitted2021-08-14T10:43:00Z
resolution_datedatetimeDate and time when the refund request was resolved (approved/rejected/completed)optional2021-08-15T12:30:00Z
True or false 1 column
churn_flagbooleanIndicates if the customer churned (did not make further purchases) after the refundoptionalfalse

Use it for

  • churn flag16%19 of 120 rowsmean refund amount by…36.5Pend…592.4Appr…46.2Reje…74.3Proc…

    An e-commerce dashboard

    The churn_flag rate, refund_amount by refund_status and a breakdown of refund_method. Excel, Power BI or Tableau.

  • Why do 19 of 120 rows have churn_flag = true?

    A root-cause class exercise

    Hand out the rows and one question. The answer is in the data, not in the brief.

  • A software demo

    Believable refunds with order_id, customer_id and customer_email to fill a screen in front of a buyer.

Not quite right?

Make it yours.

Same 16 columns, your size and your rules. See 20 rows before you pay.

Preview 20 rows free

1,000 rows: $1.99 · 10,000: $12.99One-time. No subscription. All prices

This dataset120 rows16 columns
Yours1,000 rows16 columns

blueprint · online-purchase-refund-analysis

Behind this dataset

Same schema. As many rows as you need.

These 120 rows came out of a blueprint — 16 columns with generation rules behind each one. Open it in Data Factory to retune a column, add your own, wire in foreign keys, and run it at the size you actually need.

Rules it was built with
  • Refund requests must be logged within 30 days of purchase
  • Include resolution time for each case
  • Categorize refund reasons (e.g., defect, sizing, late delivery)
  • Record purchase channel (web, app, in-store)
  • Flag repeat refund customers for review
Rows
Open the blueprint in Data Factory

1 credit per row. Preview 20 rows free. Buy rows for the full run.

Exports
CSV, JSON, JSONL, Parquet, SQL, Excel, TSV, XML
Licence
yours to use, including commercially
API slug
online-purchase-refund-analysis

What should your data show?

Preview 20 rows free
No signup. No card.