Key Takeaways
- ✓Five segment-specific engines compute every public ranking on PrideShow. There are no paid placements, no manual rank overrides, and no advertising weights.
- ✓Each engine publishes its sub-score weights, signal sources, and tier ladder. The numbers on this page match the formulas in src/lib/scoring.ts line-for-line.
- ✓Scores are recomputed nightly by a GitHub Actions cron at 18:00 UTC (01:00 Asia/Bangkok). Source data refreshes (Apify scrapes, Wikipedia infobox passes) are scheduled separately.
- ✓Where a partnership agreement references this page (e.g. Schedule B2 of every signed Master Inclusion Partnership Agreement), PrideShow is bound to give the partner not less than 30 days' written notice of any methodology change that would result in a downward revision of any of their entities' score by more than one tier.
- ✓Methodology version: v1.0, published 29 April 2026. Material changes bump the version and surface a delta summary at the top of this page for at least 90 days.
Every score we publish is computed, not curated. Five segment-specific engines power every ranking on prideshow.org: MNC Inclusion Index, PLC ESG Score, NGO Impact Score, SME Quality Score, and KOL PrideScore. The weights, sub-scores, and signal sources are all published below — verify the math yourself.
The promise
These five engines are the only inputs to ranking on prideshow.org. There are no paid placements, no manual rank overrides, no advertising weights, and no editorial favourites. Every score is re-computed from public data and self-attested signals on a nightly schedule. Where a clause in a partnership agreement references this page, PrideShow is bound to give the partner not less than thirty (30) days' written notice of any methodology change that would result in a downward revision of any of their entities' score by more than one tier.
MNCs — Inclusion Index
The Inclusion Index re-weights ESG signals toward the depth a multinational can demonstrate in Thailand specifically. It does not require SET listing or Thai SEC 56-1 disclosure (which most foreign-HQ MNCs cannot file by definition); instead it rewards multi-property Thai presence, international disclosure adoption, named DEI leadership, and employer scale. Reference implementation: computeMncInclusionScore() in src/lib/scoring.ts.
| Sub-score | Weight | Formula |
|---|---|---|
| Thailand Presence Depth | 25% | Thai child venue count → 1 = 30 pts; 2–4 = 55; 5–14 = 80; 15+ = 100 |
| International Frameworks | 25% | TCFD / CDP / SASB / FTSE4Good / DJSI = 20 pts each, capped at 100 |
| DEI Leadership | 25% | dei_highlights count (1 = 25, 3 = 40, 5 = 55, 7+ = 65) + 35 if any item explicitly mentions LGBTQ+ / Pride / queer / rainbow / sexual orientation. Capped at 100. |
| Audit + Disclosure | 15% | GRI alignment 60 pts. Recent SEC 56-1 (within 2 years) 25 + 15 pts. Capped at 100. |
| Scale Amplifier | 10% | Requires ≥1 DEI policy item. <1k employees = 15; 1k+ = 30; 10k+ = 55; 50k+ = 80; 100k+ = 100. Zero employees or zero DEI items = 0. |
Tier ladder (MNC Inclusion Index)
| Tier | Threshold |
|---|---|
| Platinum | Total ≥ 80 |
| Gold | 65 – 79 |
| Silver | 45 – 64 |
| Unrated | < 45 |
How signals are sourced (MNC)
- Thailand venue count: derived from D1 entities table where parent_entity_id = MNC parent and is_published = 1.
- International framework adoption: boolean columns on esg_scores (tcfd_aligned, cdp_disclosed, sasb_aligned, ftse4good_member, djsi_listed). Sourced from public sustainability disclosures and framework membership lists.
- DEI highlights: JSON array on esg_scores.dei_highlights, populated from corporate sustainability reports, Wikipedia infobox text, and verified claim-flow updates.
- Employee count, GRI alignment, SEC 56-1 filing year: structured fields on esg_scores, populated from corporate filings.
PLCs — ESG Score
The ESG Score is calibrated for SET-listed Thai issuers. It rewards GRI alignment and recent Thai SEC 56-1 ONE REPORT filings (the universal disclosure backbone for the SET), then layers DEI policy depth, supplier diversity, and community investment on top. Reference implementation: computeEsgScore() in src/lib/scoring.ts.
| Sub-score | Weight | Formula |
|---|---|---|
| LGBTQ+ Policy | 30% | dei_highlights count → 25 / 45 / 60 + 25 if any item explicitly mentions LGBTQ+ / Pride / queer / rainbow / sexual orientation + 15 if employer ≥ 10 000 with any DEI. Capped at 100. |
| Supply Chain Diversity | 25% | LGBTQ+ / diverse supplier count: 1+ = 25; 5+ = 50; 15+ = 75; 30+ = 100. |
| Community Investment | 25% | NGO partnerships (1 = 15, 2 = 30, 5 = 50, 10+ = 70) + CBaaS hours (1+ = 10, 50+ = 20, 200+ = 30). Capped at 100. |
| Reporting Transparency | 20% | GRI 50 + SEC 56-1 30 + recency bonus 20 (within 2 years) + TCFD / CDP / SASB / FTSE4Good / DJSI bonuses (15 / 15 / 10 / 10 / 10). Capped at 100. |
Tier ladder (PLC ESG)
| Tier | Threshold |
|---|---|
| Platinum | Total ≥ 80 |
| Gold | 65 – 79 |
| Silver | 45 – 64 |
| Unrated | < 45 |
How signals are sourced (PLC)
- GRI alignment, SEC 56-1 filing year, employee count, parent company: structured fields on esg_scores, populated from SET ONE REPORT (form 56-1) filings and Wikipedia infobox extraction.
- DEI highlights: JSON array, populated from sustainability sections of 56-1 filings and corporate sustainability microsites.
- NGO partnership count and CBaaS hours: structured fields on esg_scores; partnership counts cross-referenced against NGO partner listings on PrideShow.org.
- International framework membership: cross-checked against published TCFD signatory, CDP discloser, SASB-aligned, FTSE4Good index, and DJSI index lists annually.
NGOs — Impact Score
A simple three-pillar measure of how much community work an NGO actually delivers. No weighting magic — every point is earned linearly against benchmarks calibrated against Senior Facilitator NGOs in the directory. Reference implementation: computeImpactScore() in src/lib/scoring.ts.
| Sub-score | Max Points | Formula |
|---|---|---|
| Communities Served | 40 | Linear from 0 to 120 000 unique community beneficiaries |
| Training Hours Delivered | 30 | Linear from 0 to 3 200 documented facilitation hours per year |
| Corporate Clients Served | 30 | Linear from 0 to 180 distinct corporate engagements (CBaaS or otherwise) |
How signals are sourced (NGO)
- Communities served, training hours, and corporate-client counts are self-attested via the dashboard claim flow.
- Senior Facilitator NGOs (Pink-tier) are independently audited annually by PrideShow staff against APCOM and RSAT facilitation logs.
- Self-attested numbers above the platform average for an NGO's scale tier are flagged for manual review before they affect public ranking.
SMEs — Quality Score
Quality combines independent third-party signals (Google rating + review volume) with PrideShow-specific markers (LGBTBE certification + Pink signals derived from Google Business Profile self-identification). Reference implementation: computeQualityScoreV2() in src/lib/scoring.ts.
| Sub-score | Max Points | Formula |
|---|---|---|
| Google Rating | 30 | (rating ÷ 5) × 30. A 4.5★ business earns 27 pts; 4.0★ → 24. |
| Review Volume | 20 | log10(reviewCount + 1) ÷ log10(1 001) × 20. 100 reviews → ~13 pts; 1 000+ → 20. |
| LGBTBE Certification | 15 | Certified 15 / Ally-Verified 9 / Pending 4 / Unclaimed 0. |
| Pink Signals | 15 | LGBTQ+ friendly (5) + Trans safe-space (4) + LGBTQ+-owned (6). Capped at 15. |
| Profile Completeness | 10 | 5 if amenity details + min(serviceCount, 5). |
| Community Signals | 10 | Rating tier (≥ 4.5★ = 5 / ≥ 4.0★ = 3) + review volume (> 100 = 5 / > 20 = 3). Capped at 10. |
How signals are sourced (SME)
- Google rating, review count, opening hours, services, and Pink signals: scraped via Apify Google Maps actor and stored on sme_profiles. The additional_info JSON blob is parsed for "Crowd: LGBTQ+ friendly", "Crowd: Transgender safespace", "From the business: LGBTQ+-owned", and similar self-identification tags.
- LGBTBE certification: tier set by PrideShow staff after the four-step claim wizard at /dashboard/lgbtbe (corporate registry lookup, domain proof, video verification, public challenge window).
- Pink signals derive from Google Business Profile self-attestation by the business owner; PrideShow does not independently verify these except as part of the LGBTBE certification flow.
KOLs — PrideScore
PrideScore measures creator authenticity, audience trust, multi-platform reach, and demonstrated real-world LGBTQ+ community impact. Raw follower count is one input among many — by design, a 5 000-follower micro-creator with 12% engagement on advocacy content can outscore a 1M-follower lifestyle macro-creator. Reference implementation: computePrideScore() in src/lib/scoring.ts.
| Sub-score | Weight | Formula |
|---|---|---|
| Content Authenticity | 35% | Defined niches (15 + 10 or 15 by depth) + recent-post activity (15 or 25) + bio (10) + IG post volume (10 / 15 / 20) + IG business account (10) + TT video volume (5). Capped at 100. |
| Community Trust | 30% | TT engagement rate dominant: 1% = 15, 3% = 25, 5% = 35, 10% = 45, 15%+ = 50. + IG verified (20) + TT verified (20) + scale bonuses (4 / 7 / 10 by total follower tier). Capped at 100. |
| Platform Diversity | 20% | 1 platform = 25, 2 = 55, 3 = 80, 4+ = 100. Active platforms among Instagram, TikTok, YouTube, Facebook. |
| Impact Actions | 15% | Advocacy / rights / community niche match (up to 45) + Bangkok-based (15) + IG external link (15) + IG business category (10) + LGBTQ+ keyword in IG or TT bio (15). Capped at 100. |
Audience tier (by total followers)
| Tier | Threshold |
|---|---|
| Macro creator | ≥ 1 000 000 total followers |
| Mid-tier | 100 000 – 999 999 |
| Micro creator | 5 000 – 99 999 |
| Nano creator | < 5 000 |
How signals are sourced (KOL)
- Instagram + TikTok metrics (followers, posts, engagement rate, verified, bio, business category, external URL): scraped via Apify actors, refreshed quarterly.
- YouTube subscribers and Facebook follower counts: cross-platform reach signals from claimed dashboard inputs.
- Latest posts and content niches: parsed from Apify run output; niches derived from a categorisation pass over recent post captions and hashtags.
- is_bangkok_based: derived from city field in kol_profiles, set during initial scraping or self-edited via /dashboard/entities/[id]/edit.
Letter grade — universal layer above every segment score
On top of every segment-specific score we render a universal letter grade for fast eyeballing in directory cards, profile pages, and outreach previews. The thresholds are the same regardless of segment.
| Letter | Range |
|---|---|
| A+ | ≥ 85 |
| A | 75 – 84 |
| B+ | 65 – 74 |
| B | 55 – 64 |
| C | 45 – 54 |
| D | < 45 |
What we don't score
Equally important as the formulas above is the list of things that cannot influence a public ranking on PrideShow.
- No paid placements. Subscription tier, sponsorship status, and event ticket purchases do not adjust score or rank. Featured rails on directory pages are explicitly labelled as such.
- No manual rank overrides. Staff cannot bump a score up or down. Tier reclassifications happen only when the underlying signal data changes — the next nightly cron picks them up.
- No advertising weight. Spend on PinkMarket workshops, retainer engagements, or PrideShow 2026 sponsorships is invisible to the scoring pipeline.
- No editorial favourites. Stories on the Rert. blog do not lift profile rank. Author opinion is constrained to /rert and never bleeds into the directory.
- No personal data feeds the score. Aggregate Google Business Profile rating and review counts are public; we do not score on individual user behaviour, identity, or PII.
How often this changes
Score recompute
Scores are recomputed nightly by a GitHub Actions cron at 18:00 UTC (01:00 Asia/Bangkok). Each run is logged on the admin scrape jobs table with source score_recompute. Source-data refreshes (Apify scrapes, Wikipedia infobox passes) are scheduled separately.
Methodology version
Currently v1.0, last updated 29 April 2026. Material changes to weights, thresholds, or signals bump the version and surface a delta summary at the top of this page for at least 90 days.
30-day change-notice clause
Where partnership agreements reference this page, PrideShow is bound to give the partner not less than thirty (30) days' written notice of any methodology change that would result in a downward revision of any of their entities' score by more than one tier. Same-tier or upward changes do not trigger the notice but are still surfaced in the change history below.
Change history
- v1.0 · 29 Apr 2026 · First public methodology disclosure across all 5 segments. Bound to all MIPAs in force from this date.
Found a bug, or have a primary-source dataset we should pull in? Write to [email protected] — or claim the affected profile and edit the underlying signals yourself.
Contact researchPrideShow Research
Methodology Team
Written by the PrideShow editorial team in Bangkok. Data-backed, community-informed, and always naming our sources. Want to write for Rert.? Pitch us at [email protected]


