What we can prove — and how to check it
Every number on this page is a recorded run with a date, a method, and a source you can open. We publish our QC scores — including the low ones — our indexing status, and the mechanics behind them. When we don't have a number yet, we say so instead of inventing one.
This is the same rule set that runs through the whole site: no fabricated data, no invented testimonials, no ranking or traffic promises. Our principles →
How we score
Scoring is a rule-based 4-dimension quality gate, not a vibe check:
Three samples, median kept, dated
Each diagnostic score is computed as the median of 3 samples against the same rubric, with an in-process cache keyed by the text and the engine identity. Within one process the same article returns the same total — that is what makes every public QC number below re-checkable. But a fresh run of identical text can still land one tier apart: we measured that and publish the spread in section 3 rather than claiming a fixed number.
ForgeRank's own pass lines run 7.0–8.0 depending on vertical (strong-template 8.0 · mid 7.5–7.8 · weaker 7.0). "Passing" means clearing the piece's own bar — it is a quality claim about the text, not a prediction about search results.
Methodmedian-of-3, rubric-weighted 4-dimension diagnostic · Enginesame engine powers the free Analyzer. See a real report →
Re-check any published page yourself
Every QC score on this page and on /blog comes from the same engine. Paste the published text into the free Analyzer demo and re-run it with the same engine — no special access, no extra tool.
What we've published — with real scores
68 content pages live on this site, every one carrying its real QC score on the blog index. Low scores are shown too — a score board that only shows winners isn't a score board. Both counts and scores below are generated from the record files on every page load, not typed in.
Editorial essays (33) — real QC record
Sourcescripts/_blog_editorial_qc.json — generated by the official scorer (scripts/_score_editorials.py), never hand-edited; the same file the /blog badges read. Editorial range: 7.5–9.2. If an editorial is rewritten, this file is re-run and this page is updated — never guessed. Every row keeps the date of its own run, so a newer run does not silently upgrade an older record.
Measured noiseOn 2026-09-12 we re-ran the official scorer over the seven editorials already in the record: five returned 7.2–7.5 and two reproduced their recorded value exactly. On identical text with an identical engine fingerprint, repeated runs moved by 0.3 and 0.6 in two text pairs and matched exactly in five runs across two other texts. A difference inside one tier is therefore measurement noise, so we keep each row's own run date instead of overwriting an older record with a newer number.
Trend-guide library (35) — real per-page scores
35 QC-scored trend guides are published under the Trends hub (Google, YouTube, X, LinkedIn) and indexed on /blog. Real score range across the library: 7.5–8.5. Each guide's score is read from that guide's own QC record meta, not from a lookup table.
Sourceeach page's record file (scripts/_meta_articles / _trend_articles/*.txt, # diag=…) via the same reader the /blog badges use (backend/pages.py:_blog_qc_meta). Low-scoring pages stay listed.
What we've verified externally
Google indexing — 2026-09-09 milestone
On 2026-09-09, 63 of 66 public site URLs were serviceable in Google Search Console — ≈95.5%. This includes the marketing pages, both trend hubs, the tutorial/book funnel, all 7 editorials that existed on that date, and the QC topic pages.
Two calibers, same date, both stated: the milestone was counted against the full 66-URL sitemap. On the same day's detail sheet the sitemap stood at 61 URLs with 38 confirmed indexed and 19 still pending; the remaining entries were added with the newest 5 pages, and the closing count was 63/66. We report the number with the date and the method so it can't be mistaken for a guarantee.
What this milestone does not say: it was counted against the 66-URL sitemap of that date. The production sitemap now lists 94 URLs (counted from the sitemap this site actually serves, at render time), so ≈95.5% is a dated record of that day's set — not today's coverage. It has not been re-measured, because we only publish indexing numbers we have actually inspected in Search Console; a crawl of the larger sitemap is still outstanding.
Date2026-09-09 · MethodGoogle Search Console URL inspection of the site's sitemap URLs, manual per-URL check · Sourcemilestone record in the repo (.workbuddy/memory/2026-09-07.md) + same-day checklist (sourcebook/GOOGLE_INDEX_CHECK_20260913.md (filename keeps the pre-alignment date), 38/61 caliber).
Verify it yourself: the same public sitemap is served at /sitemap.xml, and any URL on it can be checked in Google Search Console. We report indexing status — we do not report rankings or traffic.
Reproducibility — what holds, and what we measured instead of assuming
Within one process, the same text returns the same total: median-of-3 plus a cache keyed by the text and the engine identity. Scores are also tied to the rubric version at run time, so if the rubric improves, old runs keep their own date-stamped record — which is why every number on this page carries a date.
What we measured, not what we assumed: re-running the full editorial record on 2026-09-12 returned 7.2–7.5 for five pages that had been recorded at 8.0–8.2, while two reproduced exactly. On identical text with an identical engine fingerprint, repeated runs differed by 0.6 and 0.3 in two text pairs and matched exactly in five runs across two other texts: the spread depends on the text and the draw, and it is one to two dimension steps at worst. So the median reduces single-sample noise, it does not eliminate run-to-run variance: treat a difference of one tier as noise, and read a score as a dated reading of one run, which is how we label it. Since 2026-09-12 every score row also records the server's own model build fingerprint, so a change on the model side can be seen instead of guessed.
What we don't do
- Guarantee rankings or traffic. No "rank in X days", no promised positions. Search and platform distribution depend on hundreds of factors beyond a text's quality — we never claim a score predicts an outcome.
- Guarantee any AI-detection result. We are a quality gate, not a detector, and we never promise a draft will pass or bypass any detector.
- Invent data, statistics, quotes, testimonials or case studies. If we don't have a real number, the field stays empty — see the empty-vs-fake rule on the homepage.
- Fake or inflate scores. Low QC scores stay visible on /blog and here. We don't "repair" a score after the fact; we fix the text and re-run the same gate, logging the new run.
- Hide methods or dates. Every data point on this page carries a date and a method. If a number can't be sourced, it doesn't go on the page.
- Claim "100% human" or bypass capabilities. We clean AI-sounding phrasing with a machine lint + rewrite pass and show what was cleaned — we don't claim invisibility to detection.
Data caliber & change log
Every claim on this page follows one format: data point · method · date · source. When a number changes — because a page was rewritten, the sitemap grew, or Google re-crawled — we add a row here rather than silently editing.
| Data point | Method | Date | Source |
|---|---|---|---|
| Editorial QC scores (7 pages, 8.2–7.8) | Rule-based 4-dimension diagnostic, median-of-3 | 2026-09-08 | scripts/_blog_editorial_qc.json |
| Trend-guide QC scores (35 pages, 7.0–8.5) | Per-page record meta read at render time | 2026-09-12 (re-checked) | _trend_articles/_meta_articles txt meta |
| Indexing 63/66 ≈ 95.5% | GSC per-URL inspection of sitemap URLs | 2026-09-09 | milestone record + checklist (38/61 caliber, same date) |
| Same-text determinism | median-of-3 + process cache (engine property) | running | backend/quality/diagnostic.py |
| Change log | What changed | Date |
|---|---|---|
| v1 · QC audit | Unified the washing-machine guide's QC display to the record value 8.2 (a prior marketing card showed a stale 8.0; an older demo screenshot card showed a historical 8.5 run) — one number per page, from one file. | 2026-09-09 |
Don't take our word for it
Re-run any published text through the same engine, read the raw QC record files behind the scores, and check the indexing milestone against Search Console. If you find a discrepancy, that's a bug — tell us and we'll fix the record, not the page.
Re-run a score with the same engine →Browse the scored library → · Open a real report → · Read how the whole thing was built →