serp_analyses


Description

{“what”:“One row per SERP analysis run for a job and snapshot.”,“why”:“Without it, extracted insights from a SERP snapshot are lost, so downstream decisions lack evidence.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T00:10:24.465971623+00:00”}

Columns

Column Type Size Nulls Auto Default Children Parents Comments
id serial 10 √ nextval('serp_analyses_id_seq'::regclass)

{“what”:“Unique integer ID, auto-generated from sequence.”,“why”:“Without it, rows cannot be uniquely referenced for updates or joins.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T00:10:24.493941064+00:00”}

job_id int4 10 null
pipeline_jobs.id serp_analyses_job_id_fkey R

{“what”:“ID of the job that triggered this analysis.”,“why”:“Without it, analyses cannot be linked to the originating job, making it impossible to track per-job outcomes.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T00:10:24.540920969+00:00”}

serp_snapshot_id int4 10 null

{“what”:“ID of the SERP snapshot that was analyzed.”,“why”:“Without it, you cannot know which search results page the analysis refers to, so the analysis is meaningless.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T00:10:24.557930857+00:00”}

top_results jsonb 2147483647 null

{“what”:“JSON array of the top search results with their metadata.”,“why”:“Without it, the actual results that were analyzed are missing, so the analysis cannot be verified or reproduced.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T00:10:24.573895532+00:00”}

common_themes jsonb 2147483647 √ null

{“what”:“JSON object listing themes shared across the top results.”,“why”:“Without it, the identified commonalities are unknown, so the analysis loses its main insight.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T00:10:24.585922244+00:00”}

content_gaps jsonb 2147483647 √ null

{“what”:“JSON object describing missing or underrepresented content in the results.”,“why”:“Without it, opportunities for new content are not captured, so the analysis cannot guide content strategy.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T00:10:24.607174605+00:00”}

avg_word_count int4 10 √ null

{“what”:“Average word count of the analyzed top results, as an integer.”,“why”:“Without it, the typical length of competing content is unknown, so you cannot benchmark your own content.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T00:10:24.633467336+00:00”}

analyzed_at timestamptz 35,6 √ now()

{“what”:“Timestamp (with time zone) when the analysis was completed; defaults to current time.”,“why”:“Without it, you cannot know how fresh the analysis is, so decisions may rely on outdated data.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T00:10:24.648562188+00:00”}

news_data jsonb 2147483647 √ null

{“what”:“JSON object containing news-specific results or metadata from the SERP.”,“why”:“Without it, news-related insights are missing, so the analysis cannot cover news-driven SERPs.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T00:10:24.673806811+00:00”}

Indexes

Constraint Name Type Sort Column(s)
serp_analyses_pkey Primary key Asc id

Relationships