Methodology
Benchmark specs
Exactly what the priors behind every Vidacle run are computed from, and what they can and cannot tell you. This is the trust page — it says the quiet parts out loud.
01 · Dataset
The source data
Priors are computed from the public Hugging Face dataset kuben-developer/tiktok-videos-4b — 27 shards, roughly 4.5 billion rows, about 289 GB of public TikTok video metadata.
Current scope — priors today come from a sample of a single shard (shard 00).
Future work — extending the aggregates across all 27 shards is planned and flagged as such on every run.
Single-shard sampling is why every run carries the caveat Single-shard sample — directional and why we say "directional priors" rather than benchmarks in the strict sense.
02 · Method
Mart, match, judge
The pipeline has three stages and deliberately no more. First, a materialized aggregate "mart" precomputes per-slice statistics from the sample. Second, a heuristic prior-match finds the slice closest to your inputs, widening it step by step (the fallback levels) when the exact slice is too small. Third, an LLM judge scores generated packages against those priors.
There is no virality or GBDT prediction model and no RAG. Vidacle ranks packages relatively and cites what the strongest slice of the data did — nothing more.
03 · Labels
Where category and audience come from
The dataset carries no category labels. Category is inferred from the video's desc text and hashtags via keyword lists across roughly twelve categories — fitness, cooking, beauty, comedy, dance, education, finance, gaming, pets, travel, fashion and tech. Videos matching none fall into other. Inference means some videos are miscategorized; large n is what keeps the aggregates meaningful anyway.
There are no audience labels either. Audience is proxied by country:language — the creator's country paired with the caption language, for example US · English or BR · Portuguese.
04 · Metrics
Goal → metric mapping
Saves → save rate — saves per view, mean across the slice.
Shares → share rate — shares per view, mean across the slice.
Likes → like rate — likes per view, mean across the slice.
Reach → views-per-day — views divided by video age in days, so a week-old video and a year-old video compare fairly.
A base filter keeps the sample honest: videos need at least 100 views to count, and ads are excluded. There is no "follows" goal because the dataset has no follower field — we won't compute a prior we can't measure.
05 · Robustness
Checks the priors carry
Duration buckets — 15s, 30s, 60s, 180s and long — the winning bucket is reported per slice.
Question & CTA lift — the metric difference when a caption asks a question or carries a call to action, versus the slice mean.
Duplicate-caption ratio — how much of the slice reuses the same caption — a spam-signal sanity check on the sample.
Two-fold holdout — the sample is split in two; priors report whether the winning duration, tags and music replicate across both folds. A non-replicating signal is flagged, not hidden.
06 · Honesty
What this is not
Everything Vidacle reports is a directional prior plus a relative ranking. It is never a virality prediction, never a guarantee, and never computed from data we don't describe here. The single-shard scope and the age-normalization behind views-per-day are surfaced as caveats on every run — if a number can't be trusted, the product says so next to the number.