Ranking rules
Version 2026.10.04 · Effective 4 Oct 2026
Changes in this version: v0 for gateway review
CreatorPodium is a paid ranking: a profile's position reflects the credit paid to CreatorPodium for it, not popularity, quality or endorsement. These are the rules that decide every position.
How rank is decided
Source: specs/foundations.md §1.4 (R1, R2, R3, R4, R5)
Visible set V(platform) = listings with platform_id = platform AND status = 'active' AND total_credit_paise > 0.
Order of V: total_credit_paise DESC, then total_changed_at ASC (the listing that has held its current total longest ranks higher), then first_listed_at ASC, then id ASC. This is a total order.
rank(L) = 1 + |{ M ∈ V : M precedes L under R2 }|. Category rank applies R1–R3 to V restricted to one category_id.
total_changed_at = created_at of the listing's most recent ledger entry (credit, refund, chargeback or chargeback_reversal).
Listings outside V keep their ledger and totals; they are simply not ranked or shown on boards.
Published wording
Source: specs/foundations.md §1.4 (R6)
Profiles rank by lifetime credit — the total of confirmed payments to CreatorPodium for that profile, before payment-processing fees and after refunds and chargebacks. Equal totals: the profile that has held that total longest ranks higher; then the one listed first; then the lower listing number.
How credit is calculated
Credit is the amount paid, counted towards the lifetime credit of the profile you boost.
Source: specs/foundations.md §1.5 (C1, C2, C3, C4, C5, C6)
Credit for a payment = floor(amount_minor × credit_num / credit_den) using the fx_credit_rates row (version fixed on the checkout intent at creation, currency of the payment). INR v1: 1/1.
Credit is the full amount paid, including any tax, before gateway fees. Fees never reduce credit.
Refunds and chargebacks reduce credit per §1.7; nothing else reduces credit. Credit never expires.
Credit has no monetary value: it cannot be converted to money, transferred between listings, withdrawn, redeemed or used as payment. No table, API or UI offers any of these.
Per-payment limits come from fx_credit_rates: min_amount_minor ≤ amount_minor ≤ max_amount_minor. INR v1: min 75,000 paise (₹750), max 10,000,000 paise (₹1,00,000); INR amounts are whole rupees (amount_minor % 100 = 0). Every top-up is a separate payment and meets the same minimum. Foreign currencies (phase 11): whole major units (amount_minor % 10^minor_unit_exponent = 0); min = the smallest whole major unit whose C1 credit ≥ 75,000 paise, max = the largest whole major unit whose C1 credit ≤ 10,000,000 paise.
fx_credit_rates rows are immutable. A new rate = a new version whose effective_from ≥ published_at
- 7 days; intents created before effective_from use the prior version. Never retroactive. A currency with no active row (every foreign currency before v2's effective_from) is refused at intent creation.
Currency and rate table
Only INR payments are accepted. No foreign-currency rate is published; a currency with no active rate is refused, as the last rule above states.
Estimates
Estimates can change before your payment completes. The amount needed to pass a profile, the pass chip and the note shown with every estimate follow these rules:
Source: specs/foundations.md §1.10 (E2, E3, E6)
amount_to_beat(T_L, T_target) in whole rupees = min_rupees when T_target < T_L, else max(min_rupees, floor((T_target − T_L) / 100) + 1), with T_target − T_L computed by safeAdd. Ties go to incumbents (R2: after a payment L's total_changed_at is the newest), so a payer must exceed, not equal, the target total.
Pass chip for L at rank r ≥ 2: amount_to_beat(T_L, T_(r−1)). No pass chip at rank 1.
Every estimate response carries asOf (ms) and the note "Estimate — positions can change before your payment completes." The status page reports the actual rank after credit.
Changes to these rules
Each legal document shows its version, its effective date and a summary of changes. Credit rates never change after they are published: a new rate is a new version that takes effect at least 7 days after it is published and is never retroactive (rule C6 above).