Skip to content

Media and publishing

AI for journalism that still pays for itself

We work across the whole span of a publishing business: the subscriber whose card is declined at 03:00 the night before renewal, the four thousand copies that come back pulped from a wholesaler in Plovdiv, the meter rule editorial and ad sales have been arguing about for a year. Most of it is unglamorous — identity resolution across six systems, censoring correction on late EPOS data, consent state carried as a model feature — with a model at the end of it. We have not run a newsroom. What we have built is the machinery underneath one — a 300,000-listing European marketplace whose economics are content inventory, structured metadata and search-dependent demand, written up on our case studies page. The publishing specifics below come from the operators and published benchmarks we worked through before writing this page, and we will tell you on the call which parts we have shipped and which we have only read.

30 minutes with the engineer who would do the work — not a salesperson. No obligation, and you keep whatever we work out on the call.

Editor reviewing page layouts on screen and in print proofs at a newsroom desk

The numbers this sector is run on

≈4%
Median monthly subscriber churn, news brandsINMA benchmarking across roughly 317 news brands in 2025. Digital-only cohorts run 5–8%, print-and-digital bundles often 1–2%. The number that actually matters is cumulative: across INMA’s five-year analysis, the median news brand has lost about 1.7x more subscriptions than it currently holds active.
5–7%
Meter stop rate — recurring readers who reach the wallThe GNI Subscriptions Lab operating band for metered local and regional publishers, alongside paid stop conversion of 0.5%+ and a known-visitor rate above 5%. It is a benchmark for count-based meters — freemium, hybrid and content-selected walls sit outside it by design, and the first thing worth establishing is which model you are actually running. Inside a metered model, above roughly 10% the wall is usually destroying ad revenue without buying conversion.
20–40%
Share of gross churn that is a failed payment, not a decisionCard authorisation failure runs about 15% and is a decline at the moment of the request; SEPA Direct Debit returns 3–5%, but those surface days later, so the two are not the same measurement. Median dunning ladders recover around 50% of failed charges and the best 70–85%; Recurly reports 49% of failed transactions recovered across a full year, which is the same order of magnitude measured over a longer window. Nobody in this cohort chose to leave.
15–35%
Newstrade returns as a share of drawThe working band for newspaper distribution; book trade returns run 25–40% of shipped units because publishers deliberately overprint against stockouts. Each point off the returns rate is close to pure margin.

What we build

Subscriptions manager reviewing retention charts on a monitor

Retention scored against the renewal date, not the month

Cancellations cluster in the first 90 days and in the week around a renewal or a promotional price step, so the model runs on subscriber-day rows anchored to days-to-renewal. Billing state from Piano, Zuora or Omeda joins behavioural RFV from Snowplow or Deep.BI, with newsletter click rate rather than open rate — Apple Mail Privacy Protection made opens useless as a feature in 2021.

  • A separate uplift model on randomised offer exposures, so saves reach persuadables only
  • A permanent 5–10% untreated holdout; the quarterly number is incremental revenue, not AUC
  • Involuntary churn split out first — that part is a payments project, not a modelling one
Two colleagues comparing a news site layout on a large screen

The wall and the ad stack priced against each other

Expected ad revenue per pageview comes from Google Ad Manager Data Transfer at impression level; expected subscription value is propensity times price times survival. The decision layer in Piano Composer, Zephr or Poool picks free, meter, regwall or hard wall per request. On the ad side, floors are learned per slot, geo, device and consent state — TC String and Consent Mode v2 together — from won and lost bid landscapes rather than set globally.

  • Entitlement checked server-side at the edge, so walled body text never enters the DOM
  • Floors refreshed hourly by contextual bandit, not by a nightly batch job
  • Bidders with no win history removed — wrapper timeout is an LCP decision as much as a yield one
Archivist scanning a page beside shelves of bound volumes

An archive you can search, segment and license

