Course 9 · Advanced $99 New in v2

APIs, Analytics and AI-Surface Measurement

Every decision rule in this curriculum — the kill criteria, the pruning gates, the concentration limits — needs a number behind it. This course builds the measurement stack that produces those numbers, keeps it privacy-first, keeps it portable, and reduces it to one page you can actually read on a Monday morning.

  • 6 lessons
  • 6 labs
  • 6 artifacts
  • 1 scenario assessment
  • ≈6 hours
  • Prereq: Course 8
Your progress · 0/6 lessons0%

Overview

This is the most technical course in the curriculum, and its purpose is entirely non-technical: to make the decision rules from Course 0 executable. A kill criterion you cannot evaluate is a wish. A concentration limit you cannot measure is a slogan.

The design constraint throughout is ownership. Measurement that lives only inside a third-party platform is measurement you can lose, and the whole premise of v2 is that intermediaries change their behaviour without asking you. So the data layer is portable by construction, the storage is yours, and the export is a first-class feature rather than an afterthought.

LessonLabArtifact
9.1 Portable data layerDefine and ship the event schemaEvent schema & data contract
9.2 Privacy-first analyticsInstrument one site lawfullyAnalytics & consent record
9.3 Six decision metricsBaseline all six with datesDecision metric baseline
9.4 AI-surface instrumentationAutomate the monthly run logSurface measurement pipeline
9.5 Public APIPublish one dataset endpointAPI spec & terms
9.6 Decision dashboardBuild the single pageOne-page dashboard

9.1 What is a data layer you actually own?

What is it?

A small, explicit schema of events and metrics that you define, store somewhere you control, and can export in full — independent of any analytics vendor's naming, retention or continued existence.

Why it matters

Vendors rename metrics, change retention windows, sunset products and reprocess history. If your twelve-month trend lives only in a platform's interface, then the platform owns the evidence for your own kill criteria. Defining your own schema costs a day and makes every later migration a data-transfer problem rather than a loss.

How to do it

  1. List the decisions you need to make first — prune, kill, invest, diversify — then define only the events those decisions require. Instrument backwards from decisions, never forwards from curiosity.
  2. Name events in your own stable vocabulary and write them down. tool_completed means the same thing in month one and month twenty-four.
  3. Record a minimal, non-identifying payload per event: what happened, on which asset, at what time, and the coarse source category. Nothing more.
  4. Store a durable copy you control — this site uses IndexedDB in the visitor's own browser for tool state, and a monthly manual roll-up for portfolio metrics.
  5. Make export the primary interface. If you cannot produce a JSON or CSV of everything in one action, you do not own it.
  6. Write a data contract: every field, its meaning, its unit, its source, and who updates it. Undocumented metrics silently change meaning.
Event schema & data contract
  EVENTS (name, when it fires, payload, why it exists → which decision)
    asset_view          asset id, coarse source, date        → pruning gate
    tool_started        tool id, date                        → tool value
    tool_completed      tool id, date                        → durable conversion
    output_kept         tool id, method (copy/export/link)   → 8.2 keepable output
    subscribe           source asset, date                   → owned audience
    commercial_click    asset id, partner, date              → concentration limits
  CONTRACT: field | meaning | unit | source system | owner | update cadence
  EXPORT: single action → full JSON/CSV. Verified working on ___ (date)

Tools needed

Your component library, js/db.js (IndexedDB) or equivalent, and a spreadsheet for monthly roll-ups.

Lab 9.1

Write the event schema for one site, starting from the four decisions you must make at the Month 3 gate. Implement the events, then perform a full export and re-import to prove the round trip works. If the re-import fails, you do not have a data layer.

Artifact

Event schema & data contract, plus a verified export→import round-trip with the date

Common mistakes

  • Instrumenting everything measurable, producing a mass of events that inform no decision and cost real maintenance.
  • Adopting a vendor's metric names, so a vendor change breaks your history.
  • Never testing the import path, and discovering at migration time that the export is unusable.

Pro astuces

  • Write the decision beside every event in the schema. Any event without a decision gets deleted — that rule alone keeps the layer small enough to maintain.
  • A monthly manual roll-up of six numbers is more durable than an elaborate automated pipeline you abandon in month five.
