Sha256: b3b6d6cfa02329f7357cec7cbc40dd75ce57eaef99349838dd3267451e194a41

Contents?: true

Size: 1.04 KB

Versions: 62

Compression:

Stored size: 1.04 KB

Contents

module Workarea
  module Insights
    class RepeatPurchaseRate < Base
      class << self
        def dashboards
          %w(people orders)
        end

        def generate_monthly!
          results = [30, 60, 90].reduce([]) do |memo, since|
            purchased = customers_who_purchased(since.days.ago)
            purchased_again = customers_who_purchased_again(since.days.ago)

            memo << {
              days_ago: since,
              purchased: purchased,
              purchased_again: purchased_again,
              percent_purchased_again: (purchased_again / purchased.to_f) * 100
            }
          end

          create!(results: results)
        end

        def customers_who_purchased_again(since)
          Metrics::User
            .where(:first_order_at.gte => since)
            .where('$expr' => { '$gt' => ['$last_order_at', '$first_order_at'] })
            .count
        end

        def customers_who_purchased(since)
          Metrics::User.where(:first_order_at.gte => since).count
        end
      end
    end
  end
end

Version data entries

62 entries across 62 versions & 1 rubygems

Version Path
workarea-core-3.5.27 app/models/workarea/insights/repeat_purchase_rate.rb
workarea-core-3.5.26 app/models/workarea/insights/repeat_purchase_rate.rb
workarea-core-3.4.45 app/models/workarea/insights/repeat_purchase_rate.rb
workarea-core-3.5.25 app/models/workarea/insights/repeat_purchase_rate.rb
workarea-core-3.5.23 app/models/workarea/insights/repeat_purchase_rate.rb
workarea-core-3.4.44 app/models/workarea/insights/repeat_purchase_rate.rb
workarea-core-3.5.22 app/models/workarea/insights/repeat_purchase_rate.rb
workarea-core-3.4.43 app/models/workarea/insights/repeat_purchase_rate.rb
workarea-core-3.5.21 app/models/workarea/insights/repeat_purchase_rate.rb
workarea-core-3.4.42 app/models/workarea/insights/repeat_purchase_rate.rb
workarea-core-3.5.20 app/models/workarea/insights/repeat_purchase_rate.rb
workarea-core-3.4.41 app/models/workarea/insights/repeat_purchase_rate.rb
workarea-core-3.5.19 app/models/workarea/insights/repeat_purchase_rate.rb
workarea-core-3.4.40 app/models/workarea/insights/repeat_purchase_rate.rb
workarea-core-3.5.18 app/models/workarea/insights/repeat_purchase_rate.rb
workarea-core-3.4.39 app/models/workarea/insights/repeat_purchase_rate.rb
workarea-core-3.5.17 app/models/workarea/insights/repeat_purchase_rate.rb
workarea-core-3.4.38 app/models/workarea/insights/repeat_purchase_rate.rb
workarea-core-3.5.16 app/models/workarea/insights/repeat_purchase_rate.rb
workarea-core-3.4.37 app/models/workarea/insights/repeat_purchase_rate.rb