Free-text keywords cannot carry a newsletter segment, a recommendation or a licensing conversation. Articles are classified into IPTC Media Topics by embedding retrieval over the term definitions followed by LLM verification of a shortlist, constrained to the vocabulary rather than generated. Entities resolve against an authority file keyed to Wikidata and ISNI, written back as NewsML-G2 or ninjs.

  • Auto-apply at hierarchy levels 1–3; levels 4–5 queue for one-click editorial confirmation
  • Every tag carries the model version and the Media Topics release it was applied against, so a bad run rolls back off the archive
  • Retrieval filters on licence expiry and correction status, so nothing corrected gets recycled
  • Rights status resolved per asset — owned staff copy, wire and syndicated content, freelance contracts and agency photography carry different answers, and the corpus you can license is smaller than the corpus you hold. We produce the inventory; the deal is yours
Journalists working at desks in a busy newsroom

Automation the newsroom will actually accept

The published failures share one root cause: generated text reaching readers without a human state transition. CNET corrected 41 of its 77 AI-written finance articles; Gannett shipped a literal [[WINNING_TEAM_MASCOT]] placeholder. So jobs bind to CMS workflow states in Arc XP, Brightspot, CUE or Superdesk, and machine output enters as a draft with a provenance flag that no schedule can promote on its own.

  • Correction rate per 1,000 published articles is the release gate, measured before and after
  • Headline variants go into a Chartbeat test, never straight onto the homepage
  • EN–BG translation runs against a locked glossary with a back-translation divergence check
  • Correction rate, time-to-publish and stories per FTE measured and shared with the works council before rollout, not after — the consultation is the gate, and a project that arrives without those numbers loses it

Worked examples

These are designs, and the ranges we would contract against, drawn from published sector data — not Palamed results. The four systems we have actually delivered are on case studies.

Renewal-anchored churn scoring with uplift-targeted saves

Problem

Cancellations cluster in the first 90 days and in the week before a promotional price step, but circulation only finds out when the cancel form is submitted. Save offers then go out blanket, discounting subscribers who would have renewed at list price anyway.

Approach

A discrete-time hazard model on subscriber-day rows — LightGBM, or a Cox/DeepSurv variant where the tenure curve carries the signal — scored daily against days-to-renewal rather than calendar month. Billing state from Piano, Zuora or Omeda (tenure, plan, promo step and its size, payment method, prior save history, grace-period events, and the January 2026 euro redenomination price step, which is still a live churn event in every Bulgarian subscriber base) joins behaviour from Snowplow, Chartbeat or Deep.BI (RFV, sessions over trailing 7/28/90 days, topic breadth across IPTC tags, app versus mobile web, push opt-in) and newsletter click rate rather than open rate, because Apple Mail Privacy Protection broke opens in September 2021. A second, separate uplift model — two-model or causal forest — trained on historical randomised offer exposures decides who is worth an offer. Orchestration through Braze or Sailthru, with a permanent 5–10% untreated holdout.

What we would target

10–25% lower voluntary churn inside treated deciles, and usually a larger margin gain than that, because a substantial share of previously discounted subscribers — in the implementations we have read, on the order of 40% — were going to renew at list price anyway. That share is the single number your own holdout settles in the first quarter, and it is the one we agree to measure before we agree a target. Reported as incremental retained revenue against the holdout; model AUC never appears in the board pack.

Total-revenue paywall decisioning

Problem

A fixed five-article meter is simultaneously too tight on high-ad-value traffic — killing RPM on a story that will never convert anyone — and too loose on the investigation people would have paid for. Editorial and commercial argue about it every month with no shared number.

Approach

Two models feeding one decision layer. Model A estimates expected ad revenue per pageview from Google Ad Manager Data Transfer files at impression level, segmented by placement, geo, device, referrer and consent state — the TC String and Consent Mode v2 together, because a consented TC String with Consent Mode denied prices nothing like a fully consented request. Model B estimates expected subscription value as likelihood-to-subscribe times offer price times expected survival. The decision layer in Piano Composer, Zuora Zephr or Poool then picks free, meter, regwall or hard wall per request, and executes at the CDN edge — a Cloudflare Worker or Fastly Compute with a server-side entitlement check — so walled body text never enters the DOM. That stops scraping and removes the layout shift a client-side wall causes, which is a Core Web Vitals decision as much as a revenue one.

What we would target

