What the metric means
Completion rate is the share of video plays that reach the end within the reporting context that produced the number.
Retention metrics, without invented numbers
Completion rate TikTok data describes the share of video plays that reach the end within a specific reporting context. Postdom cannot substantiate a universal “good” rate, so compare each video with your own length-matched history. Postdom currently has no evidence-backed TikTok completion, total-watch, or average-watched value; those fields remain null, not zero.
Completion percentage is a supplied normalized metric in Postdom: when an evidence-backed provider value exists, Postdom can retain it. Postdom does not derive completion percentage from views.
Completion rate is the share of video plays that reach the end within the reporting context that produced the number.
For TikTok today, Postdom has no evidence-backed completion, total-watch, or average-watched value. Each remains null, not 0.
Use your own videos of similar length as the baseline. A universal target would ignore that viewing behavior changes with video length.
About TikTok One Project Reporting documents video completion rate, total play time, and average view time for that project-reporting context. Use the relevant official TikTok reporting surface when you need that value.
Postdom's null result is limited to its current evidence-backed data path. It is not a claim that TikTok exposes no completion or watch reporting in TikTok products or other surfaces.
watch_time_s
The total watch time recorded for the video, measured in seconds. It is not an average per viewer.
Current TikTok stateUnavailable in Postdom
avg_watch_pct
The average share of the video watched, expressed as a percentage when an evidence-backed value exists.
Current TikTok stateUnavailable in Postdom
completion_pct
A nullable provider-derived completion percentage. Postdom does not invent a completed-views formula when the source does not provide one.
Current TikTok stateUnavailable in Postdom
Platform coverage
These cells come from Postdom's core availability matrix. A state describes coverage; it does not promise a populated value in every response.
| Platform | watch_time_s | avg_watch_pct | completion_pct |
|---|---|---|---|
| TikTok | Unavailable in PostdomCore state: never. Postdom's current evidence-backed data path returns null. This is not a claim that the platform has no reporting surface. | Unavailable in PostdomCore state: never. Postdom's current evidence-backed data path returns null. This is not a claim that the platform has no reporting surface. | Unavailable in PostdomCore state: never. Postdom's current evidence-backed data path returns null. This is not a claim that the platform has no reporting surface. |
| Instagram Reels | AvailableA usable response can still contain null; available is not a value guarantee. | EstimableThis state does not promise that Postdom has computed a value. | EstimableThis state does not promise that Postdom has computed a value. |
| YouTube Shorts | AvailableA usable response can still contain null; available is not a value guarantee. | Delayed 2–3 daysThis state describes expected coverage, not a delivery guarantee. | Delayed 2–3 daysThis state describes expected coverage, not a delivery guarantee. |
| UnverifiedPostdom does not publish an availability claim for this field. | UnverifiedPostdom does not publish an availability claim for this field. | UnverifiedPostdom does not publish an availability claim for this field. | |
| Facebook Reels | UnverifiedPostdom does not publish an availability claim for this field. | UnverifiedPostdom does not publish an availability claim for this field. | UnverifiedPostdom does not publish an availability claim for this field. |
| X | UnverifiedPostdom does not publish an availability claim for this field. | UnverifiedPostdom does not publish an availability claim for this field. | UnverifiedPostdom does not publish an availability claim for this field. |
| Snapchat Spotlight | UnverifiedPostdom does not publish an availability claim for this field. | UnverifiedPostdom does not publish an availability claim for this field. | UnverifiedPostdom does not publish an availability claim for this field. |
| Threads | UnverifiedPostdom does not publish an availability claim for this field. | UnverifiedPostdom does not publish an availability claim for this field. | UnverifiedPostdom does not publish an availability claim for this field. |
| Bluesky | UnverifiedPostdom does not publish an availability claim for this field. | UnverifiedPostdom does not publish an availability claim for this field. | UnverifiedPostdom does not publish an availability claim for this field. |
Every cell is derived from @postdom/core. The reader-facing explanation deliberately scopes each state to Postdom instead of turning it into a broad claim about a platform's other products or reports.
Read the fields literally
For the secondary question average watch time TikTok, Postdom models total watch seconds in watch_time_s and average watched percentage in avg_watch_pct. That is not average-watch seconds: Postdom has no field for that measure.
A value of 0 is real data and stays zero when the metric's availability allows it. It belongs in a calculation.
A value of null means there is no evidence-backed number for that observation. It must be excluded rather than counted as zero.
Use the source of truth
The code source is @postdom/core, backed by Postdom's internal metric-availability evidence record. The public documentation explains the same states and how missing values should be handled.
No. Postdom currently normalizes TikTok watch_time_s, avg_watch_pct, and completion_pct to null with the availability state never. That describes Postdom's current evidence-backed data path; it is not a claim that TikTok lacks completion or watch reporting in TikTok products or other reporting surfaces.
No. Zero is an observed numeric value. Null means Postdom has no evidence-backed value for that field. Converting null to zero would make an unknown result look measured and would distort comparisons and aggregates.
Postdom models total watch seconds as watch_time_s and average watched percentage as avg_watch_pct. It does not model average-watch seconds, and both TikTok fields currently normalize to null with state never.
Postdom cannot substantiate a universal good-rate threshold from its evidence. Use your own length-matched historical videos as the baseline, then compare like with like. Postdom's current TikTok completion_pct value is null, so this page will not turn an unsupported number into a target.
Coverage differs by field. Postdom classifies Instagram watch_time_s as available and its percentage fields as estimable. YouTube watch_time_s is available, while its percentage fields are delayed. Those states do not guarantee that every response contains a value.