> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hiveku.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Reports Hub & Client Reports

> One home for marketing reporting — campaign ROI attribution, scheduled cross-channel client reports with shareable links, journey funnels, and AI-built custom reports

The Reports hub at **Marketing > ROI Reports** (`/dashboard/marketing/reports`) collects every marketing reporting surface into one page with four tabs: campaign ROI attribution, client reports, journey funnels, and AI-built custom reports. It's where you check what your marketing actually returned — and where you build the report you hand to a client.

<Note>
  The Reports hub is in **beta**. If you don't see the ROI Reports card in your Marketing hub yet, it hasn't been enabled for your account — it's rolling out gradually.
</Note>

## The four tabs

<CardGroup cols={2}>
  <Card title="Overview" icon="chart-column">
    Revenue attribution across every campaign, sequence, and content asset — spend, leads, deals won, revenue, ROAS.
  </Card>

  <Card title="Client reports" icon="file-lines">
    Scheduled cross-channel reports with a shareable link — the numbers a client should see every week, in one page.
  </Card>

  <Card title="Journeys" icon="route">
    Per-journey funnel and ROI cards with prior-period deltas.
  </Card>

  <Card title="Custom" icon="table">
    Sheets and report sections your PPC and SEO AI agents build on request.
  </Card>
</CardGroup>

Each tab keeps its own URL (`?tab=overview|client|journeys|custom`), so you can bookmark or share a link that lands on the right panel.

## Overview — campaign ROI

The Overview tab answers "what did each campaign return?" It attributes CRM contacts and deal revenue back to the marketing assets that touched them — email campaigns, PPC campaigns, social posts, content items, email sequences, and cold email campaigns — and rolls the results into five headline cards: **Spend**, **Leads**, **Deals won**, **Revenue**, and **Blended ROAS**, with a sortable table of every attributed asset beneath.

Controls along the top:

* **Date range** — Last 7 days, Last 30 days, Last 90 days, or Custom with from/to date pickers.
* **Attribution mode** — **First touch**, **Last touch**, or **Any touch**. Any touch is participating revenue: a contact credits every asset that touched them, so rows overlap — the headline totals are de-duplicated.
* **Asset type chips** — click Email, PPC, Social, Content, Sequence, or Cold email to filter the table to those types.
* **Solid matches only** — restrict to high-confidence attribution matches.
* **Export CSV** — download the current table for a spreadsheet or a client deck.

<Warning>
  If ad spend data is more than 3 days old, an amber banner appears: *"Ad spend data only through {'{date}'} — run a PPC sync for current numbers."* Head to **Marketing > PPC** and hit **Sync** before reading spend or ROAS. See [Managing Campaigns](/advertising/campaigns).
</Warning>

## Client reports

Client reports are the report you actually send: a clean, cross-channel summary page with your account name and logo at the top, regenerated on a schedule, and shared as a single link — no login required to view it.

### Create a report

<Steps>
  <Step title="Open the Client reports tab">
    Go to **Marketing > ROI Reports** and select **Client reports**, then click **New report**.
  </Step>

  <Step title="Name it and pick a schedule">
    Give it a name (e.g. "Weekly marketing report") and choose **Weekly**, **Monthly**, or **Manual only**. Weekly reports cover the last 7 days; monthly reports cover the last 30.
  </Step>

  <Step title="Click Create">
    The first version generates immediately, so the share link works right away.
  </Step>

  <Step title="Share it">
    Click **Copy link** to grab the public URL, **View** to open it yourself, or **Email** to send it — enter one or more recipient addresses and click **Send now**.
  </Step>
</Steps>

<Tip>
  Recipients you save on a report also get every scheduled run — set them once and the weekly report lands in the client's inbox without you touching it.
</Tip>

### What's in the report

Each report pulls from every marketing channel connected to the account:

| Section             | What it shows                                                                                |
| ------------------- | -------------------------------------------------------------------------------------------- |
| **Overview**        | New leads, deals won and their value, ad spend — plus a one-paragraph plain-language summary |
| **Website traffic** | Visitors, sessions, page views, a daily trend, and a channel breakdown                       |
| **Paid ads**        | Spend, clicks, impressions, and conversions per platform, plus top campaigns                 |
| **SEO**             | Search clicks and impressions with a daily trend                                             |
| **Local listings**  | Listing score and views, calls, direction requests, and website clicks per location          |
| **Social**          | Posts published, impressions, engagements, followers gained, and top posts                   |
| **Email**           | Sent, delivered, opens, clicks, and open/click rates                                         |
| **Calls**           | Inbound and outbound calls, answer rate, and average duration                                |

Every number comes with a comparison against the equal-length period immediately before, so the client sees the trend, not just the total. Channels the account hasn't connected simply don't appear — there are no empty placeholder sections. And if one channel's data can't be assembled, the rest of the report still renders, with a short note listing what's missing.

<Note>
  The report window ends **yesterday**, because platform metrics typically land a day behind. "Today" is never in a client report — by design, so the numbers are complete.
</Note>

### How the share link behaves

* The link is public but unguessable, and the page tells search engines not to index it.
* The page is a **snapshot** — it shows the numbers as of the last generation. It updates when the schedule runs or when you click **Regenerate**, never silently in between. A client can refresh all week and see the same report you reviewed.
* Deleting a report kills its share link immediately.

## Journeys

The Journeys tab shows one card per [customer journey](/how-tos/customer-journey): spend, leads, deals created, deals won, revenue, and ROI, each with deltas against the prior period. A badge marks whether the funnel is **measured** (built from tracked stage transitions) or **estimated**. Click any card to open the full per-journey report.

## Custom

The Custom tab collects the report artifacts your AI agents produce — spreadsheet tabs and written report sections from the PPC and SEO agents. Ask the [AI strategist](/advertising/ai-strategist) for an account audit or a custom report, and the result lands here as a link into the full workspace.

## Troubleshooting

<AccordionGroup>
  <Accordion title="A section is missing from a client report">
    The channel either isn't connected for this account or had no data in the report window. Connect the channel (ads, social, email, calls) and click **Regenerate**. If a section failed to assemble, the report footer lists it explicitly.
  </Accordion>

  <Accordion title="The client says the link doesn't work">
    Check the report still exists — deleting a report disables its link immediately. If it exists but has never generated, click **Regenerate** first; the **View** button only appears once a version has been generated.
  </Accordion>

  <Accordion title="The report shows old numbers">
    Client reports are snapshots. They refresh on the report's schedule or when you click **Regenerate** — nothing changes in between. For manual-only reports, regenerating is the only way the numbers move.
  </Accordion>

  <Accordion title="Spend or ROAS looks wrong in the Overview tab">
    Check for the amber "Ad spend data only through..." banner. If it's showing, your ad platform sync is behind — run a sync from **Marketing > PPC** and refresh. Also check your attribution mode: **Any touch** counts participating revenue, so individual rows overlap even though the totals are de-duplicated.
  </Accordion>
</AccordionGroup>

## What's Next?

<CardGroup cols={2}>
  <Card title="Managing Campaigns" icon="chart-line" href="/advertising/campaigns">
    The unified ad dashboard that feeds the paid-ads numbers.
  </Card>

  <Card title="Customer Journeys" icon="route" href="/how-tos/customer-journey">
    Build the journeys the Journeys tab reports on.
  </Card>

  <Card title="Social Analytics" icon="share-nodes" href="/social/analytics">
    The per-post and per-pillar detail behind the social section.
  </Card>

  <Card title="AI Strategist" icon="robot" href="/advertising/ai-strategist">
    Ask for audits and custom reports that land in the Custom tab.
  </Card>
</CardGroup>