The Globe and Mail’s Sophi.io implementation — a system the Globe also sells, so read it as a vendor case study — reported articles selected for a hard wall averaging 10x total revenue, registrations up 222% and subscription conversions up 51% against their pre-implementation baseline. Applying our own rule below, halve it: the reproducible part for a first implementation is 15–35% conversion lift with ad RPM flat, plus a per-article number that ends the editorial-versus-commercial argument.

Involuntary churn recovery

Problem

A fifth to two fifths of gross churn is a failed payment rather than a decision. Recurring rebills are merchant-initiated and sit outside SCA once the mandate is authenticated, so the PSD2 damage lands somewhere else — at initial checkout, on any amount or schedule change that forces re-authentication, and on issuer-side soft declines where an MIT exemption is not honoured. Add expired and reissued cards and issuer risk rules, and subscriptions nobody intended to cancel die silently, with the standard three-retry ladder recovering about half of them.

Approach

Enable card account updater services — Visa VAU and Mastercard ABU — through Stripe or Adyen, and move to network tokens so a reissued card keeps working. Pre-dunning at T-30 on known card expiry, which averages about a 73% open rate against anything sent after a decline. Then a retry-timing model predicting the hour and weekday with the highest authorisation probability, conditioned on issuer BIN, decline code (a soft insufficient-funds behaves nothing like a hard do-not-honour), amount and prior retry outcomes. The ladder differentiates by LTV decile — a ten-year print-and-digital subscriber gets a phone call, a one-euro trial gets two emails — and SEPA Direct Debit becomes the offered fallback for long-tenure subscribers — 3–5% returns against roughly 15% authorisation failure on cards, though the two are measured differently and SDD failures surface days later. The trade you are making is a lower failure rate against SEPA Core’s unconditional eight-week refund right, a thirteen-month window on unauthorised claims and pre-notification on every amount change, which is why we offer it to long-tenure subscribers on stable pricing and never to trial or promotional cohorts.

What we would target

Dunning recovery moves from a typical 50% toward 70–85%, which for most publishers is a 3–8% lift in active subscriptions with no acquisition spend at all. It is the cheapest revenue in the building and it is almost always unowned, sitting in the gap between finance and marketing.

Print draw and returns optimisation

Problem

Returns of 15–35% of draw burn paper, ink, plates, inserts and haulage on copies that were pulped. Allocations were set years ago and adjusted by hand, wholesaler EPOS arrives up to ten days after the sale, and an outlet that sold out is recorded as having sold exactly its allocation.

Approach

Formulated as a newsvendor problem per outlet, title and day, ordering at the critical fractile cu/(cu+co) — cu the contribution lost on an unmet sale, including the advertising and insert contribution the copy carried and not only cover-price margin; co the marginal print-and-haulage cost net of wholesaler credit and recovered waste-paper value. Both are finance inputs, agreed with your circulation director in writing before the first model runs, because an underspecified fractile is confidently wrong. The optimiser then runs under a hard floor on audited circulation per title — a returns saving that costs you rate base is a loss — alongside bundle sizes, inserter capacity and van route cut-offs. Demand from gradient boosting or a Temporal Fusion Transformer on day of week, front-page topic taken from the IPTC tags on the flat plan, cover mounts and competitor promotions, school and public holidays, weather, local events and outlet type. The step almost everyone skips is censoring correction: sold-out outlets must have latent demand imputed, Tobit-style or through an EM loop, or the model learns your supply history and confidently recommends what you already print. Output lands in ppi Media or the circulation system before the plate deadline rather than after it.

What we would target

2–5 percentage points off the returns rate at constant or improved sell-out. At a regional daily this is usually the single largest margin item still available, it compounds across every edition, and it depends on no growth assumption whatsoever.

IPTC Media Topics tagging and archive backfill

Problem

Twenty years of archive tagged with free-text keywords typed by whoever filed the story. Newsletter segments are built on URL path regexes, recommendations recycle the same three sections, seller-defined audience cohorts cannot be constructed, and no AI licensing conversation can describe what the corpus actually contains.

Approach