Not saved yet
Artifact: Event schema & data contract

9.2 How do you do analytics privacy-first?

What is it?

Collecting the minimum data needed for your decisions, with a lawful basis, honest disclosure, and no tracking that you would be embarrassed to describe on your own privacy page.

Why it matters

Three reasons, in order. It is a legal obligation whose specifics depend on your jurisdiction and audience. It is a trust asset — "we do not track you across the web" is a genuine differentiator in every one of the Phase 1 niches. And it is cheaper: less data means less liability, less storage and fewer consent obstacles in front of your content.

How to do it

  1. Start from the six metrics in 9.3 and collect nothing that does not feed them.
  2. Prefer aggregate, cookieless measurement where it answers the question. Most portfolio decisions need trends, not individuals.
  3. Where consent is required, ask honestly and make refusal genuinely equivalent. Do not degrade the page to punish a refusal.
  4. Keep tool data local to the visitor's device wherever the tool allows it — as this site does — and say so on the page.
  5. Document retention: what is kept, for how long, and how it is deleted. Then actually delete it.
  6. Write the privacy page from what the code really does, not from a template. Then re-audit it whenever you add a script.
This is not legal advice

Consent requirements, lawful bases, retention limits and cross-border transfer rules vary by jurisdiction and by where your readers are. Nothing here tells you what your obligations are. Take the legal counsel question sheet from Course 4 to a qualified adviser before you launch commercial measurement, and re-check when you add advertising or a third-party script.

Tools needed

A privacy-respecting analytics option, your consent mechanism, your privacy page, and a script inventory.

Lab 9.2

Inventory every third-party script on one site and, for each, write what data it can access and which of your six metrics it serves. Remove every script that fails that test. Then rewrite the privacy page to match what remains.

Artifact

Analytics & consent record
  Script / vendor | Data it can access | Metric it serves | Lawful basis | Consent required? | Kept? Y/N
  Scripts removed: ___
  Retention: what | how long | deletion method | last deletion run
  Privacy page rewritten from actual behaviour on ___ (date)

Common mistakes

  • A template privacy policy describing data practices the site does not have — which is itself a misrepresentation.
  • Consent banners that make refusal harder than acceptance.
  • Keeping an analytics vendor "in case we need it later", accepting the liability for no decision benefit.

Pro astuces

  • Deleting scripts usually improves Core Web Vitals and reduces consent friction at the same time. It is the rare change with no trade-off.
  • "Your inputs never leave your browser" is a strong, checkable claim in finance and security niches. If it is true, put it next to the tool.

Knowledge check (3 questions)

1. Why instrument backwards from decisions?

Because every event carries a permanent cost — maintenance, page weight, privacy liability and consent friction. Starting from decisions guarantees each event earns its place; starting from curiosity produces a large, expensive dataset nobody uses.

2. Why is local-only tool storage a commercial advantage, not just an ethical one?

It removes a category of liability and consent friction while creating a claim that competitors using server-side collection cannot honestly make. In finance and security niches, where readers enter sensitive numbers, that claim materially affects whether they use the tool at all.

3. Why must the privacy page be written from the code?

Because a template describes practices that may not match reality, and a mismatch between your stated and actual data handling is a misrepresentation with legal exposure — quite apart from destroying the trust the page exists to build.

Self-score: Not scored yet
Not saved yet
Artifact: Analytics & consent record

9.3 Which six numbers actually decide things?

What is it?

The minimum metric set that drives every decision rule in this curriculum: branded share, owned-audience engaged size, revenue per visit, contribution margin, concentration ratios, and cost-per-asset maintenance load.

Why it matters

Dashboards fail by containing too much. Six numbers, each attached to a specific rule and a specific threshold, will actually be looked at monthly — and each one already has a rule waiting for it from an earlier course. Anything that is interesting but attached to no rule is a distraction.

