Documentation is work in progress and not completeEditor
FlashCC/The product/Section 18 of 29

The pipeline

A Post is not a Doc — the structural snapshot is copied at creation so the version that earned the numbers is the one that went out.

A Post is not a Doc. A Doc is the artwork; a Post is one publication of it, so the same carousel can go to LinkedIn on Tuesday and Instagram on Friday as two records with two sets of numbers.

Post { id, docId, title, stage, platform,
       framework, slideCount, hook, styleId,      // the structural snapshot
       scheduledFor, postedAt, url, caption, notes, metrics,
       createdAt, updatedAt }

The structural fields are copied at creation, not looked up through docId, because the document keeps being edited and the version that earned the numbers is the one that went out.

Stages

StageHint
ideaA thought, not a carousel yet
draftingBeing written or designed
readyFinished, waiting for a slot
scheduledHas a date
postedLive, collecting numbers

Entering posted stamps a date; leaving it clears the date again. A post sitting in "drafting" while still carrying postedAt would keep feeding the baseline — a bug nobody notices and everybody acts on.

isMeasured requires stage posted, a postedAt, a metrics object and non-zero reach. Every ratio downstream divides by reach, so zero has to be turned away at the door.

Seven metrics are entered by hand, each labelled with the platform’s own word for it, because the fastest way to make manual entry hurt is to make people guess which number goes in which box. engagements = likes + comments + shares + saves — clicks and follows excluded.