References
OpenAffiliate Score (OAS)
How a program gets scored and ranked, and how to improve a score.
Overview
OAS measures how clearly a program publishes the terms an affiliate needs (Transparency, 70 points) and whether three of those terms protect the affiliate (Partner value, 30 points). It reads only the terms OpenAffiliate verified on the program's own page. It never reads the size of the commission, and no program can pay for a score or a position. OpenAffiliate is maintained by Affitor.
Scores are on /rankings, in the full leaderboard, and in a report per program at /programs/<slug>/oas. The full rules are on the methodology page.
When a program gets a score
Scoring is not instant, and there is no way to score a program by pasting a URL. The order is:
- The program is in the registry: its YAML file was merged (see Submit a Program).
- A maintainer reads the brand's own program page and verifies each term (programs on the Affitor marketplace are verified from the terms the brand publishes there, by a daily sync). A term the page does not state is recorded as Not published, with the date we checked.
- The program gets a number once every check is assessed. Until then its report says Scoring in progress, so a term we have not read yet neither costs points nor earns them.
Only verified, live affiliate programs are scored. Terms verified more than 90 days ago show Scoring in progress until we verify them again. A program with no public application link is scored but not ranked.
The checks
A met check earns its points. A check that is not met, or a term that is not published, earns 0. When two of the brand's own pages disagree on a term, that check is not met until they agree.
| Check | Part | Points | How to meet it |
|---|---|---|---|
| T1Commission stated | Transparency | 12 | Publish the commission as a number: a rate or an amount. |
| T2How long commission lasts | Transparency | 10 | Say how long commission is paid: a number of months, or for the customer's lifetime. |
| T3Cookie or attribution window | Transparency | 10 | Publish the cookie or attribution window in days, or say that it never expires. |
| T4Minimum payout | Transparency | 10 | Publish the minimum payout, or say there is none. |
| T5Payout methods | Transparency | 8 | List the ways affiliates can be paid. |
| T6Payout schedule | Transparency | 8 | Say when payouts are sent: weekly, monthly, on request, or net 30. |
| T7How joining works | Transparency | 6 | Say how applications are approved: automatically or after a review. |
| T8Promotion rules | Transparency | 6 | Publish the promotion rules, or say there are none. |
| V1Cookie of 60 days or more | Partner value | 10 | Keep a referral credited for 60 days or more, or for the customer's lifetime. |
| V2Minimum payout of USD 50 or less | Partner value | 10 | Lower the minimum payout to USD 50 or less, or drop it. |
| V3Paid at least monthly | Partner value | 10 | Pay affiliates at least once a month. |
Not scored yet: refund and chargeback rules, and how well the application link works.
Grades
Each score carries a letter, as a college grade does.
| Grade | Score |
|---|---|
| A+ | 97 to 100 |
| A | 94 to under 97 |
| A- | 90 to under 94 |
| B+ | 87 to under 90 |
| B | 84 to under 87 |
| B- | 80 to under 84 |
| C+ | 77 to under 80 |
| C | 70 to under 77 |
| D+ | 67 to under 70 |
| D | 64 to under 67 |
| D- | 60 to under 64 |
| F | under 60 |
Ranking order
Programs are ranked by their unrounded OAS. Every program has its own position: equal scores are ordered by Partner value, then by the most recently verified terms, then by name A to Z. Every program is ranked by the same rules, whoever runs it and whatever network it runs on.
Machine checks
A report can also show checks read automatically from public data. They are shown beside OAS and are not counted in it, its grade or the ranking. Each reading names its source and lapses 90 days after it was measured.
- A1Program page is live. The program page listed in the registry (its signup_url) answers with HTTP 200 and is not a "not found" page.
- P5Core Web Vitals (mobile). Core Web Vitals on mobile for the brand's website, from PageSpeed Insights: real-user data when Google has it, a lab test otherwise.
- P6Estimated brand search volume. Estimated worldwide searches for the brand reach 1,000 a month (Google Ads estimate).
How to improve a score
Publish the missing terms on your own program page, in plain words. The report lists the gaps that are worth the most points first, and its Prompt to improve gives the same list as text you can hand to your team or an AI agent. Changing the YAML file alone does not change the score: every term is verified against your page.
Ask for a re-check or report a mistake
After you change your program page, or if a check looks wrong, use Report an error on the program's report, or open a Terms changed issue with the program's slug and the URL of the page that states the term. A maintainer verifies the page again and the score follows the verified terms. Nobody edits a score by hand. Re-checks usually happen within a few days.
OAS in the API and MCP
GET /api/programs/{slug} and the MCP tool get_program return an oas object when the program is scored, and oasMachineChecks when there are machine checks to show. status is scored, in_progress or stale, and score is null unless it is scored. Cite reportUrl when you quote a score.
{
"score": 100,
"grade": "A+",
"status": "scored",
"summary": "Every term published, partner terms met",
"checkedAt": "2026-10-20",
"validUntil": "2027-01-18",
"version": "v1",
"reportUrl": "https://openaffiliate.dev/programs/<slug>/oas"
}Other scores on the site
Affiliate Score is the older 0 to 100 score built from commission, cookie and duration. It still orders the main /best list and the featured programs on the homepage, and the score badge at /api/badge/<slug> shows it. The README badge at /badge/<slug>.svg shows the commission, its type and whether the terms are verified, not a score. /rankings uses OAS. SIFT scores social content about a program, not the program itself.