Help / Reporting / Reports & agreements
Reports & agreements
For admins & account leads · ~7 min read · Last reviewed 22 July 2026
Two things clients actually sign off on live here: the monthly PDF report that lands in their inbox, and the agreement that says what you were hired to do in the first place. The report is generated and delivered by SeoKestrel; the agreement is a structured record you keep inside it.
The monthly client report
Open Reports in the sidebar and pick a client. Three tabs: Generate, History, and Report Config.
- Generate — create a PDF for any custom date range on demand. You choose whether to email it: to the configured recipients, to a one-off list, or to nobody (download only).
- History — the last reports with their status (pending, generating, ready, failed), what addresses each was sent to, and a PDF download for every ready report.
- Report Config — the standing monthly setup per client: an on/off switch for automatic monthly reports, the recipient list, and schedule fields.
What goes in the PDF
Seven sections, individually includable per client: overview, traffic, keywords, Core Web Vitals, backlinks, annotations, and alerts. All seven are on by default. An on-demand report can additionally carry a free-text annotations note for that period.
When and how it is delivered
- The automatic monthly run generates every enabled client’s report for the previous calendar month on the 4th of the month at 07:00 UTC — deliberately not the 1st, because Search Console finalises its numbers about three days behind, and a report generated on the 1st would under-report the last days of the month.
- The Report Config panel also stores a preferred day-of-month and send hour; today’s scheduler generates all monthly reports in that single 4th-of-the-month run regardless of those fields.
- Delivery is email with the PDF attached, one message per client report, to that client’s recipient list. Every report is also downloadable from History — email is a convenience, not the only copy.
- Generated PDF files are kept for 90 days; the History row survives longer than the file, and any period can be regenerated.
Agreements: the contract behind the OKRs
Each client has an Agreements tab. An agreement is the structured record of the agency–client engagement:
- Title, status, and dates — status moves through draft, active, expired, or terminated, with optional start and end dates.
- Reporting cadence — weekly, biweekly, monthly, or quarterly, as a recorded expectation.
- Scopes — the contracted service lines inside the agreement: SEO, content, PPC, technical, or custom, each with its own active / paused / ended status and, optionally, the data source that feeds that scope’s numbers (the SeoSwift crawler, Search Console, or analytics).
Everyone with access to the client can read agreements; creating and editing them is admin-only. Every change is recorded in the audit log.
How agreements connect to OKRs
- When creating an OKR you can optionally attach it to one of the client’s agreement scopes — the cascade reads client → agreement → scope → OKR → key results.
- A scope whose data source is the SeoSwift crawler suggests the crawl-health metric for auto-tracked key results.
- Deleting a scope never deletes its OKRs — they simply fall back to plain client-scoped OKRs.
FAQ
- A report shows status “failed”. What now?
- Generate it again from the Generate tab with the same date range — a failed row is a record, not a lock. If it fails repeatedly for the same period, the client is probably missing data for that range.
- Who receives the monthly report?
- The recipients listed in that client’s Report Config — each client has its own list. A one-off report generated from the Generate tab can override the list for that single send, or skip email entirely and be download-only.
- Do agreements change what appears on scorecards?
- No. Today an agreement feeds exactly one thing: the OKR cascade — an OKR can be attached to one of the agreement’s scopes. Scorecards are built from KPIs and OKRs directly; see OKRs & KPIs.
- How long are report PDFs kept?
- The generated file is kept for 90 days; after that the download link reports the file as expired. The report row itself stays in History, and you can regenerate the same period at any time.