How BeamFlow Scores sellers.json Files
BeamFlow scores every sellers.json file across 2,000+ SSPs. Here's how the scoring works, what factors drive the grade, and how SSPs can improve their rating.

How BeamFlow Scores sellers.json Files
When a DSP evaluates your sellers.json, it doesn't give you a score. It just decides whether to bid or skip. You never see the internal ranking.
BeamFlow makes that evaluation visible.
We crawl and analyze sellers.json files from over 2,000 SSPs and exchanges, cross-referencing 60M+ data rows across the programmatic ecosystem. Every file gets a health score from 0 to 100 based on factors that directly map to how DSPs evaluate supply quality.
This article explains the methodology: what we measure, how each factor is weighted, and what SSPs can do to improve their scores.
Why Score sellers.json at All?
sellers.json is a compliance file. You host it, DSPs read it, verification happens (or doesn't). Most SSPs treat it as infrastructure, not strategy.
But the quality of your sellers.json directly affects how DSPs route spend. SPO algorithms evaluate supply paths, and your sellers.json data feeds those evaluations. An SSP with a clean, complete, transparent file wins more bid opportunities than one with gaps, stale entries, and high confidentiality.
The problem is that SSPs have no visibility into how their file compares. Is 15% confidential good or bad? Are your domain fields accurate? How many of your seller_ids actually match publisher ads.txt entries?
The score answers those questions with a single number backed by detailed breakdowns.
The Four Scoring Factors
1. Completeness (25% weight)
Completeness measures whether every seller entry includes all required and recommended fields with valid data.
What we check:
- seller_id present and non-empty for every entry
- name field populated with a real business name (not placeholder text like "Publisher" or "Account 12345")
- domain field present with a valid, resolvable domain
- seller_type set to PUBLISHER, INTERMEDIARY, or BOTH
- No duplicate seller_ids within the file
An entry missing its domain field is technically valid if marked confidential, but it still reduces your completeness score because it creates a verification gap.
Common completeness problems we see: entries with empty name fields, domains set to "example.com" or the SSP's own domain instead of the seller's domain, and seller_type defaulting to PUBLISHER for accounts that are clearly intermediaries.
2. Transparency (30% weight)
Transparency is the most heavily weighted factor because it has the most direct impact on DSP behavior. This primarily measures your confidentiality ratio: the percentage of entries where is_confidential is set to true (or 1).
How it scales:
- 0-10% confidential: Full transparency score
- 10-20% confidential: Minor penalty
- 20-40% confidential: Moderate penalty
- 40%+ confidential: Severe penalty
We weight transparency highest because confidential entries create a hard ceiling on verification. A DSP can see that seller_id "12345" exists in your file, but if the entry is confidential, they can't verify the seller's identity, domain, or relationship type. The verification chain breaks.
Some confidential entries are justified. Large enterprise publishers sometimes require privacy. But when 40% or more of your sellers are confidential, DSPs can't verify nearly half of the bid requests from your platform. That's a supply quality signal they act on.
3. Accuracy (30% weight)
Accuracy measures how well your sellers.json data aligns with external verification sources, primarily publisher ads.txt files.
What we cross-reference:
- seller_id to ads.txt mapping: For each seller_id in your file, we check how many publisher ads.txt files reference that ID on your domain. Orphaned seller_ids (present in your sellers.json but not in any publisher's ads.txt) suggest stale or incorrect data.
- seller_type alignment: When a publisher lists your domain as DIRECT in their ads.txt, we check whether your sellers.json shows that seller_id as PUBLISHER. Mismatches between DIRECT/PUBLISHER and RESELLER/INTERMEDIARY flag alignment failures.
- Domain verification: We compare the domain field in your sellers.json against the publisher domains that reference that seller_id in their ads.txt. If sellers.json says the domain is "old-domain.com" but the publisher's ads.txt is on "new-domain.com," that's a mismatch DSPs will flag.
Accuracy scoring uses our cross-reference of 220K+ publisher domains. We can tell you exactly which seller_ids have ads.txt support and which ones are floating without any publisher backing them up.
4. Freshness (15% weight)
Freshness tracks how recently the file was updated and whether stale entries persist.
What we measure:
- Last-Modified header: When the file was last changed on the server
- Content change frequency: How often the actual data in the file changes (not just the HTTP headers)
- Stale entry detection: Seller entries that haven't been referenced in any new publisher ads.txt files for 90+ days
Freshness gets the lowest weight because a stable, accurate file that hasn't changed in two weeks is fine. But a file that hasn't changed in six months, while publishers have been adding and removing SSP entries, signals neglect.
We see SSPs that update their sellers.json monthly or quarterly. In a market where publishers add and remove SSP entries weekly, monthly updates mean your file is always partially stale.
How the Score Calculation Works
Each factor produces a sub-score from 0 to 100. The weighted formula:
Overall Score = (Completeness x 0.25) + (Transparency x 0.30) + (Accuracy x 0.30) + (Freshness x 0.15)
A perfect 100 means every entry is complete, non-confidential, verified against publisher ads.txt files, and recently updated. In practice, scores above 90 are excellent. Most major SSPs fall between 60 and 85.
The sub-scores are visible in the detailed breakdown so SSPs can see exactly which factor is dragging their overall score down.
Score Benchmarks Across the Industry
Based on our analysis of 2,000+ sellers.json files:
- Top 10% of SSPs: Score 85+. Low confidentiality, high completeness, strong ads.txt alignment.
- Median SSP: Score 68. Moderate confidentiality (15-25%), some stale entries, occasional domain mismatches.
- Bottom 25%: Score below 55. High confidentiality (40%+), many orphaned seller_ids, infrequent updates.
The gap between the top and bottom quartiles is significant in terms of DSP behavior. DSPs running SPO actively deprioritize supply paths through low-scoring SSPs. The score difference isn't academic. It's a proxy for the spend you're winning or losing.
How SSPs Can Improve Their Score
Reduce confidentiality
This is the highest-impact change. Audit your confidential entries. For each one, ask: is confidentiality a documented business requirement, or was it a default setting nobody questioned?
Most SSPs find that a significant portion of their confidential entries don't need to be confidential. Publishers often don't know they're marked confidential and didn't request it. Switch them to non-confidential and your transparency sub-score improves immediately.
Clean up stale entries
Run your seller list against your active account database. Any seller_id in your sellers.json that doesn't have an active, paying account should be removed. Dead entries are noise that hurts your completeness and accuracy scores.
Fix domain mismatches
Compare the domain field for each seller against the domains that actually reference that seller_id in their ads.txt. When domains don't match (publisher rebranded, wrong domain entered during onboarding), update the field.
Align seller_types with publisher ads.txt
If a publisher lists your SSP as DIRECT in their ads.txt, their seller_id in your sellers.json should have seller_type PUBLISHER. If they list you as RESELLER, the type should be INTERMEDIARY. Fix any misalignments.
Update more frequently
If you're updating monthly, move to weekly. If weekly, move to daily. Automate the file generation from your account database so updates happen whenever seller data changes.
What the Score Doesn't Measure
The score focuses on verifiable, objective data quality. It doesn't measure:
- Inventory quality: Whether the publishers on your platform have good traffic
- Fill rate performance: How well you monetize the inventory you receive
- Commercial terms: Your take rate, payment terms, or contract structure
- Technical integration quality: Latency, timeout rates, or bid response formatting
These are important business metrics, but they're not things a sellers.json file can tell you. The score measures what sellers.json is designed to communicate: seller identity and verification accuracy.
Frequently Asked Questions
How often is my score updated?
We recrawl sellers.json files continuously. Your score updates whenever we detect a change in your file. For most SSPs, this means score updates multiple times per week.
Can I see my score without being an SSP customer?
The overall score is visible in our SSP directory. The detailed breakdown with sub-scores, specific entry-level issues, and improvement recommendations requires the SSP product.
Do you share scores with DSPs?
We don't directly feed scores to DSPs. DSPs run their own evaluations. But the factors we score map to the same factors DSPs evaluate, so a low BeamFlow score correlates strongly with lower DSP trust scores.
What if I disagree with my score?
Contact us. If we're incorrectly interpreting your data (for example, marking an entry as stale when the account is active but just not widely adopted yet), we can investigate and adjust the methodology for edge cases.
Does improving my score guarantee more DSP spend?
No guarantee, but strong correlation. DSPs evaluate supply quality holistically, and sellers.json data is one of their key inputs. A higher score means fewer verification failures, which means more bid opportunities, which means more potential spend.
Related Articles

What Small SSPs Need to Know About AAMP Before It's Too Late
Magnite has a seller agent. PubMatic is building one. The Agent Registry launches March 1. If your SSP isn't preparing for agentic advertising, buyer agents will route around you.

sellers.json Confidentiality: The Revenue Cost SSPs Don't See
Marking sellers as confidential in sellers.json hides their identity from DSPs. That breaks verification, tanks SPO scores, and costs SSPs real money. Here's the data.

Supply Path Optimization: How DSPs Use sellers.json
DSPs use sellers.json to map, score, and prune supply paths. Here's how SPO actually works, what SSPs get cut, and why your sellers.json data determines your share of DSP spend.
Ready to optimize your ads.txt?
Check your domain's supply chain health instantly, free.
Check Your Domain Free