How to do it

  1. Baseline all six with a date. An undated metric cannot support a trend claim.
  2. Attach each to its existing rule and threshold, so the number triggers an action rather than a discussion.
  3. Measure monthly on the same day, using the same definition, and never silently change a definition.
  4. Track direction over three months. Single-month moves are usually noise, as Course 6.4 established.
  5. Review all six together at each pruning gate. They interact: rising revenue per visit with falling branded share is a very different situation from both rising.
  6. If a metric has not informed a decision in six months, delete it and free the collection cost.
The six decision metrics and the rules they trigger
MetricDefinitionRule it serves
Branded share of arrivalsDirect + branded queries ÷ total arrivalsGoverning question; Course 6.5
Engaged owned audienceSubscribers active in last 30 days, not raw list sizeCourse 3; durability evidence
Revenue per visitTotal revenue ÷ total visitsCourse 8.3; ad density decisions
Contribution margin per siteRevenue − fully loaded cost (Course 7.5)Rule 2 kill criteria
Concentration ratiosAffiliate ≤30%, single site ≤50%, traffic source ≤60%, sponsor ≤25%Course 11 limits
Maintenance loadMonthly verification + refresh hours vs capacityCourse 7.6 publishing cap

Image placeholder — six-metric decision panel

Generation prompt: "Flat vector dashboard mockup showing exactly six metric cards in a 3×2 grid, each card containing a metric label, a large number, a small sparkline and a threshold indicator bar, one card showing a warning state in amber; minimal slate-grey interface with a single teal accent, thin strokes, no photographic elements, generous white space, 16:9."

Prefer a real screenshot? Steps to produce it
  1. Baseline all six metrics for one site and record them with the measurement date.
  2. Repeat the same measurement on the same day of the month for at least three months so each card has a direction.
  3. Set the threshold for each card from the rule it serves, so at least one card can display a warning state.
  4. Capture at 1440px wide, 2× device pixel ratio, light theme.
  5. Redact absolute revenue figures if the capture will be published, and caption with the period covered and the measurement dates.
Six numbers, each attached to a rule that already exists.

Tools needed

Revenue & RPM calculator, unit economics model, your analytics and your email platform.

Lab 9.3

Baseline all six metrics for every site in the portfolio, on one day, with definitions written down. Then state which rule each number currently triggers, if any. Any metric triggering nothing is a candidate for deletion.

Artifact

Decision metric baseline
  Metric | Definition (verbatim) | Value | Date | Rule it serves | Threshold | Status
  Metrics collected but serving no rule: ___ (delete these)

Common mistakes

  • Reporting raw list size instead of engaged subscribers, which flatters the owned-audience number most.
  • Changing a definition mid-year, destroying the comparability the baseline existed for.
  • Watching total revenue instead of contribution margin, so an unprofitable site looks healthy.

Pro astuces

  • Put the threshold next to the value on the dashboard. A number without its threshold invites negotiation with yourself.
  • Six is a ceiling, not a target. If you can drive decisions with four, use four.
Not saved yet
Artifact: Decision metric baseline

9.4 How do you instrument AI surfaces properly?

What is it?

Turning the manual Course 6.4 routine into a repeatable, logged pipeline: the frozen prompt set, a fixed schedule, structured scoring, recorded raw responses, and the noise floor carried alongside every reading.

Why it matters

Manual measurement decays. By month four the run is late, the scoring drifts, and the series becomes unusable exactly when you need it for a pruning decision. Instrumenting it — even crudely — is what makes the AI-surface number trustworthy enough to spend money on.

How to do it

  1. Store the frozen prompt set as data, not as a document, with a version identifier. If it ever changes, the version changes and the series restarts.
  2. Log every run completely: prompt id, engine, date, locale, account state, the full raw response, and the 0–3 score.
  3. Keep the raw responses. Scores are interpretations; responses are evidence, and you will want to re-score them later.
  4. Re-measure the noise floor quarterly by repeating a subset within one session. It changes as engines change.
  5. Report only three-month directional movement, with the noise floor printed next to it.
  6. Respect the terms of every service you query, and never present the results as findings about the engines. This measures your own visibility.
Automate within the rules