Hierarchical classification into IPTC Media Topics — 1,200+ terms across five levels — by embedding retrieval over the term definitions followed by LLM verification of the shortlist. Never free generation, which invents terms the vocabulary does not contain. Named entities link to a publisher-maintained authority file keyed to Wikidata and ISNI, so two spellings of the same politician resolve to one node. Confidence thresholds differ by level: auto-apply at levels 1–3, queue levels 4–5 for one-click editorial confirmation, because sibling terms deep in the tree are where precision collapses. Tags write to NewsML-G2 or ninjs in the CMS and to schema.org NewsArticle about/mentions on the page. Bulgarian needs a maintained label layer — IPTC publishes Media Topics translations in over a dozen languages and Bulgarian is not among them.

What we would target

85–95% of new articles tagged in flow with no desk time, and an archive that can finally be segmented, recommended over, packaged as Seller-Defined Audience cohorts and inventoried for licensing — with rights status per asset, and the machine-readable reservation that makes Article 4 enforceable (robots.txt AI directives, Cloudflare crawler controls, RSL) attached to the same records. Per-level precision comes from a stratified, human-audited sample and is published, not asserted.

Home-delivery route economics

Problem

Half of print volume is usually home-delivered subscription copies, where there are no returns at all and the levers are different ones: route density, carrier cost per copy, vacation holds and redirects, delivery complaints. Cost per copy rises fastest on the thinnest routes, and nobody can say which postcodes have stopped paying or what withdrawing from them would cost in cancellations — so the decision gets argued in the board meeting instead of priced.

Approach

Route-level contribution per copy built from the delivery roster rather than from a district average: carrier payments, fuel and depot cost against the subscription contribution actually carried on that route. Then a delivery-complaint-to-cancellation hazard, estimated from the complaints log joined to the cancel log, so a missed delivery carries a churn number rather than an apology. Those two feed a consolidation and withdrawal optimiser with a modelled churn cost per withdrawn address, and a mail or digital-only substitution offer priced into each option rather than assumed to convert.

What we would target

A ranked withdrawal schedule with a churn cost attached to every route, so the question of where home delivery stops paying is answered with a number. The same model runs the opposite way: which thin routes turn positive if two titles share a carrier, or if a vacation-hold rule stops paying for undelivered copies.

Systems we work with

We integrate with what you already run. If a platform below is missing, tell us — the pattern usually transfers.

Editorial, print and production

  • Arc XP with WebSked
  • Brightspot
  • WordPress VIP
  • Superdesk (Sourcefabric) and Stibo DX CUE / CUE Print
  • WoodWing Studio
  • Censhare
  • Atex
  • Desk-Net
  • Adobe InDesign
  • InCopy and K4 pagination
  • ppi Media PrintNet
  • Agfa Arkitex
  • Kodak Prinergy
  • Ferag and Muller Martini mailroom systems, WAN-IFRA IFRAtrack

Paywall, billing and circulation

  • PianoComposer, VX, ID and Analytics
  • Zuora Zephr
  • Poool
  • Pelcro
  • Aptitude Subscriber Management
  • Omeda and Naviga circulation and audience management
  • Recurly
  • Chargebee
  • Stripe Billing
  • Adyen
  • Visa Account Updater and Mastercard Automatic Billing Updater
  • SEPA Direct Debit mandates and network tokenisation

Audience data, consent and messaging

  • Chartbeat
  • Parse.ly
  • Marfeel
  • Deep.BI
  • Snowplow behavioural pipelines
  • self-hosted
  • Permutive
  • BlueConic
  • Tealium
  • Adobe Experience Platform
  • Sourcepoint, Didomi, OneTrust, UsercentricsIAB TCF v2.2 and the TC String, plus Google-certified CMP status, Consent Mode v2 and the Additional Consent string, without which GAM will not serve personalised demand however good the TC String is
  • Sailthru (Marigold)
  • Braze
  • Iterable
  • Whisper, Deepgram and DeepL in EN–BG editorial workflows

Ad stack, metadata standards and book supply

  • Google Ad Manager 360 with Data Transfer files
  • Prebid.js and Prebid Server
  • Amazon TAM
  • Google Open Bidding
  • Magnite, Index Exchange, PubMaticcurated deals against first-party cohorts
  • IAB Tech Lab OpenRTB 2.6
  • ads.txt
  • sellers.json
  • Seller-Defined Audiences
  • IPTC Media Topics, NewsML-G2 and ninjs; EDItEUR ONIX 3.0, Thema and BISAC
  • Klopotek
  • Virtusales Biblio
  • Bookwire; EPUBCheck and DAISY Ace

