Analytics
Every part of the platform throws off behavioural exhaust. A reader runs a search, an assistant serves a passage, a customer buys a book or lets a subscription lapse. Analytics is where those signals accumulate — the platform's behavioural memory. It is deliberately not a reporting bolt-on that watches from the outside: what lands in the analytics lake flows back into the platform (search ranking boosts, trending labels) and forward into operational uses (marketing audiences, royalty pool inputs).
One positioning rule shapes everything on this page: analytics never
rides the public API. It is an internal stream with governed
consumers. Integrators see its outcomes — better-ranked results, a
trending label, eventually a royalty statement — never the raw
telemetry.
In design
Analytics as a named area is still in design. What is settled: search telemetry and relevance feedback already land in the analytics lake via a streaming pipeline; an Analytics Refresh workflow patches per-Resource performance metrics back into search; and consumption events carry facts, never royalty weights. What is not settled: the warehouse shape for commerce signals, how audiences are built and surfaced to Marketing, and the pool-attribution mechanics that belong to the future Royalty service described on Royalties. Any event names sketched here are illustrative, not yet claimed.
Three families of signal
Three kinds of behaviour matter to the platform, and each arrives by a different door.
| Family | What it captures | Where it comes from |
|---|---|---|
| Search telemetry | What people looked for, and what they judged useful | Executed searches and relevance feedback from the Content Lake |
| Consumption | What was actually served, and to whom | One usage event per served response, on the platform-usage bus |
| Commerce | What was bought, subscribed to, or refunded | First-party orders on Packt storefronts, via Orders |
Search telemetry is the family that exists today. Every executed
search against the Content Lake emits a
search.executed record, and readers' relevance feedback joins it —
both stream through a delivery pipeline into the analytics lake, where
they sit as queryable tables rather than log files. This is the raw
material for everything in the "flowing back" section below.
Consumption is the AI-era signal. Whenever an AI surface serves
content — a first-party assistant, a licensed partner — one
platform.usage.content.v1.served event is published per served
response. Each item in the event carries the resource and version that
was served, the Work it belongs to, and plain facts about the serve:
its rank in the response, whether it was served, whether it was cited.
The rights basis under which the serve was allowed is pinned at serve
time, so later contract changes never rewrite history. The
plain-English version of this story lives on
AI usage under How AI use is tracked.
Commerce is the oldest signal of all: orders, subscriptions, and refunds on Packt's own storefronts. Those transactions create entitlements and feed royalties in their own right; to analytics they are the demand-side complement to consumption — proof that attention converted. Catalogue and promotion context from Product Management tells analytics which storefront presentation the customer actually saw.
Facts in, judgements out
The consumption stream records what happened, never what it is worth. A usage event says "this resource was served at rank three and cited" — it never says "this serve is worth 0.4 of a pool share".
That separation is deliberate. Rates and bases live in the contract model on Royalties; the weights that divide a pool are a versioned policy owned by the future Royalty service, applied at settlement. Because the observed facts are immutable and the valuation is applied later, Packt can refine how a pool is attributed without ever re-observing behaviour — the memory stays honest while the judgement evolves.
What flows back into the platform
Analytics would be inert if it only accumulated. The first consumers of the lake are the platform's own services.
flowchart LR
S["Search telemetry"] --> LAKE["Analytics lake"]
U["Usage events"] --> LAKE
O["Orders & subscriptions"] --> LAKE
LAKE -->|Analytics Refresh| PERF["Per-Resource performance<br/>fields in search"]
LAKE -->|system labels| TREND["Platform-maintained labels<br/>e.g. trending"]
LAKE -.->|in design| AUD["Audiences<br/>(Marketing)"]
LAKE -.->|in design| POOL["Pool inputs<br/>(Royalty operations)"]
An Analytics Refresh workflow periodically aggregates the lake into per-Resource performance metrics — measures like thirty-day sales — and patches them onto the corresponding rows in the search estate. Ranking can then blend textual relevance with proven performance: a title that demonstrably converts earns a boost no editor had to configure.
The same aggregates drive system labels. Labels like trending are
platform-maintained rather than human-applied — analytics decides when
a Resource has earned one and when it has cooled off, and the label
machinery described in
Access and labels applies the
change. Nobody curates trendiness by hand.
What flows forward
Two consumers sit downstream of the lake rather than inside the platform loop, and both are in design.
- Audiences. Marketing wants segments built from behaviour — readers who searched for a topic, consumed adjacent content, but never bought. Analytics is where such audiences would be computed; how they are surfaced to campaign tooling is an open question.
- Royalty pool inputs. Subscription-style and AI surfaces settle from consumption pools, and dividing a pool fairly requires exactly the served/cited facts the usage stream preserves. The future Royalty service described on Royalties will consume usage aggregates as its attribution input; analytics keeps the books it will read.
Never on the public API
There is no /analytics endpoint, and none is planned. Telemetry rides
internal buses and internal pipelines; the lake's consumers are
registered platform services and governed internal tooling, each
reading under its own scopes. The events integrators can consume are
the platform's platform signals, documented on
Events — deliberately thin notifications, not
telemetry.
If future work does claim analytics-owned events, they will follow the
platform grammar (platform.<service>.<entity>.v<major>.<verb>). The
sketches below are illustrative, not yet claimed:
| Illustrative event | Would signal |
|---|---|
platform.analytics.metrics.v1.refreshed |
Per-Resource performance metrics were recomputed |
platform.analytics.audience.v1.updated |
An audience segment changed membership |
For the vocabulary used on this page — Resource, Work, entitlement, system label — see the glossary.
Related pages
- Search — where search telemetry originates and where performance metrics are patched back.
- Royalties — the royalty model today, and the future Royalty service that will consume usage aggregates.
- AI usage — how AI use is tracked, in plain English.
- Events — the platform event signals integrators can consume, as distinct from internal telemetry.
- Content Lake — the content estate whose behaviour analytics remembers.