Automated querying of AI assistants and search products may breach their terms of service, and those terms change. Before automating anything, read the current terms for each service and prefer official APIs where they exist. A defensible manual routine you actually run every month beats an automated one that violates terms or gets you blocked. This is a Rule 1 claim: re-verify the terms every 90 days.

Tools needed

AI-surface tracking sheet, official APIs where available, and a recurring monthly calendar entry.

Lab 9.4

Convert your Course 6.4 prompt set into versioned structured data, run one full logged cycle recording raw responses, and re-measure the noise floor. Then write the one-paragraph interpretation rule you will apply to future readings — before you have a reading you want to over-interpret.

Artifact

Surface measurement pipeline
  Prompt set version | Frozen on | Prompt count
  Run log: prompt id | engine | date | locale | account state | raw response stored? | score 0-3
  Noise floor: measured ___ on ___ | re-measure due ___
  Interpretation rule: report movement only when 3-month change exceeds noise floor
  Terms-of-service check: service | terms reviewed on | automation permitted? Y/N

Common mistakes

  • Storing scores but discarding raw responses, making re-scoring and auditing impossible.
  • Automating first and reading the terms of service afterwards.
  • Reporting month-to-month movement smaller than the measured noise floor.

Pro astuces

  • Write the interpretation rule before the data exists. It is the only reliable defence against reading a story into noise.
  • Stored raw responses are themselves original data — they can legitimately support the Course 10 data campaign, provided you describe the method and limits honestly.
Not saved yet
Artifact: Surface measurement pipeline

9.5 Should you publish your data as an API?

What is it?

Exposing your original dataset through a documented, versioned, rate-limited endpoint with clear licensing and attribution terms — turning a static dataset into infrastructure other people build on.

Why it matters

An API is the strongest attribution mechanism available to a small publisher: every consumer has a contractual reason to name you, and integrations create switching costs no algorithm change can remove. It also directly serves Course 10, because a usable endpoint is a far better story than a PDF report.

How to do it

  1. Only publish data you genuinely own and collected. Re-publishing someone else's data through an API is a licensing problem, not a growth tactic.
  2. Start with one static, versioned JSON file on a CDN. It is an API, it costs nothing, and it cannot fall over.
  3. Version from day one — /v1/ — and never change a field's meaning within a version.
  4. Document the schema, the update cadence, the collection method and the limitations in the same place as the endpoint.
  5. State the licence and the attribution requirement explicitly, and keep both machine-readable.
  6. Publish a changelog and a deprecation policy. Consumers only build on data they can trust not to vanish silently.
API spec & terms
  Endpoint         /api/v1/<dataset>.json      (static file on CDN is fine)
  Schema           field | type | unit | nullable | meaning
  Cadence          updated ___; next update ___
  Method & limits  how collected, sample, what it cannot show
  Licence          ___ ; attribution required: "Source: <brand>, <url>"
  Versioning       /v1/ frozen; breaking changes → /v2/
  Deprecation      minimum ___ days notice, published in changelog
  Ownership        data collected by us? Y/N  (if N, do not publish)

Tools needed

Your Cloudflare static hosting from Course 4, your dataset, and legal advice on licensing.

Lab 9.5

Publish one dataset as a versioned static JSON endpoint with a documentation page covering schema, method, limitations, licence and attribution. Then consume your own endpoint from a separate page to prove it works as infrastructure rather than as a download.

Artifact

API spec & terms, the live versioned endpoint, and a working consumer of your own API

Common mistakes

  • Publishing data you licensed from someone else, or scraped, without the right to redistribute it.
  • No versioning, so the first schema change breaks every consumer and destroys the trust that created the value.
  • Documenting the schema but not the method, which makes the data unciteable for exactly the audience you wanted.

Pro astuces

  • A static versioned JSON file on a CDN handles enormous traffic for effectively nothing and never has an outage you caused.
  • Requiring attribution in the licence converts every integration into a durable, contractual citation — the Course 6 objective achieved by other means.
Not saved yet
Artifact: API spec & terms

9.6 What belongs on the one-page dashboard?

What is it?

A single page showing the six metrics per site, each with its threshold and status, the concentration ratios, the maintenance load against capacity, and the next pruning gate date. Nothing else.