What we design against

10–25%
Lower voluntary churn inside treated decilesThe published range for uplift-targeted retention. We scope it as a target measured in incremental retained revenue against a permanent 5–10% untreated holdout, not as model AUC and not as a Palamed result.
50% → 70–85%
Failed-payment recovery through the dunning ladderBaseline is the median publisher at roughly 50% recovery; best-in-class sits at 70–85%. For most publishers closing that gap is a 3–8% lift in active subscriptions with zero acquisition spend.
2–5 pts
Off the returns rate at constant or better sell-outMeasured against a 15–35% baseline. The ceiling here is logistics — wholesaler EPOS latency of up to ten days, bundle sizes, mailroom inserter capacity — not model quality, and we say which one binds before the contract.

Regulation and standards in scope

  • GDPR (Regulation (EU) 2016/679) with the ePrivacy Directive as transposed through the Bulgarian Electronic Communications Act — and it is ePrivacy, not GDPR, that actually gates the analytics cookie. Subscriber lifecycle modelling runs on contract performance; behavioural advertising profiling runs on consent. Two lawful bases, two architectures. On top of that, EDPB Opinion 08/2024 on consent or pay (17 April 2024), the General Court dismissing Meta’s challenge on 29 April 2025 and the Commission’s DMA finding of 23 April 2025 leave pay-or-okay walls on contested ground — though the Opinion is addressed to large online platforms, and several regulators, the German DSK and the Austrian DSB among them, have accepted publisher models where the paid alternative is genuinely equivalent and reasonably priced. The exposure is real but conditional, and the conditions are testable. Either way, a forecast assuming 99% consent from such a wall is forecasting a legal position, not a business. Supervision in Bulgaria sits with the Commission for Personal Data Protection (КЗЛД).
  • EU AI Act (Regulation (EU) 2024/1689) — Article 53(1)(d) training-data summaries on the AI Office template from 2 August 2025, with pre-existing models given until 2 August 2027; Article 50 transparency obligations from 2 August 2026. The provision that matters in a newsroom is Article 50(4), second subparagraph: the labelling duty for AI-generated text published to inform the public on matters of public interest falls away where the content has undergone human review or editorial control and a named person holds editorial responsibility. That is exactly what the CMS state machine below is for — the guardrail is not only a quality control, it is the thing that keeps your published output outside the labelling obligation. Editorial use is generally not high-risk, but disclosure posture and vendor due diligence are now a board question rather than a desk one.
  • DSM Copyright Directive (EU) 2019/790, transposed in Bulgaria through the Copyright and Neighbouring Rights Act (ЗАПСП). Article 4 makes commercial text and data mining lawful only where rights are reserved in a machine-readable way — the legal basis under robots.txt AI directives, Cloudflare pay-per-crawl and the RSL standard. Article 15 creates the press publishers’ right that any licensing conversation rests on.
  • European Media Freedom Act (Regulation (EU) 2024/1083), main obligations applicable 8 August 2025 — Article 6 ownership disclosure, Article 24 auditable audience measurement, Article 25 state advertising transparency. Bulgaria has designated no authority for the Article 6 national database and has not implemented Article 24 — but EMFA is a Regulation and directly applicable, and Article 6(1) binds you as a media service provider regardless: ownership and beneficial-ownership information has to be directly accessible to your readers today, database or no database. The Mandatory Deposit Act declarations to the Ministry of Culture remain the national instrument alongside it, not instead of it.
  • European Accessibility Act (Directive (EU) 2019/882), applicable since 28 June 2025 and transposed by Bulgaria’s Accessibility Requirements for Products and Services Act promulgated 11 April 2025. For a subscriptions publisher the binding scope is e-commerce services, not e-books: the subscription checkout, the offer and paywall screens, account management and the news app must meet WCAG 2.1 AA against EN 301 549. This is why we render the wall server-side at the edge rather than as a client-side overlay — an injected DOM overlay is both a CLS event and an assistive-technology failure. Where a book list exists, EPUB Accessibility 1.1 and schema.org accessibility metadata mapped to ONIX 3.0 Codelist 196 apply on top, with the accessibilitySummary human-written. Alongside it: 9% Bulgarian VAT on books and periodicals since 1 January 2023, where bundling a non-qualifying service risks the 20% rate on the whole bundle, and the Omnibus Directive constraints on how a personalised offer may be displayed as a discount.

