Docs

Insights and post quality

Output, on-time publishing and quality scores, per site.

The Insights page (Dashboard → Insights) shows, per site or across all sites, for 7, 30 or 90 days: how many posts went out, how many scheduled posts went out on time, the average quality score, and missed posts. Every number comes from records Pressbotics holds. Nothing is a traffic prediction.

Post quality score

When a post is published, Pressbotics reads the live page (not the text the agent sent) and scores it on up to eight checks. The score is passed ÷ applicable.

CheckPasses when
title_lengthTitle is 30–60 characters.
meta_descriptionPresent and 70–155 characters. Only when the site has an SEO plugin; otherwise n/a, never a fail.
headingsAt least one H2 in the body, and no skipped levels (H2 → H4).
image_altEvery image in the body has non-empty alt text.
internal_linksAt least one link to another page on the same site.
lengthAt least 600 words in the body.
featured_imageA featured image is set.
focus_keywordThe focus keyword appears in the title and the first paragraph. Only when one was set; otherwise n/a.

Search and traffic

Impressions and clicks need Search Console. Until it is connected, those fields are empty and the page says so.

For agents

EndpointBodyReturns
site-insights{ workspace_id, site?, period: 7d|30d|90d, site_ids? }Output, on-time rate, quality, weekly trend and plain-English readings. search and traffic are null until Search Console / analytics are connected.
FieldMeaning
outputpublished, scheduled (upcoming), pending_approval, missed, partial, by_actor[{actor_type, name, published}]
reliabilityscheduled_fired, on_time, on_time_rate (0–1), late[{action_id, title, scheduled_for, published_at, seconds_late}]. On time = published within 60 seconds of scheduled_for, from the schedule ledger.
qualityaverage_score (0–1), scored, distribution[{score: 'passed/applicable', count}], failing_most[{check, label, count}], posts[{action_id, title, post_url, score, passed, applicable, failing[]}]
trendpublished_by_week[{week_start, count}], on_time_rate_by_week[{week_start, rate}] — weeks start Monday, UTC.
previousThe same headline numbers for the period before, for trend arrows.
search / trafficnull = not connected. Never estimated.
readingsOne plain-English sentence per section (output, reliability, quality, trend).