MOCK MODE — no API keys9 platforms2 client namespaces0/9 provider keys configuredkill-switch disarmedengine ok · v0.1.06 agents · pipeline complete
Bottom-funnel attribution

A number appears here only if it can be tied to pipeline or money

Every figure below is a field of the engine's own report for this client's JSON namespace, built from revenue-linked events only: first touch → form submission → conversion. Metrics that cannot be tied to pipeline or revenue are refused at ingest by name, and where the engine has no figure it prints its reason instead of a zero.

Measured vs sample — the first thing to read

SAMPLE — not measured results
Measured events
0
none — nothing here is a measurement
Sample events
96
sample events generated in mock mode, not measured results
Events total
96
17 carried a value · 79 counted, not valued
Namespace
data/clients/full-frequency-co/events.json
generated 2026-10-02T12:00:00+00:00
96 of these 96 events were generated in mock mode by Paladia's own seeder and are not measured results. They exist so you can see the report, its labels and its refusals before any tracking is connected. The measured count is zero on purpose: nothing in this demo is a client's real audience response, and posting a real client's own events to POST /api/clients/full-frequency-co/events is what makes them measured.

Every figure carries its basis

Pipeline value and revenue

The engine sums only the values an event itself carried, and says which event types produced the figure. Events with no value are counted and never priced — a value it cannot tie to money is not shown as a metric.
Pipeline value
$2,520
opened, not closed
Revenue
$3,309
closed conversions only
value_link
revenue
Valued events
17 of 96
Currency
USD
Basis
conversions ÷ first touches = 15.3%

What the figure is, and what it is not

It is: the sum of the values carried by the conversion events in this namespace, because value_link: revenue is what the report states. Those values are sample values generated in mock mode.

It is not: a modelled, forecast or extrapolated number. No projection, model or extrapolation is applied: every figure in this report is the sum of events stored in this namespace, and nothing else.

79 event(s) counted with no value supplied — they cannot be tied to money and are counted only, never priced

  • conversion: 1 event(s) — counted, not valued — no value was supplied, so it cannot be tied to money
  • first_touch: 72 event(s) — counted, not valued — no value was supplied, so it cannot be tied to money
  • form_submission: 6 event(s) — counted, not valued — no value was supplied, so it cannot be tied to money

Pipeline velocity

stated

each conversion is paired with the earliest recorded first touch on the same asset, and the elapsed time is the difference between the two timestamps — this is arithmetic on the events stored here, not a survey of the client's real buying cycle

Metric
days from first touch to conversion, within the same asset
Sample size
11 paired conversions
Minimum it will speak from
3
Conversions recorded
11 (0 with no earlier first touch)
3.26 days
median, from 11 pairs · mean 3.21 · fastest 2.75 · slowest 4.07

Conversion rate

Numerator
11 conversion(s)
Denominator
72 first touch(es)
15.3%
conversions ÷ first touches (tracked click-throughs) attributed to this asset
Week by week

The weekly report, per client

One row per week with an event, across this client's campaigns. A week with no event is absent rather than shown at zero.
WeekEventsFirst touch / form / conversionPipeline valueRevenueRate
Week 121
0 measured · 21 sample
16 / 4 / 1$1,544$2226.3%
Week 224
0 measured · 24 sample
17 / 4 / 3$310$42317.6%
Week 322
0 measured · 22 sample
19 / 2 / 1no valued event$3035.3%
Week 429
0 measured · 29 sample
20 / 3 / 6$666$2,36130.0%
Per asset

Which asset the pipeline and the money came from

