Skip to content

Create reports

The AI assembles your monthly/weekly report end-to-end and outputs it as an HTML slide deck. You can run data-source discovery, precheck, data collection, slide construction, and HTML rendering in a single command — or step through each stage with confirmation.

  • “Make me a nice-looking report in one command.”
  • “Check whether the data is ready before generating.”
  • “Save my custom report settings so I can reuse them.”
  • “Confirm in advance whether I can build the Contribution slides.”
  • “Generate a report that includes Before/After comparison.”

Prompt 1: Generate a report in one command

Section titled “Prompt 1: Generate a report in one command”

Specify the target period and a comparison period, and complete everything from Data precheck to HTML slide deck output in a single command.

  • You want a one-command HTML output for the most recent advertising report.
  • You want to run your month-end / week-end standard report with the same steps every time.
  • You only need the final result and would rather not step through the pipeline manually.
Generate a standard report for period {{PERIOD}}, comparison period {{COMPARE_PERIOD}}.
Use HTML output mode and run precheck → data collection → slide construction →
HTML rendering automatically in sequence. max_pages {{MAX_PAGES}}.
If any issue comes up mid-flight, stop and ask me.

Placeholders:

PlaceholderDescriptionDefault source
{{PERIOD}}Target period (e.g., 2026-04-01–2026-04-30)User input (default: most recent finalized month)
{{COMPARE_PERIOD}}Comparison period (e.g., 2026-03-01–2026-03-31)User input (default: previous month, same length)
{{MAX_PAGES}}Max slide count (e.g., 10)Default 10
  1. Data precheck — Lightly verifies that the SQP, ad reports, and sales data sources are all available for the target period.
    • Why precheck first: Report generation takes time, so we want to avoid failing at the very last stage because of missing data.
  2. Data collection — Once precheck returns ready, gathers KPI, Contribution, and Before/After comparison material from the validated data sources.
    • Why also pull Before/After: So the report includes effect verification for any actions taken during the period.
  3. Slide composition — Builds slides in this fixed order: title / summary / KPI / Contribution / Before/After / next-month plays.
    • Why fixed order: Monthly reports are skimmed by executives and agency clients, and a consistent reading order improves their efficiency month over month.
  4. HTML rendering — Renders the slide deck to HTML and returns a shareable URL.
    • Why HTML: It works for Slack delivery, embedding in internal wikis, and PDF export equally well.
  5. Mid-flight stop logic — If precheck returns blocked / needs_confirmation, halts immediately and proposes next steps.

Report generation complete — Period: 2026-04 / Comparison: 2026-03

ItemResult
Precheckready
Data collectionDone (SQP 4 weeks / ads 30 days / sales 30 days)
Slides10 (summary 1 / KPI 2 / Contribution 3 / Before/After 2 / next-month plays 2)
HTML previewhttps://reports.picaro.ai/r/XXXXXX

The preview URL is valid for 7 days. To share via Slack, paste the URL directly. Reply “regenerate” to rebuild from scratch, or specify a single slide (e.g., “swap out just the KPI slide”) for partial replacement.

  • If precheck returns blocked, the run stops before data collection (prevents reports built on invalid data).
  • When estimated values are involved, a note is automatically inserted at the top of the deck.
  • Sensitive fields (partner names, account info, etc.) are automatically masked (redacted or shown as ”***”).
  • On failure, the system falls back from the last successful stage (template-only layout to preserve presentation).
  • The HTML preview URL is valid for 7 days; after that you must regenerate.
  • If the sample size is insufficient (target-period rows below threshold), a warning is shown at the top of the deck.
PhaseStateConditions
Phase 1 (now)One-shotAvailable with just Picaro connected
Phase 2 (Q3 2026)Month-end manualRegister a report rule + save as a “stored prompt” for one-click month-end
Phase 3 (Q4 2026)Month-end automated + Slack deliverySpecify rule ID for automatic month-end generation, deliver HTML URL via Slack
Phase 4 (2027)Month-end auto + emergency generationAuto-generate an ad-hoc report when a KPI anomaly is detected

