More room for your next idea. Membership from $9.99/month.Take a look
All guides
Guide

Review Social Media CSVs: Weighted Rates, Comparable Windows and Next Tests

Reconcile post-level source rows, compare equal date windows and separate engagement from clicks. Deliver an editable review with traceable calculations instead of inferring sales or causal lift.

Fastest way

Ask your AI to do it

Paste this into the AI agent you already use:

Use Social Performance Studio to review my permitted post CSV with equal, nonoverlapping inclusive windows. Reconcile all required counts and mapped columns; missing is not zero. Calculate engagement from summed likes, comments and shares over impressions, keep clicks separate and preserve unknown rates. Inspect source lines, rebuild edited source and deliver a traceable review plus a bounded next test. Do not fetch accounts, post content, infer sales or claim causal lift.

What does Social Performance Studio calculate from a CSV?

Social Performance Studio v1.1.0 builds an offline social review from a project brief and post CSV: current/previous totals, weighted engagement and click rates, channel/format summaries, a source ledger, test proposals, native editable PowerPoint and an optional 30-second result film. The package costs USD 4.99 individually. It does not connect to a social account, fetch private analytics or require a paid API.

Use python3 scripts/start.py for the standard-library visual input editor; it runs on 127.0.0.1 while its terminal remains open. Import your permitted CSV, review the column mapping and keep all required counts explicit. Rendering and PPTX generation require the pinned local dependencies; the editor alone does not produce those files.

Freeze the CSV definitions and two inclusive date windows

Read references/input-and-review.md. The builder accepts 1–10000 post records in a regular CSV up to 5 MB, with unique slug IDs, ISO dates and this exact header order. Counts must be nonnegative integers; a blank metric is not zero. Keep original exports privately and reconcile mapped columns before generating the review.

Choose equal-length, nonoverlapping inclusive windows. The practice uses August 1–30 and September 1–30, 2026: both contain 30 days. August 31 is outside that comparison. Equal duration does not establish equal posting mix, exposure or audience. Dates outside both windows are listed as excluded, not silently added to totals.

id,date,channel,format,title,impressions,likes,comments,shares,clicks,spendCents

Run the source-backed FIELDNOTES practice review

From the complete installed skill, install the pinned packages and run into a fresh output folder. Open social-review/index.html, inspect analysis.json and source.csv, and check the source line numbers. FIELDNOTES is a fictional dataset, not our own customer performance. On Windows use .venv\Scripts\python.exe.

Reconciled fictional September example
Metric or source boundaryExpected source-derived value
Included September posts5 rows, including one zero-impression fixture
Impressions and engagements85000 impressions; 3530 likes + comments + shares
Weighted engagement rateRate: 3530 / 85000 × 100 = 4.1529%
Clicks and click-through rate1060 clicks; 1.2471% of impressions
Outside-window source recordoutside is excluded; sep-zero has unknown per-post rates
python3 -m venv .venv
.venv/bin/python -m pip install -r requirements.txt
.venv/bin/python scripts/build-report.py --input examples/project.json --csv examples/posts.csv --output ./social-review

Keep weighted rates, click counts and unknowns distinct

Aggregate engagement is sum(likes + comments + shares) / sum(impressions) × 100, not the mean of individual post rates. Clicks are a separate numerator. With zero impressions, a post rate is null/Unknown rather than 0%. Do not sum unique reach, use follower counts as these denominators or treat click counts as purchases.

The fictional previous window has 1570 engagements and 56000 impressions, or 2.8036%. The change is 1.3493 percentage points, not a causal lift estimate. The 3.5% goal is an authored planning target. Different channels, formats, paid spend and observation cutoffs can explain differences; review them before proposing an experiment.

Change one source count and verify the rebuilt analysis

For a controlled practice, change sep-video-1 clicks from 245 to 255 in a copied CSV. Export the edited source bundle or keep the reviewed CSV beside project.json, then rebuild with --csv pointing to that file into a new folder. Expected total clicks become 1070 while engagements remain 3530 and engagement rate remains 4.1529%. The resulting click-through rate is 1.2588%. This checks the calculation path, not real campaign improvement.

In a separate copy, leave a required count blank or overlap the date windows. The builder should fail without creating a delivery. Do not repair unknown metrics by filling zeros merely to get a report. In the room, filter channels and inspect source records; a display filter does not recalculate the complete report’s totals.

Deliver the review and define one falsifiable next test

Deliver analysis.json, source.csv, channel/format CSVs, experiments.csv, project.json, input evidence, presentation and the SHA-256 manifest. State each test’s hypothesis, action, owner, source post IDs and guardrail. Editing deck wording via --edits changes prose only; it does not change the CSV calculations. Existing PPTX/video links remain from the prior build until regenerated.

Add --render --formats landscape --edge 720 --fps 24 to a new build for the optional 30-second source-derived film. Review actual playback, captions and crops; it is not a live operation recording. This workflow does not publish social posts, access analytics accounts or attribute revenue.

All guides