###### tags: `Wish` # T133198: Revisit withheld merchant *Joanna Jiang 2019-06-25* --- ## 1. Refund rate by type > $Refund \ Rate = \frac {Refunded \ GMV} {Total \ GMV}$. [Click to see query](https://console.treasuredata.com/app/queries/editor?queryId=1199581) ```sql select a.refund_type, a.refund_gmv/b.gmv as refund_ratio from (select merchant_id, b.titled_name as refund_type, sum(COALESCE(gmv,0)) as refund_gmv from merch_merchanttransaction as a left join dim_refund_reasons as b on a.refund_reason_category=b.refund_reason_category where merchant_id='57ac6fb11226ef29ed12b8e6' group by 1,2 order by refund_gmv DESC) a join (select merchant_id, sum(gmv) as gmv from merch_merchanttransaction group by 1) b on a.merchant_id=b.merchant_id where refund_type is not null ``` > The result shows: | refund_type | refund_ratio | | -------- | -------- | |Shipping Taking Too Long |0.0886| |User Cancelled Order |0.0368| |Suspected Fraud| 0.0223| |Item Does Not Match Listing |0.0180| |Item Does Not Work As Described| 0.0099| |Item Is Damaged| 0.0064| |Item Marked Delivered But Did Not Arrive| 0.0056| |User Placed Order By Mistake| 0.0054| |Item Returned To Sender| 0.0048| |Item Does Not Fit| 0.0018| |Item Is Counterfeit| 0.0009| |Received Wrong Item| 0.0009| |Merchant Out Of Stock| 0.0008| |Incomplete Order| 0.0006| |Merchant Sent To Wrong Address| 0.0005| |Consumer Fraud| 0.00007| ## 2. Missleading/fake tracking reviews ration > Find out the top 10 destination contries for this merchant regarding GMV. [Click to see query](https://console.treasuredata.com/app/queries/editor?queryId=1197498) ```sql select dest_country, sum(gmv) as total_gmv from merch_merchanttransaction as mmt where merchant_id='57ac6fb11226ef29ed12b8e6' group by dest_country order by total_gmv desc limit 10 ``` They turn to be GB(en), US(en), BR(portuguese), FR(french), DE(german), IT(italian), ES(spanish), NL(dutch), CH(german, french and italian), MX(spanish). > Search relating keyword in comment. [Click to see query](https://console.treasuredata.com/app/queries/editor?queryId=1199566) ```sql select t_1.merchant_id, t_1.misleading_feedback_cnt/t_2.comments_cnt as misleading_ratio, t_1.fake_feedback_cnt/t_2.comments_cnt as fake_ratio, t_1.fraud_feedback_cnt/t_2.comments_cnt as fraud_ratio, t_1.scam_feedback_cnt/t_2.comments_cnt as scam_ratio from ( select merchant_id, sum( case when ( LOWER(comment) like '%misleading%' --english or LOWER(comment) like '%mislead%' --english or LOWER(comment) like '%misled%'--english or LOWER(comment) like '%enganosa%' --portuguese or LOWER(comment) like '%fallacieuse%' --french or LOWER(comment) like '%trompé%' --french or LOWER(comment) like '%irreführen%' --german or LOWER(comment) like '%fuorviare%' --italian or LOWER(comment) like '%engañar%' --spanish or LOWER(comment) like '%misleiden%' --dutch ) then 1 else 0 end) as misleading_feedback_cnt, sum( case when ( LOWER(comment) like '%fake%' --english or LOWER(comment) like '%falsa%' --portuguese or LOWER(comment) like '%faux%' --french or LOWER(comment) like '%Fälschung%' --german or LOWER(comment) like '%falso%' --italian or LOWER(comment) like '%falso%'--spanish or LOWER(comment) like '%nep%' --dutch ) then 1 else 0 end) as fake_feedback_cnt, sum( case when ( LOWER(comment) like '%scam%' --english or LOWER(comment) like '%golpe%' --portuguese or LOWER(comment) like '%arnaque%' --french or LOWER(comment) like '%Betrug%' --german or LOWER(comment) like '%truffa%' --italian or LOWER(comment) like '%estafa%'--spanish or LOWER(comment) like '%oplichterij%' --dutch ) then 1 else 0 end) as scam_feedback_cnt, sum( case when ( LOWER(comment) like '%fraud%' --english or LOWER(comment) like '%fraude%' --portuguese or LOWER(comment) like '%fraude%' --french or LOWER(comment) like '%Betrug%' --german or LOWER(comment) like '%frode%' --italian or LOWER(comment) like '%fraude%'--spanish or LOWER(comment) like '%bedrog%' --dutch ) then 1 else 0 end) as fraud_feedback_cnt from merchant_feedback_rating where merchant_id='57ac6fb11226ef29ed12b8e6' and TD_Time_range(time, '2016-08-11') group by 1 ) as t_1 join (select merchant_id, count(comment) as comments_cnt from merchant_feedback_rating where merchant_id='57ac6fb11226ef29ed12b8e6' and TD_Time_range(time, '2016-08-11') and comment is not null group by 1) as t_2 on t_1.merchant_id=t_2.merchant_id ``` > The ratios in this result are: | misleading_ratio| fake_ratio | fraud_ratio | scam_ratio | | -------- | -------- | -------- | - | | 0 | 0.00780 | 0 | 0.00060 | ## 3. Ratings Ratio > Calculate rating ratios in 5-star scale for this merchant. [Click to see query](https://console.treasuredata.com/app/queries/editor?queryId=1197241) ```sql select a.rating_star, a.records/b.total_records as rating_ratio from (select mfr.merchant_id, mfr.rating as rating_star, count(mfr.rating) as records from merchant_feedback_rating mfr where merchant_id='57ac6fb11226ef29ed12b8e6' and TD_Time_range(time, '2016-08-11') group by 1,2 order by rating_star desc) a join (select merchant_id, count(rating) as total_records from merchant_feedback_rating where TD_Time_range(time, '2016-08-11') group by 1) b on a.merchant_id=b.merchant_id ``` > Result shows as: | rating_star | rating_ratio| | -------- | -------- | -------- | |1 |0.0766| |2 |0.0458| |3 |0.1104| |4 |0.1775| |5 |0.5897| ## 4. Account Balance > Calculate confirmed balance and pending balance for this merchant. [Click to see query](https://console.treasuredata.com/app/queries/editor?queryId=1197132) ```sql select a.merchant_id, a.currency, sum (case when a.balance_type=1 then a.balance else 0 end) as confirmed_balance, sum (case when a.balance_type=2 then a.balance else 0 end) as pending_balance from merch_account_balance_20190624074726 as a where a.merchant_id='57ac6fb11226ef29ed12b8e6' group by 1, 2 ``` > Result shows as: | merchant_id | currency | confirmed_balance | pending_balance| | -------- | -------- | -------- |---| |57ac6fb11226ef29ed12b8e6| USD| 13091.429920002527 |0.0| ## 5. Fine History > Find out fined amount and reversed fine amount for this merchant. [Click to see query](https://console.treasuredata.com/app/queries/editor?queryId=1197146) ```sql select -- a.merchant_id, b.name as fine_type, sum(case when a.action=0 then COALESCE(a.amount,0) else 0 end) as fine_amount, sum(case when a.action=1 then coalesce(a.amount,0) else 0 end) as fine_reversed from merchant_fine_audit as a left join dim_merchant_fine_types as b on a.type=b.fine_type where merchant_id='57ac6fb11226ef29ed12b8e6' group by 1 order by fine_amount desc ``` > Result shows as: | fine_type | fine_amount | fine_reversed | |-------------------------------|--------------------|--------------------| | FAKE_TRACKING | 184441.0 | 173971.0 | | LEGAL_SETTLEMENT | 75000.0 | 0.0 | | LATE_CONFIRMED_FULFILLMENT | 12336.4 | 3978.2 | | PAID_PLACEMENT_IMPRESSION_FEE | 8433.4 | 0.0 | | REPEAT_IP_INFRINGEMENT | 500.0 | 0.0 | | IP_INFRINGEMENT | 390.0 | 10.0 | | PROMOTED_PRODUCT_DISABLE_FINE | 150.0 | 0.0 | | PROHIBITED_PRODUCT_FINE | 120.0 | 0.0 | | MISLEADING_LISTING | 100.0 | 0.0 | | INFRACTION | 50.0 | 0.0 | | MERCHANT_CANCELLATION | 32.0 | 0.0 | | MERCHANT_INCENTIVE | 19.0 | 0.0 | | PAID_PLACEMENT_ENROLLMENT_FEE | 9.5 | 0.0 | | QUALITY_REFUND_FINE | 5.0 | 5.0 | | SE_CASH_BACK | 2.9 | 0.0 | ## 6. AOV Changes (Monthly) > $AOV =\frac{total\ gmv}{number\ of\ orders}$. [Click to see query](https://console.treasuredata.com/app/queries/editor?queryId=1199658) ```sql select TD_TIME_FORMAT(TD_DATE_TRUNC('month', cast(order_time as BIGINT), 'America/Los_Angeles'), 'yyyy-MM-dd', 'America/Los_Angeles') AS order_month, sum(mmt.gmv)/count(distinct m_transaction_id) as AOV from merch_merchanttransaction_dump as mmt where mmt.merchant_id='57ac6fb11226ef29ed12b8e6' and order_time > 1529651778 group by 1 ``` > Result shows as: | order_month| aov (monthly)| |------------|--------------------| | 2018-12-01 | 29.268724460638207 | | 2018-11-01 | 34.60895665811946 | | 2018-10-01 | 31.921843846638996 | | 2018-09-01 | 25.40263658814998 | | 2018-08-01 | 19.68501932248473 | | 2018-07-01 | 19.27852293857941 | | 2018-06-01 | 19.49389443332202 | | 2018-05-01 | 20.75860331853231 | | 2018-04-01 | 21.06698128328485 | | 2018-03-01 | 19.910345203948744 | | 2018-02-01 | 20.848074283308655 | | 2018-01-01 | 22.054052815527776 | | 2017-12-01 | 23.934194815464508 | | 2017-11-01 | 25.765522649309492 | | 2017-10-01 | 25.84926935821249 | | 2017-09-01 | 27.19147716662688 | | 2017-08-01 | 21.5004484651015 | | 2017-07-01 | 20.94164583317555 | | 2017-06-01 | 20.560839391523793 | | 2017-05-01 | 20.0245792320259 | | 2017-04-01 | 18.590909417498352 | | 2017-03-01 | 20.397345499776716 | | 2017-02-01 | 19.150302738447984 | | 2017-01-01 | 23.002432505556403 | | 2016-12-01 | 20.607280729675292 | | 2016-11-01 | 18.02374956013975 | | 2016-10-01 | 10.657052929827708 | | 2016-09-01 | 22.627306867213477 | | 2016-08-01 | 15.360422009513492 |