A churn model is only ever as good as the identity it is scoring.

What you are probably thinking

Our churn model just tells me price-sensitive people cancel. I knew that.

Correct, and that is exactly why a propensity ranking on its own is operationally worthless. The deliverable is a second, separate uplift model estimating the incremental effect of the save action, trained on randomised offer exposures, so the offer goes to persuadables rather than to sure-stayers and sure-leavers. Without that split you pay to retain people who would have renewed at full price, which shows up as lower churn and lower margin in the same quarter.

Our data lives in six systems and none of them agree on who a subscriber is.

That is the first project, and it is not glamorous. Identity resolution across the CMS, the circulation system, the billing platform, the CMP and the analytics pipeline, with a deterministic key where an email exists and an explicit unresolved bucket where it does not — no probabilistic matching dressed up as certainty. Print subscribers frequently have no email at all, which is precisely why digital activation above 75% is a GNI benchmark and a hard prerequisite before any behavioural model touches that segment.

Every article you put behind the wall costs me ad revenue. How is this not robbing Peter to pay Paul?

It is exactly that trade-off, which is why it has to be priced rather than argued. Expected ad revenue per pageview comes from GAM Data Transfer at impression level; expected subscription value is propensity times price times survival. The Globe and Mail’s Sophi.io implementation found that the articles worth walling averaged 10x total revenue — worth walling is doing all the work in that sentence, and the Globe sells Sophi, so halve the headline the way we tell you to halve any vendor case study. Only a minority of articles clear the bar, and a fixed meter has no way of telling you which ones.

We tried an AI writing tool once and it embarrassed us in public.

The published failures share one root cause: generated text reaching readers without a human state transition. CNET corrected 41 of 77 AI-written finance articles, Gannett published literal template placeholders, and Sports Illustrated ran machine-generated stories under invented bylines with AI-generated author headshots, produced by the content supplier AdVon Commerce. The architectural answer is that machine output enters the CMS as a draft carrying a provenance flag and cannot change state without a named human, enforced in the workflow engine rather than in a policy PDF, with correction rate per 1,000 articles as the release gate.

Search traffic has collapsed. Your funnel maths describes a world that no longer exists.

It does, and that is the argument for this work rather than against it. Chartbeat’s data for the year to November 2025 put Google Search referrals to publishers down roughly 33% globally and 38% in the US, with Discover down 21%, while ChatGPT contributed about 0.02% of publisher referrals and Perplexity 0.002% — substitution three orders of magnitude short. We restate these figures against the current Chartbeat and Reuters Institute releases each quarter; if the numbers on this page are more than a quarter old, ask us for the current ones on the call. So we do not sell acquisition optimisation here. The value moved to retaining the subscribers you already converted, pricing the sessions you still get, and taking cost out of production and distribution.

Our journalists’ union will stop this before it ships.

They will, and they should be given something to negotiate against rather than a demo. What we bring to that meeting is a written scope of which tasks are in and which are explicitly excluded, the correction rate and time-to-publish baselines measured before anything changes, the provenance flag that makes every machine-touched artefact auditable after the fact, and a named human transition that cannot be automated away by a later configuration change. We have also never built a pipeline that removes a byline, and we will put that in the contract. If the consultation still lands on no, that is a legitimate outcome and we stop — but it should be a decision about scope, not about a black box nobody was shown.

When we are the wrong choice

  • Winning back search traffic. Referrals were down about a third year on year in Chartbeat’s data for the year to November 2025, and AI assistants replace roughly none of it, so an SEO recovery programme is not something we will sell you. Anyone who does should show you their own referral chart, with its measurement window on it, first.
  • Volume content. We do not build pipelines that publish machine-written articles to readers without a named human state transition, and we will not remove that gate on request. If the brief is more articles per euro, we are the wrong shop and will say so on the first call.
  • Replacing your CMS or subscription platform. An Arc XP or Piano migration is a multi-year programme whose critical path is templates, entitlements and print integration, not models. We work alongside that prime contractor, never instead of one.
  • The whole of this page as one engagement. A publisher-scale programme is four to six sequenced projects over eighteen months, and we are sized for one of them at a time. We take the payments ladder, or the draw model, or the tagging backfill as a scoped project with a named baseline, and we work under your prime contractor on the rest. If you need a single supplier to own all five, we are the wrong shape and will say so on the first call.

