SELECT bl.name location,COUNT(DISTINCT c.id) customers,COUNT(t.id) repeat_visits,COUNT(t.id)/COUNT(DISTINCT c.id) satisfaction_score FROM business_locations bl JOIN transactions t ON bl.id=t.location_id JOIN contacts c ON t.contact_id=c.id WHERE t.type="sell" GROUP BY bl.id,bl.name ORDER BY satisfaction_score DESC;