Scoring specification · version 1.0.0
How the Ramola AEO Index is scored
This page is the specification. It is published before results so the method can be argued with before anyone has a score to defend. If you think a weight is wrong, you can point at the exact number.
The four dimensions
A domain’s total is the weighted sum of four dimension scores, each 0–100 before weighting. Weights sum to 100.
Citation share
40% of totalWhen an engine answers a category question, how often is this domain the source it names?
What it measures
- Share of category prompts where the domain is cited at all
- Share where it is the first or only source named
- Consistency of citation across engines rather than a single outlier
Extractability
25% of totalCan a model lift a clean, self-contained claim off the page?
What it measures
- Answer-shaped structure — question headings, direct opening claims
- Claims that survive being quoted without surrounding context
- Content reachable without executing JavaScript
Evidence and attribution
20% of totalIs there a reason for a model to trust and attribute this source?
What it measures
- Named authors with verifiable credentials
- Primary data, methodology, or original research rather than restatement
- Corroboration of the domain's claims on independent sources
- Explicit dating and revision history
Machine readability
15% of totalIs the entity and its expertise legible to a parser?
What it measures
- Valid, non-contradictory structured data (Organization, Article, FAQ, Person)
- Stable entity identity across the site and off it
- Crawler access for answer-engine user agents
- Clean canonical, sitemap, and status-code hygiene
Weighted total
total = Σ (dimension_raw × dimension_weight ÷ 100), rounded to 1 decimal
citation×40 + extractability×25 + evidence×20 + machine×15
Rules we hold ourselves to
Runs are immutable
A run id is permanent. Re-scoring produces a new run rather than editing an old one, so a number cited last quarter still resolves to that number. Corrections publish as a new run with a note; we do not silently rewrite history.
Missing data scores zero, it does not drop out
If a dimension could not be probed, it scores 0 rather than being removed from the denominator. Otherwise a domain we failed to measure would outrank one we measured and found lacking.
Unreachable engines are named, not hidden
Every run records which engines responded and which were configured but unreachable, with the reason. A run never quietly scores three engines and presents it as four.
We are in our own cohort
Ramola is scored under the same probes as every other domain, and the result publishes whatever it says. A benchmark whose author is exempt from it is a sales asset wearing a lab coat.
Prompts are fixed before the run
The question set is defined and frozen before probing begins. Prompts are not tuned after seeing results, which is the easiest way to accidentally manufacture a favourable finding.
Version increments break comparability, not continuity
When a weight or measure changes materially, the methodology version increments. Old runs keep their original version stamp, and cross-version totals are not presented as trends.
Machine-readable access
Every run is available as JSON under a permissive licence. Cite it, mirror it, or re-analyse it — attribution to https://ramola.ai is all we ask.
GET https://ramola.ai/api/index/runs # all runs
GET https://ramola.ai/api/index/runs/<run-id> # one run, full detail
GET https://ramola.ai/api/index/methodology # this spec, as data
Disagree with something here?
That is the point of publishing it. If you think a weight is wrong, a measure is unfair, or a cohort is badly drawn, tell us and we will engage with the specific argument — publicly, and with a version bump if you are right.
Send us the critique