Only assets that carry at least one revenue-linked event appear here. An asset with no event is missing, not shown as zero: the engine does not know it performed, so it does not say it performed badly.
AssetWeekEventsft / form / convPipelineRevenue
TikTok
as_full-frequency-co_w4_tiktok
Week 4
Conversion
4
0 measured · 4 sample
3 / 0 / 1—$508
Instagram
as_full-frequency-co_w4_instagram
Week 4
Conversion
3
0 measured · 3 sample
1 / 1 / 1$291$495
Threads
as_full-frequency-co_w4_threads
Week 4
Conversion
4
0 measured · 4 sample
3 / 0 / 1—$424
LinkedIn
as_full-frequency-co_w4_linkedin
Week 4
Conversion
4
0 measured · 4 sample
3 / 0 / 1—$419
Threads
as_full-frequency-co_w2_threads
Week 2
Education
3
0 measured · 3 sample
1 / 1 / 1—$343
Reddit
as_full-frequency-co_w4_reddit
Week 4
Conversion
5
0 measured · 5 sample
3 / 1 / 1—$342
Threads
as_full-frequency-co_w3_threads
Week 3
Social Proof
2
0 measured · 2 sample
1 / 0 / 1—$303
X (Twitter)
as_full-frequency-co_w1_x
Week 1
Awareness
2
0 measured · 2 sample
1 / 0 / 1—$222
X (Twitter)
as_full-frequency-co_w4_x
Week 4
Conversion
3
0 measured · 3 sample
2 / 0 / 1—$173
Pinterest
as_full-frequency-co_w2_pinterest
Week 2
Education
2
0 measured · 2 sample
1 / 0 / 1—$81
Threads
as_full-frequency-co_w1_threads
Week 1
Awareness
2
0 measured · 2 sample
1 / 1 / 0$576—
Reddit
as_full-frequency-co_w1_reddit
Week 1
Awareness
3
0 measured · 3 sample
2 / 1 / 0$405—
Facebook
as_full-frequency-co_w4_facebook
Week 4
Conversion
4
0 measured · 4 sample
3 / 1 / 0$374—
TikTok Shop
as_full-frequency-co_w2_tiktok_shop
Week 2
Education
2
0 measured · 2 sample
1 / 1 / 0$310—
Instagram
as_full-frequency-co_w1_instagram
Week 1
Awareness
4
0 measured · 4 sample
3 / 1 / 0$301—
TikTok Shop
as_full-frequency-co_w1_tiktok_shop
Week 1
Awareness
3
0 measured · 3 sample
2 / 1 / 0$263—
Facebook
as_full-frequency-co_w1_facebook
Week 1
Awareness
1
0 measured · 1 sample
1 / 0 / 0——
LinkedIn
as_full-frequency-co_w1_linkedin
Week 1
Awareness
3
0 measured · 3 sample
3 / 0 / 0——
Pinterest
as_full-frequency-co_w1_pinterest
Week 1
Awareness
1
0 measured · 1 sample
1 / 0 / 0——
TikTok
as_full-frequency-co_w1_tiktok
Week 1
Awareness
2
0 measured · 2 sample
2 / 0 / 0——
Facebook
as_full-frequency-co_w2_facebook
Week 2
Education
2
0 measured · 2 sample
1 / 0 / 1——
Instagram
as_full-frequency-co_w2_instagram
Week 2
Education
3
0 measured · 3 sample
3 / 0 / 0——
LinkedIn
as_full-frequency-co_w2_linkedin
Week 2
Education
4
0 measured · 4 sample
3 / 1 / 0——
Reddit
as_full-frequency-co_w2_reddit
Week 2
Education
3
0 measured · 3 sample
3 / 0 / 0——
TikTok
as_full-frequency-co_w2_tiktok
Week 2
Education
3
0 measured · 3 sample
2 / 1 / 0——
X (Twitter)
as_full-frequency-co_w2_x
Week 2
Education
2
0 measured · 2 sample
2 / 0 / 0——
Facebook
as_full-frequency-co_w3_facebook
Week 3
Social Proof
3
0 measured · 3 sample
3 / 0 / 0——
Instagram
as_full-frequency-co_w3_instagram
Week 3
Social Proof
3
0 measured · 3 sample
2 / 1 / 0——
LinkedIn
as_full-frequency-co_w3_linkedin
Week 3
Social Proof
3
0 measured · 3 sample
3 / 0 / 0——
Pinterest
as_full-frequency-co_w3_pinterest
Week 3
Social Proof
1
0 measured · 1 sample
1 / 0 / 0——
Reddit
as_full-frequency-co_w3_reddit
Week 3
Social Proof
2
0 measured · 2 sample
2 / 0 / 0——
TikTok
as_full-frequency-co_w3_tiktok
Week 3
Social Proof
2
0 measured · 2 sample
1 / 1 / 0——
TikTok Shop
as_full-frequency-co_w3_tiktok_shop
Week 3
Social Proof
3
0 measured · 3 sample
3 / 0 / 0——
X (Twitter)
as_full-frequency-co_w3_x
Week 3
Social Proof
3
0 measured · 3 sample
3 / 0 / 0——
Pinterest
as_full-frequency-co_w4_pinterest
Week 4
Conversion
1
0 measured · 1 sample
1 / 0 / 0——
TikTok Shop
as_full-frequency-co_w4_tiktok_shop
Week 4
Conversion
1
0 measured · 1 sample
1 / 0 / 0——
The honesty differentiator

