{"release_id":"01a1c502-4ad1-0000-ec62-adc54d3c69aa","chunk_id":"01a1c502-4ccb-7251-966f-2926559dbb0a","file":"176.Bhd7068m.mjs","mappings":"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","names":["stats","hasData","$.derived","$.get","maxBucket","d","url","SITE_URL","breadcrumbLd","jsonLdScript","breadcrumbList","datasetLd","section","root","$.head","$$anchor","div","p","$.first_child","fragment_1","strong","strong_1","div_1","div_2","p_1","div_3","p_2","div_4","bar","div_5","root_3","span","div_6","div_7","$.child","span_1","$.set_text","text_4","$.set_style","$0","p_3","$.sibling","fragment_2","div_8","dim","div_9","root_5","p_4","p_5","text_7","$$render","consequent","p_6","root_6","consequent_1","alternate"],"sources":["../../../../../../src/routes/stats/ai-ratings/+page.svelte"],"sourcesContent":["<script lang=\"ts\">\n\timport { SITE_URL, jsonLdScript, breadcrumbList } from '$lib/seo';\n\n\tlet { data } = $props();\n\tconst stats = $derived(data.stats);\n\tconst hasData = $derived(stats.total > 0);\n\tconst maxBucket = $derived(Math.max(1, ...stats.distribution.map((d) => d.count)));\n\n\tconst url = `${SITE_URL}/stats/ai-ratings`;\n\tconst breadcrumbLd = jsonLdScript(\n\t\tbreadcrumbList([\n\t\t\t{ name: 'Home', url: SITE_URL },\n\t\t\t{ name: 'Stats', url: `${SITE_URL}/stats` },\n\t\t\t{ name: 'AI Rating Stats', url }\n\t\t])\n\t);\n\t// Proprietary Dataset — our own first-party data, the strongest AEO/citation\n\t// asset. Only emitted when there is real data backing the marked-up values.\n\tconst datasetLd = $derived(\n\t\thasData\n\t\t\t? jsonLdScript({\n\t\t\t\t\t'@context': 'https://schema.org',\n\t\t\t\t\t'@type': 'Dataset',\n\t\t\t\t\t'@id': `${url}#dataset`,\n\t\t\t\t\tname: `RateMyD AI rating distribution (n=${stats.total})`,\n\t\t\t\t\tdescription: `Aggregate distribution of RateMyD AI image-rating scores (0–10) across six dimensions, from ${stats.total} completed self-reported submissions. Distinct from clinical size measurement.`,\n\t\t\t\t\turl,\n\t\t\t\t\tcreator: { '@type': 'Organization', name: 'RateMyD', url: SITE_URL },\n\t\t\t\t\tpublisher: { '@type': 'Organization', name: 'RateMyD', url: SITE_URL },\n\t\t\t\t\tmeasurementTechnique: 'Automated AI image scoring (0–10 across six dimensions)',\n\t\t\t\t\tvariableMeasured: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'@type': 'PropertyValue',\n\t\t\t\t\t\t\tname: 'Overall score (mean)',\n\t\t\t\t\t\t\tvalue: stats.avg.toFixed(2),\n\t\t\t\t\t\t\tunitText: 'score 0-10'\n\t\t\t\t\t\t},\n\t\t\t\t\t\t...stats.dimensions.map((d) => ({\n\t\t\t\t\t\t\t'@type': 'PropertyValue',\n\t\t\t\t\t\t\tname: `${d.name} (mean)`,\n\t\t\t\t\t\t\tvalue: d.avg.toFixed(2),\n\t\t\t\t\t\t\tunitText: 'score 0-10'\n\t\t\t\t\t\t}))\n\t\t\t\t\t]\n\t\t\t\t})\n\t\t\t: ''\n\t);\n</script>\n\n<svelte:head>\n\t{@html breadcrumbLd}\n\t{@html datasetLd}\n</svelte:head>\n\n<section class=\"relative min-h-screen overflow-hidden px-5 pt-28 pb-20 md:pt-32 md:pb-28\">\n\t<div\n\t\tclass=\"pointer-events-none absolute inset-0 bg-[linear-gradient(rgba(255,255,255,.006)_1px,transparent_1px),linear-gradient(90deg,rgba(255,255,255,.006)_1px,transparent_1px)] bg-[size:60px_60px]\"\n\t></div>\n\t<div\n\t\tclass=\"pointer-events-none absolute -top-40 right-0 h-[500px] w-[500px] rounded-full bg-coral/[.04] blur-[150px]\"\n\t></div>\n\n\t<div class=\"relative mx-auto max-w-3xl\">\n\t\t<!-- breadcrumb -->\n\t\t<nav class=\"mb-6 flex items-center gap-2 text-xs text-muted/50\">\n\t\t\t<a href=\"/\" class=\"hover:text-coral\">home</a>\n\t\t\t<span>/</span>\n\t\t\t<a href=\"/stats\" class=\"hover:text-coral\">stats</a>\n\t\t\t<span>/</span>\n\t\t\t<span class=\"text-muted/70\">AI rating stats</span>\n\t\t</nav>\n\n\t\t<p class=\"mb-4 text-xs font-medium uppercase tracking-[0.2em] text-muted/60\">\n\t\t\tfirst-party data · updated daily · free\n\t\t</p>\n\t\t<h1\n\t\t\tclass=\"mb-4 font-display text-[clamp(2rem,5vw,3.5rem)] font-bold leading-[0.95] tracking-tighter\"\n\t\t>\n\t\t\tAI Rating <span class=\"text-coral\">Stats</span>\n\t\t</h1>\n\n\t\t{#if hasData}\n\t\t\t<p class=\"mb-10 max-w-2xl text-base text-muted/70 md:text-lg\">\n\t\t\t\tAcross <strong class=\"text-text\">{stats.total.toLocaleString()}</strong> rated submissions,\n\t\t\t\tthe average overall RateMyD AI score is\n\t\t\t\t<strong class=\"text-text\">{stats.avg.toFixed(1)} / 10</strong>. Below is the full score\n\t\t\t\tdistribution and the average of each of the 6 dimensions the AI scores. This is self-reported\n\t\t\t\tAI-rating data — separate from the clinical\n\t\t\t\t<a href=\"/tools/penis-size-calculator\" class=\"text-coral hover:underline\"\n\t\t\t\t\t>size percentile calculator</a\n\t\t\t\t>.\n\t\t\t</p>\n\n\t\t\t<!-- headline -->\n\t\t\t<div class=\"mb-10 grid grid-cols-2 gap-4 md:grid-cols-3\">\n\t\t\t\t<div class=\"rounded-xl border border-coral/30 bg-coral/5 p-4\">\n\t\t\t\t\t<p class=\"text-xs font-semibold uppercase tracking-wider text-coral/80\">Average score</p>\n\t\t\t\t\t<p class=\"font-display text-3xl font-bold text-text\">{stats.avg.toFixed(1)}</p>\n\t\t\t\t\t<p class=\"text-xs text-muted/50\">out of 10</p>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"rounded-xl border border-border bg-surface/30 p-4\">\n\t\t\t\t\t<p class=\"text-xs font-semibold uppercase tracking-wider text-muted/60\">Ratings analysed</p>\n\t\t\t\t\t<p class=\"font-display text-3xl font-bold text-text\">{stats.total.toLocaleString()}</p>\n\t\t\t\t\t<p class=\"text-xs text-muted/50\">completed, scored</p>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"rounded-xl border border-border bg-surface/30 p-4\">\n\t\t\t\t\t<p class=\"text-xs font-semibold uppercase tracking-wider text-muted/60\">Dimensions</p>\n\t\t\t\t\t<p class=\"font-display text-3xl font-bold text-text\">6</p>\n\t\t\t\t\t<p class=\"text-xs text-muted/50\">scored per photo</p>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<!-- distribution -->\n\t\t\t<h2 class=\"mb-4 font-display text-2xl font-bold tracking-tight md:text-3xl\">\n\t\t\t\tScore distribution\n\t\t\t</h2>\n\t\t\t<div class=\"mb-10 space-y-3\">\n\t\t\t\t{#each stats.distribution as bar (bar.bucket)}\n\t\t\t\t\t<div class=\"flex items-center gap-3\">\n\t\t\t\t\t\t<span class=\"w-12 shrink-0 text-right text-xs font-semibold text-muted/60\">{bar.bucket}</span>\n\t\t\t\t\t\t<div class=\"h-6 flex-1 overflow-hidden rounded-md bg-surface/40\">\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclass=\"h-full rounded-md bg-coral/70\"\n\t\t\t\t\t\t\t\tstyle=\"width: {Math.round((bar.count / maxBucket) * 100)}%\"\n\t\t\t\t\t\t\t></div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<span class=\"w-16 shrink-0 text-xs text-muted/50\">{bar.count.toLocaleString()}</span>\n\t\t\t\t\t</div>\n\t\t\t\t{/each}\n\t\t\t</div>\n\n\t\t\t<!-- per-dimension -->\n\t\t\t{#if stats.dimensions.length}\n\t\t\t\t<h2 class=\"mb-2 font-display text-2xl font-bold tracking-tight md:text-3xl\">\n\t\t\t\t\tAverage by dimension\n\t\t\t\t</h2>\n\t\t\t\t<p class=\"mb-4 text-xs text-muted/50\">\n\t\t\t\t\tBased on a sample of {stats.sample.toLocaleString()} recent ratings.\n\t\t\t\t</p>\n\t\t\t\t<div class=\"mb-10 grid grid-cols-2 gap-3 md:grid-cols-3\">\n\t\t\t\t\t{#each stats.dimensions as dim (dim.name)}\n\t\t\t\t\t\t<div class=\"rounded-xl border border-border bg-surface/30 p-4\">\n\t\t\t\t\t\t\t<p class=\"text-xs font-semibold uppercase tracking-wider text-muted/60\">{dim.name}</p>\n\t\t\t\t\t\t\t<p class=\"font-display text-2xl font-bold text-text\">{dim.avg.toFixed(1)}</p>\n\t\t\t\t\t\t\t<p class=\"text-xs text-muted/50\">avg / 10</p>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t{/each}\n\t\t\t\t</div>\n\t\t\t{/if}\n\t\t{:else}\n\t\t\t<p class=\"mb-10 max-w-2xl text-base text-muted/70 md:text-lg\">\n\t\t\t\tAggregate AI-rating stats are warming up and will appear here shortly. In the meantime, try the\n\t\t\t\t<a href=\"/tools/penis-size-calculator\" class=\"text-coral hover:underline\"\n\t\t\t\t\t>size percentile calculator</a\n\t\t\t\t> or browse <a href=\"/stats\" class=\"text-coral hover:underline\">average size by country</a>.\n\t\t\t</p>\n\t\t{/if}\n\n\t\t<!-- methodology / honesty -->\n\t\t<div class=\"space-y-6\">\n\t\t\t<h2 class=\"font-display text-2xl font-bold tracking-tight md:text-3xl\">How this is measured</h2>\n\t\t\t<p class=\"text-base text-muted/80\">\n\t\t\t\tEvery submission is scored 0–10 across six dimensions — proportions, aesthetics, grooming,\n\t\t\t\tphoto quality, lighting, and overall vibe — by RateMyD's AI. The numbers above are aggregated\n\t\t\t\tacross all completed ratings and refreshed daily. They reflect self-selected uploads to a\n\t\t\t\trating app, so they are not a representative sample of any population — they describe what gets\n\t\t\t\tsubmitted here, nothing more.\n\t\t\t</p>\n\n\t\t\t<h2 class=\"font-display text-2xl font-bold tracking-tight md:text-3xl\">\n\t\t\t\tThis is not clinical data\n\t\t\t</h2>\n\t\t\t<p class=\"text-base text-muted/80\">\n\t\t\t\tThese are aesthetic AI scores, not physical measurements. For peer-reviewed size statistics and\n\t\t\t\twhere you stand against 15,521 clinically-measured men, use the\n\t\t\t\t<a href=\"/tools/penis-size-calculator\" class=\"text-coral hover:underline\"\n\t\t\t\t\t>size percentile calculator</a\n\t\t\t\t>\n\t\t\t\tor browse <a href=\"/stats\" class=\"text-coral hover:underline\">average size by country</a>.\n\t\t\t</p>\n\t\t</div>\n\n\t\t<!-- CTA -->\n\t\t<div\n\t\t\tclass=\"mt-12 rounded-2xl border border-coral/20 bg-gradient-to-br from-coral/10 to-transparent p-6 md:p-8\"\n\t\t>\n\t\t\t<p class=\"mb-2 font-display text-2xl font-bold tracking-tight\">See your own scores</p>\n\t\t\t<p class=\"mb-5 text-sm text-muted/70\">\n\t\t\t\tGet the full 6-dimension AI breakdown of your own photo — first rating free, no card required.\n\t\t\t\tYour photo is deleted instantly after the AI processes it.\n\t\t\t</p>\n\t\t\t<a\n\t\t\t\thref=\"/rate\"\n\t\t\t\tclass=\"inline-flex items-center gap-2 rounded-full bg-coral px-6 py-3 text-sm font-semibold text-white transition-colors hover:bg-coral-dark\"\n\t\t\t>\n\t\t\t\tget the full AI rating →\n\t\t\t</a>\n\t\t</div>\n\n\t\t<div class=\"mt-8\">\n\t\t\t<a href=\"/stats\" class=\"text-sm text-muted/60 hover:text-coral\">← all stats</a>\n\t\t</div>\n\t</div>\n</section>\n"],"version":3}