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 |
|
|
{“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 |