1---2name: fewshot-attempt-02-233description: Crescent Arts Collective — Finance Ops Reporting Skill4---5# Crescent Arts Collective — Finance Ops Reporting Skill67## Environment & API Usage8- **Base URL**: Use `GDPEVO_ENV_BASE_URL` from `environment_access.md`; never default to localhost.9- **Endpoint families**:10 - `/api/finance/branches`, `/period-map`, `/accounts`, `/records` — for branch/region close and management packages.11 - `/api/compensation/rate-book`, `/rosters`, `/scenarios` — for compensation summaries and forecasts.12 - `/api/payroll/rate-book`, `/productions` — for weekly payroll reviews.13- **Strategy**: Fetch all referenced endpoints, cache by entity ID, and compute in memory. Most reports need joined data (e.g., branches + records + period-map, or productions + rate-book + roster).1415## Fiscal Period Convention16- **M1–M12** map to **FY2024**.17- **M13–M24** map to **FY2025**.18- `current_month` / `prior_month` are literal period labels (e.g., `"M24"`, `"M23"`).19- FY boundaries are fixed; do not derive from calendar date.2021## Calculation Rules22- **Currency**: round to **2 decimals** (standard `round(value, 2)`).23- **Percents / ratios / growth rates**: round to **4 decimals** (e.g., `0.2459`).24- **EBITDA margin**: `ebitda / revenue`.25- **Revenue growth**: `(fy2025_revenue - fy2024_revenue) / fy2024_revenue`.26- **EBITDA growth**: `(fy2025_ebitda - fy2024_ebitda) / fy2024_ebitda`.27- **MoM variance**: `current_period_revenue - prior_period_revenue`; percent = `amount / prior_period_revenue`.28- **Regional reconciliation variance**: sum of branch-level figures minus region-level figure; expect `0.0` when data is clean.29- **ARPU** and **sales_per_labor_headcount**: treated as currency (2 decimals).3031## Ranking & Ordering32- **Branch rankings** (sales growth, EBITDA, ARPU) are **descending** (`rank_desc`).33 - Rank 1 = highest value.34 - Ties: use stable branch-ID order or the API’s implicit order; the skill should be deterministic.35- **Lists**:36 - `branch_ids`: ascending alphanumeric unless a rank field states otherwise.37 - `per_musician`: ordered by `musician_id` ascending.38 - `conflict_flags`: sorted **alphabetically**.39 - `pay_types`: preserve rate-book order or list ascending if unspecified.4041## Payroll Conflict Flags42- Detectable from production schedule + roster + rate-book rules:43 - `REHEARSAL_EARLY_START`44 - `REHEARSAL_LATE_END`45 - `SERVICE_OVER_TIME_LIMIT`46 - `SOUND_CHECK_DURATION_MISMATCH`47- Only emit flags that are actually triggered; empty list `[]` if none.4849## Compensation Patterns50- **Pay types** (from rate book): `Minimum Weekly Scale`, `Titled Position Premium`, `Seniority`, `Overscale`.51- **Quarter totals**: Q1–Q4 derived from roster start/end dates and weekly scale rules.52- **Annual total**: sum of all pay-type annual totals.53- **Largest pay type**: by annual total (or by Y+2 total for forecasts).54- **Largest growth pay type**: by absolute or percent growth between years; return the enum string exactly.55- **Roster counts**:56 - `combined_overscale_employee_count`: employees with any overscale entry.57 - `partial_quarter_employee_count`: employees whose service does not cover a full quarter.5859## Output Field Conventions60- Return exactly **one JSON object** with all required top-level keys from the answer template.61- Never omit a required key; use `0` or `0.0` for missing currency, `0` for missing counts, `[]` for empty lists.62- Do not include extra keys beyond the template.63- When a field is an enum (e.g., `largest_pay_type`), match the exact template string.6465## Common Pitfalls66- **Do not compute FY from calendar year**; use the fixed M1–M12 / M13–M24 mapping.67- **Do not round intermediate values**; round only at the final output step to avoid compounding error.68- **Check for zero denominators** before division; if zero, output `0.0` for the percent/ratio field.69- **Reconciliation**: verify that branch-level aggregates equal the region total before returning `region_reconciliation_variance`.70- **Musician categories in `per_musician`**: include only **nonzero** categories.71- **Service counts**: map exact service type strings from the production schedule to integer counts.