diff --git a/pootle/apps/pootle_statistics/models.py b/pootle/apps/pootle_statistics/models.py index 25a40703c20..bed680a91b9 100644 --- a/pootle/apps/pootle_statistics/models.py +++ b/pootle/apps/pootle_statistics/models.py @@ -638,12 +638,18 @@ def get_paid_wordcounts(self): """ ns = self.wordcount s = self.get_similarity() - translated_words = ns * (1 - s) - if self.rate != 0: - translated_words += self.review_rate * ns * s / self.rate - else: - translated_words += REVIEW_COEF * ns * s / (EDIT_COEF + REVIEW_COEF) + rate = EDIT_COEF + REVIEW_COEF + review_rate = REVIEW_COEF + if self.rate != 0: + rate = self.rate + review_rate = self.review_rate + raw_rate = rate - review_rate + + # if similarity is zero then translated_words would be + # ns * (1 - s), that equals sum of raw_translation and + # review costs divided by translation_rate + translated_words = (ns * (1 - s) * raw_rate + ns * review_rate) / rate translated_words = round(translated_words, 4) reviewed_words = ns