Case Study · Design & Development
RetainScore is a live, indexable research site for employee retention. Every finding shows its source. Pages that cannot be grounded do not enter the search corpus.
Most retention writing on the web is a round number with no method behind it, or a model asked to invent one. An employer trying to learn whether their turnover is high, and why, cannot tell a sourced finding from a slogan. Consultants who want qualified readers have the same problem: traffic that fails a source check is not a lead.
We publish retention research attached to its evidence, and we qualify readers with a diagnostic they can inspect.
RetainScore is live at retainscore.com. A static Next.js frontend on Vercel reads through a FastAPI service on Contabo. The database is dedicated Postgres. The browser never talks to it. Research pages, benchmark cells, a diagnostic, and gated instruments all go through the same API.
At the September 2026 indexing launch the corpus held 1,983 published pages, 1,941 of them benchmark pages built from Statistics Canada tenure data and US Bureau of Labor Statistics quits and wage data. The sitemap admitted 330 URLs on 6 September 2026 and 475 by 11 September. 1,653 cost-of-turnover cells stay noindex on purpose. They still render.
How it's built
Indexable is a grounding verdict. The sitemap and the robots tag follow from the database, not from a publish button.
Database triggers keep an ungrounded page out of the searchable corpus. A separate hold flag covers pages we choose not to rank yet, including the cost-of-turnover cells. The sitemap and the robots tag follow from those two columns. Nothing in the frontend overrides them.
Each finding names its source and its boundary. Evidence grades are a closed set: strong, mixed, limited, insufficient. A monthly quits rate cannot become an annual turnover claim. Copy has to hold up when a reader opens the citation.
The public site is a static Next.js export. FastAPI owns reads, auth, diagnostics, and lead capture. Postgres sits behind the API. A crawler never gets a database connection. A frontend rebuild cannot rewrite the evidence rules.
The diagnostic scores eight factors. Weights come from Rubenstein et al. 2018, |rho| times 100. A reader answers the questions, then reads the research behind the signal. Google and email magic-link sign-in are live.
Gated instruments, consent records, first-touch attribution, and database-level lead deduplication are in production. Buyer conversations have not started. Admin has an account boundary and no dashboard, analytics, or outreach tools yet.
The corpus is built from cited public material: Statistics Canada, the US Bureau of Labor Statistics, and the research literature behind each evidence grade. A reader can open every source. We do not use private methods from other work.
Claim-level verification · publication gates · static Next.js on Vercel · FastAPI on Contabo · dedicated Postgres · eight-factor diagnostic.
What this shows
RetainScore runs on a stack we ship for client work. What is live is the corpus, the gates, the diagnostic, and the capture path. Buyer conversations have not started. Admin has an account boundary and no dashboard, analytics, or outreach tools yet.
We design and build research products, evidence gates, and the demand funnel around them from one studio.