Q: Can I paste the generated HTML report into Slack for delivery? A: Yes. The HTML preview URL unfurls nicely in Slack, so you can use it to share with internal stakeholders and clients. From Phase 3, Slack workflow integration will deliver it automatically.

Q: Can I change the slide count from 10? A: Yes. Set {{MAX_PAGES}} up front, or give a follow-up instruction like “compress to just the KPI slides” to adjust after generation.


Step through the four stages — precheck, data collection, slide construction, and HTML rendering — one at a time, so you can customize the slide composition midway.

  • You want to inspect intermediate artifacts at each step.
  • You want to confirm data availability before kicking off data collection.
  • You want to edit the slide composition before rendering to HTML.
Build the report step by step:
1. Run precheck for period {{PERIOD}} / comparison {{COMPARE_PERIOD}}.
2. If status=ready, run data collection.
3. Show me the slide composition (apply my edits if any).
4. Render to HTML.
Wait for my confirmation between steps before moving on.
If you hit blocked / needs_confirmation, stop and tell me.

Placeholders:

PlaceholderDescriptionDefault source
{{PERIOD}}Target periodUser input
{{COMPARE_PERIOD}}Comparison periodUser input
  1. Step 1: Precheck — Runs the same precheck logic as Prompt 1.
    • Why a standalone first step: So you can decide whether to proceed when data is missing or anonymization is high.
  2. Step 2: Data collection (after approval) — Once ready, starts collection only after you reply “next.”
    • Why gated: To support cases where you want to change the target period after seeing the precheck results.
  3. Step 3: Show slide composition — Presents a draft in this order: title / KPI / Contribution / Before/After / next-month plays.
    • Why before HTML: So edit requests like “drop the Contribution slides, beef up the KPI section” can be reflected before rendering.
  4. Step 4: HTML rendering — Once the composition is finalized, renders to HTML and returns a shareable URL.
  5. Inter-step state management — Keeps intermediate artifacts so you can step back (re-run a prior step) if needed.

Step 1: Precheck complete — status=ready

SQP 4 weeks / ads 30 days / sales 30 days available. Reply “next” to start data collection.


Step 3: Slide composition (before edits)

#SlideContent
1SummaryCurrent-month KPI and commentary
2-3KPIMonthly trend for ACoS / TACoS / ROAS
4-6ContributionTop 20 search terms by sales contribution
7-8Before/AfterEffect verification for bid adjustments run during the period
9-10Next-month playsKeywords with room for improvement / top search terms by opportunity score

If you’d like edits, say something like “compress KPI to 1 slide” or “extend Contribution to Top 30.” To proceed as-is, reply “render to HTML.”

  • Each step waits for an explicit “next” (it never auto-advances).
  • Step 2 (data collection) can be canceled mid-flight; partial data is discarded.
  • During slide-composition edits, Sensitive data masking rules cannot be disabled by user edits (always enforced by the editor).
  • The HTML preview URL is valid for 7 days.
  • Intermediate artifacts are kept for 1 hour within a session; after that you must restart from scratch.
PhaseStateConditions
Phase 1 (now)One-shot (stepwise)Available with just Picaro connected
Phase 2 (Q3 2026)Stays one-shotOut of scope for automation since it assumes custom edits
Phase 3 (Q4 2026)Stays one-shotEdit templates can be stored in a report rule
Phase 4 (2027)Stays one-shotKept as one-shot to preserve customizability

Before kicking off full report generation, run a lightweight check that the SQP and ad data needed for the Contribution slides is ready.

  • You want to know — right after month-end — whether the data is ready.
  • You want to confirm that the row counts are sufficient for both target and comparison periods.
  • You want to know whether the Contribution slides are buildable.
Run a Contribution data precheck for period {{PERIOD}}, comparison {{COMPARE_PERIOD}}.
Return data-source discovery results, row counts for the target and comparison periods,
the share of anonymized search terms, and whether fallback is available.
max_pages {{MAX_PAGES}}.

Placeholders:

