Skip to content
Centriu
Centriu Atlas

Portfolio-Wide Report Batch Generation Automation: One Call for the Whole Client Roster

Portfolio-wide report batch generation, through Centriu Atlas, replaces opening the same report modal one client at a time by letting one call generate — and, if requested, immediately send — reports for up to 40 clients at once, processed three at a time rather than all simultaneously or one by one. Each client's outcome comes back individually: generated, already existed, or failed, each with its own message, so a team can see exactly which reports from a batch of thirty actually went out and which need a second look, instead of a single pass/fail answer for the whole run.
Up to 40 clients, one call
Every outcome reported individually
Command center screen with real metrics
The whole roster, one call, itemized results.

Why one report at a time does not scale with a real client roster

Generating a single client's report is a small task; generating the same report for every active client in a real agency roster, one modal at a time, every single month, is not — it is the same small task multiplied by however many clients are on the books, with no way to tell, partway through, which ones are already done and which ones still need attention.

How the underlying problem shows up before you fix it

A team opens the same report-generation modal dozens of times in a row at the start of every month, once per client.

Halfway through generating reports for the whole roster, nobody can say which clients are already done without checking each one individually.

One client's report generation fails partway through a month-end push, and it is unclear whether that stopped everyone else's reports too.

A team wants to both generate AND send the whole portfolio's reports in one motion, and today that is two separate manual steps per client.

Running the whole portfolio at once, unthrottled, risks overwhelming the AI narrative provider or the database with everything firing at the same instant.

Why a portfolio-wide batch needs more than a loop over "generate one"

Naively looping "generate one report" across an entire client list either runs everything sequentially — which is safe but slow enough to time out on a large roster — or fires everything at once, which risks overwhelming a database and an AI provider that has its own rate limits, causing failures that have nothing to do with any individual report being wrong. And once a batch can partially fail, silence is not an acceptable outcome: a team running reports for thirty clients needs to know, specifically, which ones succeeded, which already existed, and which genuinely failed — not just whether the request as a whole returned an error.

How Centriu Atlas processes the whole portfolio

One call accepts either a specific list of client IDs or, when none is given, every active client in the organization, along with the month and year to generate for and whether to also send once generated. The batch is capped at 40 clients per call — an explicit, documented ceiling chosen so a batch always finishes within the request's time budget rather than being cut off partway through — and is additionally rate-limited to 3 batch runs per rolling 5-minute window per organization, so a batch cannot be re-triggered by accident moments after the last one started.

Clients are processed in groups of three at a time, not all at once and not strictly one by one — a deliberate middle ground between finishing quickly and not overloading the database or the AI narrative provider's own rate limit. Each client's result comes back individually: a successful generation, an "already exists" outcome when that period was already generated (worded as informational, not as an error, since a batch of thirty should not look thirty times worse than it is because half the reports were already done), a specific failure message, and — when sending was requested — whether the send itself succeeded, including the number of recipients it actually reached.

What is actually built today

One call generating (and optionally sending) reports for a specific client list or the organization's entire active roster.

A hard cap of 40 clients per batch, with an explicit rejection message stating the limit when it is exceeded, rather than silently truncating the list.

Concurrency of 3 clients processed at a time — fast enough to finish a real roster within the request's time budget, throttled enough to respect the AI narrative provider's own rate limit.

A dedicated rate limit of 3 batch runs per rolling 5 minutes per organization, independent of the per-client concurrency.

Per-client, individually reported outcomes — generated, already existed, or failed — each with its own message, never a single pass/fail for the whole batch.

An optional immediate send per client right after generation, with its own success/failure reported alongside the generation result.

Thirty clients, one call, three distinct outcomes (illustrative scenario, not a real client)

An operations lead triggers a batch for the organization's 30 active clients at month-end, with sending turned on. The batch processes them three at a time: 26 generate and send successfully, 3 already had a report for that period from an earlier manual run (reported as "already existed," not as failures), and 1 fails because that client has no report recipients registered yet. The response lists all 30 outcomes individually, so the operations lead fixes the one real gap — adding a recipient for that client — without needing to re-check the other 29.

