The quality score (0–100) is the platform’s composite reputation metric for influencers. It drives discoverability in brand search results, determines the creator level badge shown on profiles, and can be used by operators to gate campaign access. The system is designed to reward consistent long-term performance rather than short-term bursts of activity.
How the Score is Calculated
The calculation happens in three stages — raw score, multiplier, and display score — and never resets:
- 1
Raw score — an unbounded accumulation of activity points earned from completed projects, positive reviews, on-time deliveries, and platform tenure. The raw score only grows; it is never decremented directly.
- 2
Reputation multiplier — starts at
1.000and is permanently reduced by penalty events (missed deadlines, removed posts, bad reviews, lost disputes). It compounds — each penalty multiplies the current value. It never resets and never increases. Floor is0.001. - 3
Display score — calculated as:
round( 100 × (1 − e−raw/23) × multiplier )
clamped to the range 0–100. The exponential curve means early activity moves the score quickly; sustained high scores require a long, consistent track record across many projects.
Reputation Penalties
These events permanently reduce the reputation multiplier. Penalties compound — a multiplier of 0.97 hit again becomes 0.941, not 0.970.
| Trigger Event | Multiplier Factor | Hook Fired |
|---|---|---|
| Brand review: 1 or 2 stars received | ×0.97 | inzc_review_submitted |
| Posting deadline missed | ×0.95 | inzc_posting_deadline_missed |
| Live post removed (detected by Post Monitor) | ×0.90 | inzc_post_removed |
| Dispute resolved: brand fully refunded | ×0.85 | inzc_dispute_resolved |
Reviews of 3 stars or higher trigger a score recalculation without a penalty — the positive review activity still contributes to the raw score growth.
When the Score Recalculates
The score is automatically recalculated on any of these events:
- A project reaches completed status (
inzc_project_completed) - A brand review is submitted (
inzc_review_submitted) - A dispute is resolved against the influencer (
inzc_dispute_resolved) - A posting deadline is missed (
inzc_posting_deadline_missed) - The Post Monitor detects a removed post (
inzc_post_removed) - The weekly cron sweep fires (
inzc_bulk_recalculate_quality_scores)
Creator Levels
Creator level is an integer (0–5) derived from the display score at recalculation time, stored in wp_inzc_influencer_profiles.creator_level. The badge is shown on influencer profile pages and can be used as a filter in brand search.
| Level | Badge Label | Notes |
|---|---|---|
| 0 | Starter | Default for new accounts. Influencer is hidden from brand discovery search until they have an approved rate card. |
| 1 | Level 1 | Approved rate card present. Accessible even with zero completed projects if display score ≥ inzc_level_threshold_1 (default: 70). |
| 2 | Level 2 | Growing history of completed work. |
| 3 | Level 3 | Reliable, consistent track record. |
| 4 | Pro Creator | High consistency and strong review average. |
| 5 | Top Creator | Platform elite. Sustained excellence over a large body of work. |
The score thresholds for each level transition are set in Redux under Influenzic → Settings:
| Option Key | Default | Unlocks |
|---|---|---|
inzc_level_threshold_1 |
70 | Level 1 (requires approved rate card) |
inzc_level_threshold_2 |
78 | Level 2 |
inzc_level_threshold_3 |
89 | Level 3 |
inzc_level_threshold_pro |
92 | Pro Creator |
inzc_level_threshold_top |
94 | Top Creator |
Bulk Recalculation
Recalculate all influencer scores from admin at Influenzic → Tools → Recalculate Quality Scores. Run this after adjusting level thresholds or importing bulk data. The process runs in the background via WP-Cron and processes influencers in batches — on large installs it may take several minutes.
Quality_Score_Service::apply_penalty( $influencer_user_id, $factor ) directly with a factor between 0 and 1 (e.g. 0.95 for a 5% penalty). Hook into inzc_quality_score_updated (fires after every recalculation, receives $user_id, $display_score, $creator_level) to react to score changes.