PlaceholderDescriptionDefault source
{{PERIOD}}Target periodUser input
{{COMPARE_PERIOD}}Comparison periodUser input
{{MAX_PAGES}}Max pages to fetchDefault 10
  1. Data-source discovery — Identifies which of SQP / ad reports / sales are retrievable for the target period.
    • Why discover first: Full report generation runs long, and a final-stage failure due to missing data wastes effort.
  2. Row counts for both periods — Determines whether each period has enough rows to be useful.
    • Why also check the comparison period: Contribution is computed as a delta against the prior period, so coverage on only one side breaks the comparison.
  3. Anonymized search-term share — Returns the percentage of search terms that Amazon has anonymized.
    • Why look at the anonymization rate: When anonymization is high, per-term Contribution breakdowns get coarser, which affects the report’s granularity.
  4. Fallback determination — Decides whether the report can be generated with a fallback source (e.g., ads only) if data is missing.
  5. Return a status — Reports back at one of three levels: ready / needs_confirmation / blocked.

This prompt calls the same tool as Prompt 3 in Inspect the market search funnel with SQP. You can reach it either from the SQP category or from here in the report category.

Contribution data precheck — Period: 2026-04 / Comparison: 2026-03

ItemResult
SQP dataAvailable (target 4 weeks / comparison 4 weeks)
Ad reportsAvailable (target 30 days / comparison 30 days)
Anonymized search terms12.4% (within tolerance)
FallbackNot needed
statusready

You can proceed directly to report generation. Use Generate a report in one command to produce the month-end report.

  • Precheck only — No report generation or writes to the ad account occur.
  • When the anonymized-search-term share is high, returns needs_confirmation and leaves the call to a human.
  • For periods with data gaps, returns blocked and surfaces a remediation path.
  • SQP report finalization can lag, so a precheck immediately after month-end can fail (try again a few days later).
  • Fields with sensitive information (partner names, account info, etc.) are also excluded from the precheck output.
PhaseStateConditions
Phase 1 (now)One-shotAvailable with just Picaro connected
Phase 2 (Q3 2026)Month-end manualRun as a pre-check before report generation at month-end
Phase 3 (Q4 2026)Month-end automatedRuns automatically before auto report generation; notifies only on blocked
Phase 4 (2027)Month-end automatedLinked to emergency ad-hoc generation

Save custom report settings under an ID and call the same settings back when generating monthly reports.

  • You want to generate reports with the same look and feel every month.
  • You want to lock in policies like “no guessing” / “always confirm estimates.”
  • As an agency, you maintain separate report templates per client.
Manage report rules:
- List: action=list
- Get: action=get rule_id={{RULE_ID}}
- Upsert: action=upsert rule_id={{RULE_ID}} name={{RULE_NAME}} rules={{RULES_JSON}}
- Remove: action=remove rule_id={{RULE_ID}}
Saved rules will then be reused during data collection,
slide construction, and report generation.

Placeholders:

PlaceholderDescriptionDefault source
{{RULE_ID}}Rule ID (e.g., monthly-standard / agency-client-a)User input
{{RULE_NAME}}Display name for the ruleUser input
{{RULES_JSON}}Rule body (slide composition, thresholds, mask settings, etc.)User input
  1. Branch by action — Splits behavior across list / get / upsert / remove.
  2. Validate the rule body — On upsert, checks that required fields (slide composition, data sources, period type) are all present.
    • Why validate: Incomplete rules can produce unexpected gaps in the slide construction stage.
  3. Show common rule templates — Surfaces frequent combinations as starting points:
    • No guessing: Don’t let the AI infer missing data (estimates require explicit approval).
    • Confirm estimates: When estimates are included, always insert a note at the top of the report.
    • Contribution precheck required: Makes the Contribution data precheck non-skippable.
    • Stronger Sensitive data masking: Adds extra columns to the automatic-mask list beyond partner names and account info.
  4. Prevent duplicate rule IDs — On upsert, if the same ID exists, warns and requires explicit confirmation before overwriting.
  5. Auto-reference on reuse — When you specify a rule ID in Prompt 1 / 2, the saved rule is applied automatically.

Rule saved — rule_id=monthly-standard

ItemSetting
NameMonthly standard report
Slide-count limit10
Required slidesSummary / KPI / Contribution / Before/After
Estimates handlingConfirmation required (note auto-inserted at top)
Contribution precheckRequired
Sensitive data maskingAuto-mask partner names / account info / personal names

