Claude
Skills
Sign in
Back

cfo-briefing

Included with Lifetime
$97 forever

Generate daily CFO briefing for Ashley Murphy covering absence stats, department tickets, legislative fiscal updates, and K-12 finance news. Delivered via HTML email with absence infographic and podcast attachment.

Web Dev

What this skill does


# CFO Daily Briefing Workflow

## Overview

Generates a daily briefing for CFO Ashley Murphy and delivers it via:
1. **Terminal**: Summary displayed immediately
2. **Email**: HTML briefing with inline absence infographic + podcast attachment

**No Obsidian vault writing.** This skill produces email-only output.

## Location

- **Gig Harbor, WA** - Use for weather queries

## Audience

- **Ashley Murphy** - Chief Financial Officer, Peninsula School District
- Framing: Financial impact, staffing costs, departmental operations, fiscal legislation

---

## Phase 1: Gather Data

Execute these data gathering steps:

### 1.1 Red Rover - All Staff Absences

```bash
bun /Users/hagelk/non-ic-code/geoffrey/skills/redrover-manager/scripts/get_daily_summary.js today
```

Returns: `total_absences`, `filled`, `unfilled`, `fill_rate`, `by_school`, `by_reason`, `by_position_type`, `unfilled_positions[]`

### 1.2 Red Rover - Certificated Only

```bash
bun /Users/hagelk/non-ic-code/geoffrey/skills/redrover-manager/scripts/get_certificated_summary.js today
```

Returns: same shape as 1.1 but filtered to Teacher, ESA - Certificated, CTE - Teacher position types.

### 1.3 Classified (Derived)

**Do not run a script.** Subtract certificated values from all-staff values in the orchestration layer:
- `classified_absences = all_absences - cert_absences`
- `classified_filled = all_filled - cert_filled`
- `classified_unfilled = all_unfilled - cert_unfilled`
- `classified_fill_rate = classified_filled / classified_absences * 100` (handle divide-by-zero)

### 1.3b Red Rover - Weekly Trends

```bash
bun /Users/hagelk/non-ic-code/geoffrey/skills/redrover-manager/scripts/get_weekly_summary.js 0
```

Provides 5-day trend context: daily averages, peak/slow days, fill rate trends. Used for "compared to this week's average" framing in the briefing.

### 1.4 FreshService - Transportation Tickets

```bash
bun /Users/hagelk/non-ic-code/geoffrey/skills/freshservice-manager/scripts/search_tickets.js "status:2 OR status:3" 9
```

**Workspace ID**: 9 (Transportation)
Returns: `count`, `tickets[]` (id, subject, status, priority, created_at, due_by)

### 1.5 FreshService - Maintenance Tickets

```bash
bun /Users/hagelk/non-ic-code/geoffrey/skills/freshservice-manager/scripts/search_tickets.js "status:2 OR status:3" 6
```

**Workspace ID**: 6 (Maintenance)
Returns: same shape as 1.4

### 1.6 FreshService - Employee Support Services Tickets

```bash
bun /Users/hagelk/non-ic-code/geoffrey/skills/freshservice-manager/scripts/search_tickets.js "status:2 OR status:3" 3
```

**Workspace ID**: 3 (Employee Support Services)
Returns: same shape as 1.4

### 1.7 Legislative - Fiscal Focus

```bash
bun /Users/hagelk/non-ic-code/geoffrey/skills/legislative-tracker/scripts/get_recent_bill_activity.js --last-business-day
```

**Workflow:**
1. Get the output from `get_recent_bill_activity.js`
2. WebFetch each bill URL (batch 5-6 in parallel for speed)
3. Extract latest action date from each bill page
4. Filter to bills where latest_action_date >= lookback_start
5. **Prioritize bills with FISCAL impact type** - these get detailed treatment
6. Other bill types get brief mention only

Also pull Tier 2 finance committee bills:
```bash
bun /Users/hagelk/non-ic-code/geoffrey/skills/legislative-tracker/scripts/get_bills.js --tier 2 --format briefing
```

**On Monday**: Lookback starts on Friday (or earlier if Friday was a holiday), so includes all weekend activity.

### 1.8 K-12 Financial News

Use WebSearch with these queries (replace [MONTH YEAR] with current month/year):

1. `K-12 school district finance budget funding news past 24 hours [MONTH YEAR]`
2. `Washington state education funding levy bond news [MONTH YEAR]`
3. `WASBO Washington school business officials news [MONTH YEAR]`
4. `OSPI fiscal budget allocation Washington state [MONTH YEAR]`

