Flowgrammer

Build the Content Data Contract

Create a posts input schema, data dictionary, validation rules, and synthetic fixture label.

Why this decision matters

Every row needs a stable post ID, account, platform, publication time, observation cutoff, format, topic, hook label, CTA, paid or organic status, and available metrics. Zero and missing are different. A zero means the field was observed and had no events; missing means it was unavailable or not collected. The data dictionary states units and denominators. Raw imports remain unchanged while a normalized copy feeds analysis.

This lesson advances the same capstone used throughout the course: the Content Performance Analysis and Experiment Pack. The learner is not collecting ideas for later. The workbook record created here becomes an input to the next module and must be specific enough that another operator could review it. Where evidence is incomplete, the artifact should show the gap instead of smoothing it over.

Source evidence and limits

C8-S1 supplies a practical CSV structure and prohibits invented metrics. C8-S3 and C8-S4 support source, run, observed-at, window, raw record, and normalized field preservation.

The sources support the operating method stated above. They do not prove universal performance, guaranteed savings, complete market coverage, causal impact, or a client result. Any date-sensitive product, platform, competitor, legal, pricing, or policy fact must be checked against a current primary source before publication or operational use.

Continuing fictional example

Example: Northstar Operations is fictional. Its 16 invented LinkedIn rows include post text labels, format, topic, impressions, comments, saves, clicks, and paid or organic status.

Northstar's 16-row fixture uses IDs SYN-001 through SYN-016. Two rows intentionally lack click counts, one has zero impressions, one is marked paid, and one duplicates another ID so validation behaviour can be tested.

Example boundary: All values are synthetic and deliberately constructed to exercise calculations and failure handling. They must never be presented as platform observations, benchmarks, or outcomes.

Workbook application

Use Workbook Section 2: Build the Content Data Contract. Complete Workbook Section 2. Review the synthetic data table, define each field, choose missing-value notation, state deduplication keys, and write validation rules for dates, numbers, platforms, paid status, and observation windows.

  1. Write the current evidence or input before adding interpretation.
  2. Apply the lesson's decision rule and state the reason for the classification.
  3. Mark uncertainty, missing information, and the human owner for the next decision.
  4. Check that the result stays inside the course boundaries and can be tested.

Failure modes to inspect

Replacing missing with zero; merging platforms; dropping weak rows; using post text as an identifier; changing raw exports; and failing to label synthetic data.

A polished output can still fail if its evidence, permissions, identity, denominator, source date, or action boundary is wrong. Review the underlying record rather than grading tone alone. The correct repair may be to narrow the scope, gather a permitted source, label an unknown, or stop the proposed action.

Decision rules

Preserve raw input. Reject duplicate IDs or resolve them visibly. Never calculate a rate with a missing or zero denominator. Keep paid and organic context.

Record the rule in the workbook in language two reviewers can apply consistently. A rule that depends on intuition alone cannot support a deterministic fixture. If reviewers disagree, preserve both readings, identify the missing evidence, and revise the rule before automation.

Three application checks

1. A source export leaves clicks blank for one post. Which normalized value preserves the evidence correctly?

2. The same post ID appears twice with different observation cutoffs. What should the data contract require?

3. Why must paid distribution remain a separate field in the normalized dataset?

Return to Build an AI Content Performance Analyst