Re-order rates logic

Hey everyone!

This is less a coding/querying question and more a logic/mathematics question.

I cannot for the life of me understand why a “low” ratio = more reorders, and a “high” ration = more first purchases when reorder_rate = distinct order_ids / distinct delivered_to (i.e. reorder_rate = number of times an item was ordered / number of people it was delivered to).

I understand the code needed to obtain the correct answers; just don’t understand the actual logic behind the calculation. It seems backwards to me; I’d expect “high” ratios to mean more reorders, and “low” ratios to mean less reorders.

Can someone please shed some light? This has been driving me mad for two days.



This has been driving me also mad !!!

Page 11/12 says…
A lower ratio means most of the orders are reorders.
A higher ratio means more of the orders are first purchases.

But in Page 12/12 says…
Wow! they have a very high reorder rate. That means these smoothie customers are strong repeat customers.

This is contradictory ???
I guess page 12 is correct… high order is repeat customers… more orders divided by less people hence the result is a high rate…

Page 11 talks about higher RATIO… Page 12 talks about higher RATE ?? I hope RATIO and RATE are same.

Please someone help ??? Which is right … I believe … HIGH RATE… repeated customers…
Please someone help ??? it us running me crazy !!!

1 Like

Hello, everebody. I have a good news for you. You are attentive ones.

This statement (SQL: Analyzing Business Metrics 11. Reorder Rates) is definitely wrong “We’ll define reorder rate as the ratio of the total number of orders to the number of people making those orders. A lower ratio means most of the orders are reorders. A higher ratio means more of the orders are first purchases.”

It has been turned inside out. A lower ratio means more of the orders are first purchases when you divide like this count(distinct order_id) / count(distinct orders.delivered_to).

When count(distinct order_id) = count(distinct orders.delivered_to) we have that one customer buy one item of this product. At this point we have the lowest reorder rate.

When we increase count(distinct order_id) then we increase the reorder rate.


The whole SQL Analyzing Buisiness Metrics course looks full of mistakes like this and sometimes even bugs when you should pass wrong code to go forward. I think Codecademy should rebuild it from the ground. You still can learn something new, but sometimes it looks like a battle with mistakes and logic errors made by course creators!
The whole structure of the course is hard to comprehend.