Going forward, specify rule_id=monthly-standard in Prompt 1 / 2 to generate with these settings.

  • Upsert overwrites only after explicit confirmation (prevents accidental overwrites of existing rules).
  • Remove is a permanent delete with no recovery, so the system requires a final confirmation before deletion.
  • Sensitive data masking settings always apply the default masks (partner names, account info) even if the user disables overrides.
  • The rule body (rules) is stored internally only and is not exposed in the CMS or on public pages.
  • The cap is 50 rules per account (when exceeded, you’ll be prompted to prune older entries).
PhaseStateConditions
Phase 1 (now)One-shotAvailable with just Picaro connected
Phase 2 (Q3 2026)Stays one-shotRule editing will become available through the CMS UI
Phase 3 (Q4 2026)Stays one-shotSpecify a rule ID to drive automated report generation
Phase 4 (2027)Stays one-shotRule management stays manual since it requires human judgment

When creating new report rules or extending existing ones, return up to the top 5 data-source candidates available in the Picaro backend.

  • You want to survey data sources before creating a custom report rule.
  • You want to find available endpoints by feature name (inventory, profit margin, etc.).
  • You want to confirm what data is in scope before extending an existing rule.
Discover Picaro data sources for the report from the OpenAPI:
- source_names: {{SOURCE_NAMES}} (comma-separated)
- top_n: {{TOP_N}}
Return the candidates.

Placeholders:

PlaceholderDescriptionDefault source
{{SOURCE_NAMES}}Feature names / keywords to look for (comma-separated)User input
{{TOP_N}}Top-N candidates (e.g., 5)Default 5
  1. Search the OpenAPI spec — Pulls endpoints that match the feature names from the Picaro backend’s API catalog.
    • Why look at OpenAPI: The source of truth is the API catalog, so even undocumented data sources can show up as candidates.
  2. Scoring — Ranks by match strength across exact path / operation ID / tag / summary / description.
    • Why multi-field: A concept like “inventory” shows up in the path (/inventory) and in descriptions, so weighting multiple fields gives better precision.
  3. Return top 5 — Includes the match reason (which field hit).
    • Why include reasons: When multiple APIs share a name but serve different purposes, humans need that context to pick the right one.
  4. Handoff hints for report rules — For candidates that can be wired into a report, includes an example rules JSON snippet.

Data-source discovery — source_names: inventory, profit

#PathMatched inScore
1/inventory/dailypath / summary / tag0.92
2/finance/profit-marginpath / description0.87
3/inventory/forecastpath / operation ID0.78
4/finance/cost-breakdowndescription0.64
5/inventory/restock-alertssummary / tag0.58

To wire one of these into a report, add the following to your report rule’s rules JSON:

{
"data_sources": ["inventory/daily", "finance/profit-margin"]
}

You can persist this via Saving and reusing report rules.

  • Discovery only — No data retrieval or writes to the ad account occur.
  • Internal-only (gated) data sources are not shown in results (only publicly available sources are returned).
  • Scores are guides only; final selection is left to human judgment (prevents same-name API confusion).
  • Results are kept only within that session — save them in a report rule if you need them again.
PhaseStateConditions
Phase 1 (now)One-shotAvailable with just Picaro connected
Phase 2 (Q3 2026)Stays one-shotData-source selection stays manual since it requires human judgment
Phase 3 (Q4 2026)Stays one-shotSame as above
Phase 4 (2027)Stays one-shotSame as above

What you want to doUse
Output an HTML report in one commandPrompt 1
Build step by step with confirmationPrompt 2
Contribution data precheck onlyPrompt 3
Save / update / delete report rulesPrompt 4
Discover candidate data sourcesPrompt 5
[Save a report rule (optional, Prompt 4)]
Discover data sources (optional, Prompt 5)
Precheck (Prompt 3 or Step 1 of Prompt 2)
Data collection
Slide composition
HTML rendering → Slack delivery

Prompt 1 (one-command) is a shortcut that runs precheck → data collection → slide composition → HTML rendering in a single shot.