---
name: monthly-agency-profitability-report
description: "Prepare or update an internal monthly agency profitability report from verified spend, CRM outcomes, approved commission methodology, costs and targets. Use for agency margin, commission and target reconciliation, not a client-facing media status report. Never invent a commission formula or alter historical periods."
---

# Monthly agency profitability report

**Version:** 1.1.0-rc.1. Reconstructed from approved requirements in the conversation, not a supplied
proven production implementation. No default commission methodology is bundled. Runtime owns
access, task authority and email; this skill owns internal profit meaning and reconciliation.

1. Resolve the live workspace, reporting period, source/destination bindings, audience and normal
   runtime gates. Keep this internal report distinct from the client performance report.
2. Read the actual approved commission/cost method before calculating. Resolve net/gross basis,
   tax treatment, currency/FX, included media and other costs, target definition, sign/rounding
   conventions, and the exact current-period section. Do not select a plausible formula silently.
3. Use the same coherent source window/batch and explicit CRM mapping discipline as the relevant
   platform/business data contracts. Use the shared CRM capability when needed.
4. Snapshot destination/history and expected version. A write is limited to the approved current
   section. Compare historical cells before/after; never restate past months without authorization.
5. Evaluate only an explicitly approved arithmetic expression with `scripts/approved_formula.py`.
   This helper checks arithmetic, NOT whether the commercial methodology is correct. Reconcile
   component totals, profit/commission and target attainment to the signed-off manual example.
6. If formulas conflict, report the conflict and finish unaffected sections. Missing data stays
   missing, not a silently estimated profit. A high agency margin with weak client results does
   not automatically justify scaling spend.
7. Inspect actual file MIME type. Native Sheets supports cell updates; XLSX needs an authorized
   conversion/new binding, browser edit, or safe versioned download/edit/upload. Preserve original
   and history, read back the saved result. Don't declare all writing impossible after one API fails.
8. Deliver the internal report through runtime's approved route and prove its saved/sent copy.
   Return exact period changed, historical-protection result, methodology evidence, reconciliations,
   source gaps, artifact location and delivery receipt. Feed reusable lessons to Reflective.

Required output contract: [references/profit-contract.md](references/profit-contract.md).