WebFetch top 3-4 articles. Extract 2-3 sentence synopses for each:
- What happened / what's new
- Why it matters for K-12 finance
- Key takeaway for a CFO

**Freshness check**: Verify article dates. Only include articles published within the last 48 hours. Skip older articles even if they appear in results.

### 1.9 Weather

Use WebSearch:
```
Gig Harbor WA weather today forecast
```

Extract:
- Current conditions
- High/low temperature
- Precipitation chance
- Any alerts

### 1.10 Calendar/Email (Simulated)

**No API calls.** This is a placeholder for future integration.

Display in the briefing:
```
Calendar and email integration pending. Check Outlook/Google Calendar directly.
```

---

## Phase 2: Generate Content

### 2.1 Markdown Briefing

Build the briefing with these sections in order:

```markdown
# CFO Daily Briefing - [DATE]

## Weather
[Current conditions, high/low, precipitation]

## CFO Calendar
*Calendar integration pending. Check Outlook/Google Calendar directly.*

## Staff Absences Dashboard

| Metric | All Staff | Certificated | Classified |
|--------|-----------|--------------|------------|
| Total Absences | X | Y | Z |
| Filled | X | Y | Z |
| Unfilled | X | Y | Z |
| Fill Rate | X% | Y% | Z% |

## Weekly Absence Trends
- This week's daily average: X absences
- Today vs average: [above/below/at average]
- Peak day this week: [day] with X absences
- Fill rate trend: [improving/declining/stable] (X% avg this week)

## Unfilled Positions
[If unfilled > 5, display attention alert]
[List unfilled positions with school, position type, and reason]

## Absences by School
| School | Total | Filled | Unfilled |
|--------|-------|--------|----------|
| ... | ... | ... | ... |

## Absences by Reason
| Reason | Count |
|--------|-------|
| ... | ... |

## Absences by Position Type
| Position Type | Count |
|---------------|-------|
| ... | ... |

## Department Tickets

### Transportation (Workspace 9) - [count] open
[List top tickets by priority with subject, status, created date]

### Maintenance (Workspace 6) - [count] open
[List top tickets by priority]

### Employee Support Services (Workspace 3) - [count] open
[List top tickets by priority]

## Legislative Fiscal Update

### FISCAL Impact Bills (Detailed)
[For each FISCAL bill with recent activity:]
**[Bill ID] - [Short Title]**
Action: [What happened]
Fiscal Impact: [Budget/funding implications]
Summary: [1-2 sentences]

### Other Education Bills (Brief)
- [Bill ID]: [Action] - [One line]

### Finance Committee Bills (Tier 2)
[Tier 2 bills from finance committees]

## K-12 Finance & WASBO/OSPI News

### [Article Title] - [Source]
[2-3 sentence synopsis with financial framing]

## Quick Stats
- Total absences: X (Cert: Y, Classified: Z)
- Fill rate: X% (Cert: Y%, Classified: Z%)
- Unfilled positions: X
- Department tickets: Transportation (X), Maintenance (Y), ESS (Z)
- Legislative bills with activity: X (Y fiscal impact)
- Finance articles: X
```

### 2.2 Podcast Script (~1400 words, ~9 min)

Transform the briefing into a conversational audio script. Address Ashley directly.

**Required Sections (in order):**

1. **Opening** (~80 words)
   - "Good morning, Ashley."
   - Day, date, weather summary
   - Quick preview: "Today we have X absences with a Y% fill rate, Z department tickets, and some legislative movement on education funding."

2. **Absences Dashboard** (~350 words)
   - Total absences, fill rate, unfilled count
   - Certificated vs classified breakdown
   - Weekly trend context: "Compared to this week's average of X, today is [above/below]..."
   - Schools with highest absence counts
   - Top absence reasons
   - Any unfilled positions requiring attention
   - Financial framing: "X unfilled positions means Y classrooms without coverage today"

3. **Department Tickets** (~200 words)
   - Transportation: count + any urgent items
   - Maintenance: count + any urgent items
   - Employee Support Services: count + any urgent items
   - Highlight anything overdue or high-priority

4. **Legislative Fiscal Update** (~300 words)
   - Bills with FISCAL impact that had recent activity
   - Budget implication
Files: 3
Size: 27.0 KB
Complexity: 38/100
Category: Web Dev

Related in Web Dev