What the model accepts, and what it refuses by name

Three event types are accepted, because they connect to pipeline or revenue. 33 metrics are refused by name at ingest, each with its reason, and appear nowhere in any report. An event type appears here only if it connects to pipeline or revenue. Vanity metrics are refused by name, because a number that cannot be tied to money implies a link that is not there.

Accepted — 3 types

  • first_touchconnects to pipeline
    First touch (tracked click-through)
    value: supplied pipeline value, if the source states one · if no value: still counted, and reported as 'counted, not valued — cannot be tied to money'
    aliases: first_touch, click_through, click-through, click, cta_click, link_click
  • form_submissionconnects to pipeline
    Form / lead submission
    value: supplied pipeline value, if the source states one · if no value: still counted, and reported as 'counted, not valued — cannot be tied to money'
    aliases: form_submission, form, lead, lead_submitted, lead_submission
  • conversionconnects to revenue
    Conversion (closed)
    value: revenue value, if the source states one · if no value: still counted, and reported as 'counted, not valued — cannot be tied to money'
    aliases: conversion, convert, purchase, sale, order, closed_won, signed

all-or-nothing: a batch with one refused event stores nothing and says which event failed

Refused by name — 33 metrics

  • click_through_ratea rate over impressions, not demand
  • commentsentiment, not demand
  • commentssentiment, not demand
  • ctra rate over impressions, not demand; a click that becomes a first touch is accepted as first_touch
  • engagementa composite of the above, not demand
  • engagement_ratea rate over vanity volume, not demand
  • followaudience size, not demand
  • followeraudience size, not demand
  • followersaudience size, not demand
  • followsaudience size, not demand
  • impressionreach, not demand
  • impressionsreach, not demand
  • likesentiment, not demand
  • likessentiment, not demand
  • link_clickscounted by the platform, not tied to a lead here; use first_touch for a click you can follow to pipeline
  • listenreach, not demand
  • listensreach, not demand
  • mentionsreach, not demand
  • playreach, not demand
  • playsreach, not demand
  • profile_visitsreach, not demand
  • reachreach, not demand
  • saveintent, not demand
  • savesintent, not demand
  • sharedistribution, not demand
  • sharesdistribution, not demand
  • subscriberaudience size, not demand
  • subscribersaudience size, not demand
  • video_viewreach, not demand
  • video_viewsreach, not demand
  • viewreach, not demand
  • viewsreach, not demand
  • watch_timeattention, not demand
Not written for the page — produced by the engine

What happens when you post something it will not report

The engine was run for this export and asked for the three cases a demo usually avoids: a namespace with no events, a conversion with no first touch, and a batch containing a vanity metric. Below is what it returned.

