Sha256: 9806bb80f6e5bb1651b3e8f4887551a10d02dc692c13e88a5ebf4be3658f7e2d
Contents?: true
Size: 1.53 KB
Versions: 62
Compression:
Stored size: 1.53 KB
Contents
module Workarea module Insights class PromisingProducts < Base class << self def dashboards %w(catalog) end def generate_weekly! results = first_pass results = second_pass if results.blank? create!(results: results.map(&:as_document)) if results.present? end def first_pass Metrics::ProductByWeek .last_week .by_views_percentile(1..70) .where(:views.gt => 20) .where(:conversion_rate.gt => avg_conversion_rate_of_bottom_seven_views_deciles) .order_by(conversion_rate: :desc, views: :desc, _id: :asc) .limit(Workarea.config.insights_products_list_max_results) .to_a end def avg_conversion_rate_of_bottom_seven_views_deciles Metrics::ProductByWeek.last_week.by_views_percentile(1..70).avg(:conversion_rate) end def second_pass Metrics::ProductByWeek .last_week .by_views_percentile(1..70) .where(:views.gte => avg_views_of_bottom_seven_views_deciles) .where(:conversion_rate.gt => avg_conversion_rate_of_bottom_seven_views_deciles) .order_by(conversion_rate: :desc, views: :desc, _id: :asc) .limit(Workarea.config.insights_products_list_max_results) .to_a end def avg_views_of_bottom_seven_views_deciles Metrics::ProductByWeek.last_week.by_views_percentile(1..70).avg(:views) end end end end end
Version data entries
62 entries across 62 versions & 1 rubygems