Questions we get asked

We have forty thousand subscribers, not four million. Is there enough data?

Enough for churn and payments work, which operate on subscriber-day rows — forty thousand subscribers over three years is tens of millions of observations. Usually not enough for per-user paywall personalisation, where the honest recommendation is segment-level rules plus content propensity, because that needs article-level data rather than user-level. Which of the two applies to your volumes is something we tell you before a contract, not after one.

Most of our traffic never consents to analytics. Does GDPR kill this before it starts?

Only if the design pretends otherwise. Subscriber lifecycle modelling runs on contract performance under a different lawful basis than ad-tech profiling, so retention work is largely unaffected. On the anonymous side we model on consented traffic and then verify the scoring transfers to non-consented visitors using server-side, non-personal signals only — referrer class, article topic, device class, time of day. If a plan requires 100% consent it is not a plan. And if you run consent or pay, read EDPB Opinion 08/2024 before you build a forecast on it.

Will this take the homepage away from our editors?

No, and it should not arrive as a black box either. The Globe and Mail is the working reference: algorithmic placement with editors receiving curation snapshots every ten minutes and full override authority, plus hard editorial constraints encoded as rules — this story is pinned, this section always gets a slot, no more than N items from one topic. The metric worth arguing about is intra-list diversity and coverage, not accuracy, which is why the RecSys Challenge on Ekstra Bladet data scored those alongside AUC.

Our A/B tests never replicate the numbers a vendor promises. Why would yours?

Because paywall and offer tests are confounded by the news cycle more than by the treatment — one election week or one major local story moves conversion further than any wall change. The answer is permanent randomised holdouts, geo or hashed-user splits rather than self-selected cohorts, a pre-registered primary metric, sequential testing with proper alpha spending, and incremental revenue reported against the holdout. Assume the honest number is roughly half the vendor case study, and plan the business case at that level.

We publish in Bulgarian. Do these models actually work on our language?

Partly, and it changes the build rather than blocking it. IPTC publishes Media Topics translations in over a dozen languages and Bulgarian is not among them, so the taxonomy needs a maintained Bulgarian label layer that somebody owns. Multilingual encoders and teacher-student distillation now perform well on Slavic languages for topic classification, but the claim has to be validated on your own held-out set with precision reported per hierarchy level. Nobody should accept a Bulgarian promise backed by an English benchmark.

What do we own when you leave?

The pipeline, the feature definitions, the retraining runbook and the evaluation harness, in your repository and running on your infrastructure, plus a documented rollback to the previous rules-based behaviour. Drift monitors watch both the feature distribution and the label distribution, because a price change moves the second one without touching the first. Anything scored inside a vendor black box should be a choice you made deliberately, not a default you inherited.

Our security review will ask where our subscriber data goes. What is the answer?

Nowhere. We work as a processor under an Article 28 DPA inside your cloud tenancy and your repository; subscriber-level data does not move to Palamed infrastructure, and nothing in your data is used to train anything we take elsewhere. Sub-processors are listed before signature and there are none by default. As a larger media group you are likely in scope for NIS2, so we work to your incident-reporting and change-control process rather than proposing our own, and access is named individuals with your SSO and your logging, revoked at handover. Where a model must be scored outside your tenancy we will say so before the contract and explain why, or design around it.

Warm light ribbons on a dark field

Book a 30-minute retention and yield review

Bring last month’s cancellations split into voluntary and failed-payment, plus one Google Ad Manager revenue report. On the call we will tell you whether the money is leaking through the payments ladder, the meter, or the price step at renewal — and which of the three is worth paying to fix first.

You talk to the engineer who would do the work, and if your dunning ladder already recovers above 70% and your meter sits where your wall model says it should, we will say that too and there is nothing here to sell you.