Why it matters

The purpose of the dashboard is to make the decision rules unavoidable. A dashboard with forty charts gets skimmed; one page where three cards are amber gets acted on. This is the operating instrument for Course 12's pruning gates, so it has to be readable in two minutes on a Monday morning.

How to do it

  1. One row per site, one column per metric, threshold beside every value. No metric appears without its threshold.
  2. Show status, not just value: within limits, warning, or breach. Colour is a shortcut, not the information.
  3. Put the four concentration ratios on the same page. They are portfolio-level and invisible from any single site's view.
  4. Show maintenance load against capacity, because that is the constraint that silently caps everything else.
  5. Print the next pruning gate date and what happens at it, so the gate cannot be quietly skipped.
  6. Update on a fixed monthly date and archive each snapshot. The archive is your trend, and it is also the evidence a buyer or partner will ask for.
One-page dashboard layout
  PER SITE (one row each)
    Branded share ___ (≥ target?) | Engaged audience ___ | Revenue/visit ___
    Contribution margin ___ (kill threshold ___) | Maintenance hrs ___ / capacity ___
  PORTFOLIO
    Affiliate ___% (≤30) | Largest site ___% (≤50) | Top traffic source ___% (≤60) | Top sponsor ___% (≤25)
  GATES
    Next pruning gate: ___ (Month 3 / 6 / 9) | Actions triggered if breached: ___
  Snapshot archived: ___ (monthly, same date)

Tools needed

Your metric baseline, the pruning scorecard, the risk register and a monthly calendar entry.

Lab 9.6

Build the dashboard for the whole portfolio on one page. Then hand it to someone who does not work on the project and ask them to tell you what needs attention. If they cannot answer in two minutes, simplify it.

Artifact

One-page dashboard, first snapshot archived, plus the two-minute comprehension test result

Common mistakes

  • Building a beautiful dashboard nobody opens, because it shows values without thresholds and therefore demands interpretation.
  • Omitting the concentration ratios, which are the only portfolio-level early warning you have.
  • Failing to archive snapshots, so a year later there is no trend to look at.

Pro astuces

  • The two-minute outsider test is the real specification. If a stranger cannot identify the problem, you will not either when you are busy.
  • Archived monthly snapshots are the artifact that makes a portfolio saleable. Buyers pay for evidence, not for assertions.
Not saved yet
Artifact: One-page dashboard

Scenario assessment: the analytics migration that erases the evidence

Your analytics vendor announces that the current product is being sunset in 90 days, historical data before this year will not be migrated, and two metric definitions are changing. Your Month 6 pruning gate is in five weeks, and the decision to kill or keep the SMB Finance site depends on a branded-share trend that exists only inside that vendor. Meanwhile a partner offers a "free" enhanced analytics suite in exchange for embedding their script on all three sites and sharing visitor-level data. The AI-surface run has not been done for two months because it was manual, and the operator wants to automate it this week by scripting queries against three assistants.

Decide first, then open (5 questions)

1. What is the immediate action, before any decision about tools?

Export everything from the vendor now, while it still exists, and archive it in your own storage — then verify the export by re-importing it. The 90-day window is the binding constraint. This is exactly the failure mode 9.1 predicts when the evidence for your own kill criteria lives inside someone else's product.

2. Can the Month 6 gate still run in five weeks?

Yes, but only on what you can evidence. Run it on the archived export with the pre-migration definitions stated explicitly, and note in the decision record that the trend cannot be extended past the migration under the same definition. A gate decision made on documented, dated evidence with stated limits is legitimate; one made on numbers whose definition silently changed is not.

3. Should you accept the free enhanced analytics suite?

No. Sharing visitor-level data with a partner in exchange for features fails 9.2 on every count: it collects far more than the six metrics require, it creates liability and consent friction, it likely contradicts the privacy claims already published, and it makes the measurement dependent on another intermediary. "Free" here is paid for with your readers' data and your own independence.

4. Automate the AI-surface run this week — yes or no?

