Class: Testimonials::NpsResponse
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- Testimonials::NpsResponse
- Defined in:
- app/models/testimonials/nps_response.rb
Overview
One answer to "How likely are you to recommend us?" (0–10).
Class Method Summary collapse
-
.score(scope = all) ⇒ Object
The classic Net Promoter Score: %promoters − %detractors, −100..100.
Instance Method Summary collapse
Class Method Details
.score(scope = all) ⇒ Object
The classic Net Promoter Score: %promoters − %detractors, −100..100.
16 17 18 19 20 21 22 23 |
# File 'app/models/testimonials/nps_response.rb', line 16 def self.score(scope = all) total = scope.count return nil if total.zero? promoters = scope.where(score: 9..10).count detractors = scope.where(score: 0..6).count ((promoters - detractors) * 100.0 / total).round end |
Instance Method Details
#detractor? ⇒ Boolean
13 |
# File 'app/models/testimonials/nps_response.rb', line 13 def detractor? = score <= 6 |
#passive? ⇒ Boolean
12 |
# File 'app/models/testimonials/nps_response.rb', line 12 def passive? = score.between?(7, 8) |
#promoter? ⇒ Boolean
11 |
# File 'app/models/testimonials/nps_response.rb', line 11 def promoter? = score >= 9 |