A namespace with no events

The report's basis label reads no events recorded for this client yet with 1 campaign present and no week or asset row. Nothing is drawn as a chart of zero performance.

events
0
measured
0
conversion_rate
null

not stated: no first touch was recorded here, so there is no denominator — refusing to imply one

A conversion with no first touch

One conversion was ingested through the events API with no first touch recorded. The report states revenue and refuses a conversion rate, because conversions ÷ first touches has no denominator here.

revenue
$1,800
conversion_rate
null
velocity stated
false

not stated: no first touch was recorded here, so there is no denominator — refusing to imply one

A batch with a vanity metric in it

A two-event batch whose second event is 'impressions'. The whole batch is refused and nothing is stored, and the response names the event index, the field and the code.

HTTP 422vanity_metric_excludedfield: event_typeindex 1

'impressions' is not accepted: reach, not demand. Paladia's attribution reports only events that connect to pipeline or revenue, so this is refused rather than stored. Accepted event types: conversion, first_touch, form_submission.

Nothing was stored: 1 event(s) in the namespace afterwards, 1 of them measured.

The refused batch, exactly as the API returned it

{
  "accepted": false,
  "batch_rule": "all-or-nothing — a refused event means the whole batch is refused and nothing is stored",
  "client_slug": "attribution-behaviour",
  "event_ids": [],
  "namespace": "data/clients/attribution-behaviour/events.json",
  "note": "1 of 2 events were refused, so none were stored. Malformed, off-vocabulary and vanity events are refused explicitly, never silently dropped.",
  "received": 2,
  "refused": true,
  "rejected": [
    {
      "code": "vanity_metric_excluded",
      "field": "event_type",
      "index": 1,
      "message": "'impressions' is not accepted: reach, not demand. Paladia's attribution reports only events that connect to pipeline or revenue, so this is refused rather than stored. Accepted event types: conversion, first_touch, form_submission.",
      "rejected_event": {
        "asset_id": "as_attribution-behaviour_w1_linkedin",
        "campaign_id": "cmp_attribution-behaviour_2w_4ec62ead",
        "event_type": "impressions",
        "occurred_at": "2026-10-03T09:30:00Z",
        "platform": "linkedin",
        "source": "ad_platform_export",
        "week": 1
      }
    }
  ],
  "stored": 0
}

How events get in

Events enter one client's namespace through POST /api/clients/{slug}/events — first_touch, form_submission or conversion, each validated against that client's own campaign and asset. A batch is all-or-nothing, and a metric that cannot be tied to pipeline or revenue is refused by name rather than stored.

A buyer's own tracking calling that endpoint with the client's real click-through, lead and order events. In this export every event is sample: the measured count is zero on purpose.

Sample source
mock-sample-seeder
Sample basis
sample events generated in mock mode, not measured results
Measured basis
events ingested from the client's own tracking
Velocity minimum sample
3
Seeded for this export
full-frequency-co: 96 sample (96 added this run) · torczon-digital: 102 sample (102 added this run)

The report's own rules

  • Only revenue-linked event types are accepted: first_touch, form_submission, conversion.
  • Values are summed only where an event carried one; events without a value are counted separately.
  • Conversion rate is conversions ÷ first touches, and is left unstated when there is no first touch.
  • Pipeline velocity is derived arithmetic over these events, with its sample size shown, and is withheld below 3 paired conversions.

These are refused at ingest and appear nowhere in this report: none of them can be tied to pipeline or revenue, and printing one beside a revenue figure would imply that link.

No ad platform is called and nothing is pulled from Meta, Google, LinkedIn or TikTok. Sample events are generated by Paladia's own seeder in mock mode; measured events are the ones a buyer's own tracking posted to this client's events endpoint.

Events with no value are reported as counted-but-not-valued; a figure that cannot be tied to money is not shown as a metric here.