Not before reading each service's current terms of service, per 9.4. Scripted querying may breach them. The right sequence is: check the terms, prefer official APIs, and in the meantime restore the manual run immediately — two missed months already threaten the series. A defensible manual routine beats an automated one that gets you blocked or breaches terms.

5. What structural changes prevent a repeat, and what goes in the risk register?

Define the event schema and data contract in your own vocabulary (9.1), archive a monthly snapshot of the six metrics so no single vendor holds the trend (9.6), and test the export→import round trip quarterly. Register entry under platform-dependency risk: leading indicator "any decision metric whose only source is a third-party product", trigger "establish an owned monthly snapshot within 30 days"; plus measurement risk: "any metric definition change must be recorded and the series restarted rather than silently continued".

Self-score: Not scored yet

Final project: a measurement stack you own

Build the instrumentation that makes every decision rule in this curriculum executable — and prove you can take it with you.

Deliverable
1. Event schema & data contract, every event mapped to the decision it serves
2. A verified export → import round trip, dated
3. Script inventory with every non-essential third-party script removed, and a privacy page rewritten from actual behaviour
4. All six decision metrics baselined per site, with definitions, dates and thresholds
5. AI-surface pipeline: versioned frozen prompt set, full run log with raw responses, current noise floor, terms-of-service check
6. One dataset published as a versioned API with schema, method, limitations, licence and attribution — plus a working consumer of it
7. One-page dashboard covering all sites, the four concentration ratios, maintenance load vs capacity, and the next gate date; first snapshot archived
8. The two-minute outsider comprehension test, passed

Pass standard: a stranger can read your dashboard in two minutes and correctly name what needs attention, and you can reproduce every number on it from data you own.

Course 9 checklist

0 complete

AI-agent prompt for Course 9

Measurement stack & data-ownership auditor
Act as a measurement architect for an independent publisher running three monetised sites. The operating principle is that measurement must be OWNED: portable, exportable, and independent of any single vendor.

I will paste: my current analytics setup, my third-party scripts, my decision rules and thresholds, my datasets, and my AI-surface results if any.

Do this:
1. Work BACKWARDS from decisions. List the decisions I must make (prune, kill, invest, diversify), then define the minimum event set those decisions require. Delete any event that serves no decision and say so explicitly.
2. Write the event schema and a data contract: field, meaning, unit, source, owner, update cadence. Use my own stable vocabulary, never a vendor's metric names.
3. Audit every third-party script: what data it can access, which of my six decision metrics it serves, and whether it should be removed. Flag any script whose data collection contradicts a privacy claim I have published.
4. Baseline the six decision metrics: branded share of arrivals, engaged owned audience (active in 30 days, NOT list size), revenue per visit, contribution margin (revenue minus fully loaded cost), the four concentration ratios, and maintenance load vs capacity. Attach each to the rule and threshold it serves.
5. Design the AI-surface pipeline: versioned frozen prompt set, run log storing RAW responses as well as scores, noise-floor procedure, and an interpretation rule written BEFORE data exists. Tell me to check each service's terms of service before automating, and do not help me build automation that breaches them.
6. Specify one dataset as a versioned public API: endpoint, schema, cadence, method, limitations, licence, attribution requirement, deprecation policy. First confirm I have the right to redistribute the data; if I do not, refuse.
7. Lay out a ONE-PAGE dashboard: a threshold beside every value, the four concentration ratios, maintenance load vs capacity, and the next pruning gate date. Nothing else.

Rules:
- Never propose collecting data that serves no listed decision.
- Never propose visitor-level data sharing with a partner in exchange for features.
- Treat privacy, consent, retention and cross-border transfer as legal questions: state that requirements vary by jurisdiction and that you are not giving legal advice.
- Do not invent benchmarks for any metric. If I have not measured it, mark it UNMEASURED and give me the measurement procedure.
- Never report movement smaller than the measured noise floor; if I have no noise floor, say the reading cannot be interpreted yet.
- Every metric definition must be written verbatim so it cannot drift.
Output as tables, with removals, refusals and UNMEASURED items called out in plain text above the tables.

Primary sources

Vendor metric definitions, retention windows and terms of service change without notice. Every statement here is a dated claim with a 90-day expiry — log it and re-verify.