What changes operationally

Month-end reporting for a whole client roster stops being a linear sequence of identical manual steps and becomes a single triggered run with a clear, itemized outcome. A partial failure in a batch of thirty is visible as exactly what it is — one specific client with one specific reason — instead of an ambiguous all-or-nothing result that leaves a team re-checking everyone to find the one that actually needs attention.

When this is not the right fit

A roster larger than 40 active clients cannot be run in a single batch call — the cap is a hard ceiling, and a larger portfolio needs to be split across more than one call (or a subset selected by client ID) rather than run in one shot. A team wanting the batch itself to run automatically on a schedule will not find that here — it is triggered by a call, the same way single-report generation is, not by a cron dispatching it unattended.

A modal opened thirty times vs. one itemized batch call

Generating reports for a whole client roster one modal at a time multiplies a small task by the size of the roster, with no visibility into progress until every single one has been clicked through. Centriu Atlas instead processes the whole target list — up to 40 clients — in one throttled call and reports each client's specific outcome individually, so a team spends its attention on the one report that genuinely needs it instead of re-confirming the twenty-nine that were already fine.

Related systems

Main system: Centriu Atlas.

What it does NOT do

  • Does not accept a batch larger than 40 clients — the request is rejected outright with the limit stated, rather than silently processing a subset.
  • Does not process the whole batch strictly serially or all at once — clients are processed in groups of 3 to balance speed against provider and database load.
  • Does not report a batch as one pass/fail outcome — every client in the batch gets its own individually reported result.
  • Does not treat an already-existing report for the period as a failure — it is reported as informational, distinct from a genuine generation failure.
  • Does not run on an automatic schedule — a batch is triggered by a call, the same way a single report is, not dispatched unattended by a cron.
  • Does not let a batch be re-triggered without limit — a rolling rate limit of 3 runs per 5 minutes per organization applies independently of the per-client concurrency.

Security and governance

Batch generation and sending run scoped to the organization that owns the target clients, behind the same permission check as single-report generation, and require an authenticated actor in the organization's own workspace. Client data aggregated into each report follows Brazil's LGPD (Law No. 13,709/2018). Full detail on access control lives at /governanca and /iso.

Pricing and contracting

Available by monthly subscription, with tiered plans. Values and terms come from the official pricing table at /precos (Centriu's central source — never restated here).

Frequently asked questions

How many clients can one batch process?

Up to 40. A batch larger than that is rejected outright with the limit stated, rather than silently processing part of the list.

Are all 40 clients processed at the same time?

No — they are processed in groups of 3, a deliberate balance between finishing quickly and not overwhelming the database or the AI narrative provider's own rate limit.

What happens if one client's report fails to generate?

It is reported individually with its own failure message; the rest of the batch continues and is unaffected.

Can a batch also send the reports, not just generate them?

Yes — an optional flag sends each report immediately after it generates, with its own send outcome reported alongside the generation result.

How often can a batch be run?

Up to 3 batch runs per rolling 5 minutes per organization — an independent rate limit on top of the per-client concurrency.

What does Centriu Atlas cost?

It is sold with tiered plans, starting at a published entry price, with a fail-closed 4,000-credit-per-month AI usage cap — exact current values are on the central pricing page.

See how Centriu Atlas generates a whole client portfolio's reports in one call

Reach our commercial team directly, or leave your details below — we'll follow up with guidance for your case.

Sources

  1. Centriu Atlas — public product page — Centriu, 2026-07-20 · link(primária)
  2. Centriu Atlas — public factsheet (API, JSON) — Centriu, 2026-07-21 · link
  3. Law No. 13,709/2018 — Brazil’s General Data Protection Law (LGPD) — Presidência da República (Brazil), 2018-08-14 · link

Last material update on .

By · AI-assisted production, with human review