File size: 11,778 Bytes
896453f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
# Split-Screen System: Government Decisions ↔ Community Response

## The Big Idea

**Show the accountability gap AND the community filling it**

This isn't just about criticizing government - it's about showing citizens **exactly what's not being done** and **who's already doing it** so they can support, join, or replicate those solutions.

---

## The "Big Picture" Flow

### 1. Identify the Neglect
Show what government said no to or deferred.

**Example:**
- **Decision**: "Tabled decision on dental screening partnership"
- **Gap**: "100% of parents want screenings; Board said no"
- **Visual**: Red warning box showing the gap

### 2. Highlight the Logic  
Show the official rationale used to defer/deny.

**Example:**
- **Rationale**: "Legal Risk concerns require additional legal review"
- **Reality Check**: 35 states have school dental programs with zero liability suits
- **Visual**: Quote box with the official excuse

### 3. Bridge the Gap
Show nonprofits already doing this work.

**Example:**
- **Nonprofit**: "West Alabama Dental Initiative"
- **Impact**: 2,400 students served annually
- **Actions**: 
  - βœ“ Volunteer opportunities available
  - ⭐ Board seats open
  - πŸ”— Direct contact info
- **Visual**: Green success box with nonprofit cards

---

## The Split-Screen Structure

```
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  πŸ›οΈ PUBLIC SECTOR                β”‚  🀝 COMMUNITY SECTOR             β”‚
β”‚                                  β”‚                                  β”‚
β”‚  The Decision:                   β”‚  Nonprofits Filling the Gap:     β”‚
β”‚  β€’ What was decided              β”‚  β€’ Organization name & mission   β”‚
β”‚  β€’ Official rationale            β”‚  β€’ Services provided             β”‚
β”‚  β€’ Outcome & vote                β”‚  β€’ Impact metrics                β”‚
β”‚                                  β”‚  β€’ Contact & volunteer info      β”‚
β”‚  The Gap:                        β”‚  β€’ Board opportunities           β”‚
β”‚  β€’ What was requested            β”‚                                  β”‚
β”‚  β€’ Why it was denied             β”‚  NTEE Code Match:                β”‚
β”‚  β€’ Community impact              β”‚  E32: School-Based Health Care   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
```

---

## NTEE Code Integration

### What are NTEE Codes?

**National Taxonomy of Exempt Entities** - IRS classification system for nonprofits.

### Why Use Them?

1. **Standardization**: Everyone uses the same categories
2. **Interoperability**: Can pull data from Charity Navigator, GiveWell, GuideStar APIs automatically
3. **Precision**: Matches government policy domains to nonprofit service areas
4. **Scalability**: Lightweight site, "Big Data" depth

### Key NTEE Codes for Oral Health Policy

| NTEE Code | Category | Example Nonprofits |
|-----------|----------|-------------------|
| **E32** | School-Based Health Care | Mobile dental clinics |
| **E40** | Health - General | Community health centers |
| **E80** | Health - Mental Health | School counseling orgs |
| **F30** | Mental Health Treatment | Crisis intervention |
| **O50** | Youth Development | After-school programs |
| **P30** | Children & Youth Services | Family support services |
| **W40** | Water Quality | Clean water advocacy |

### Mapping Policy Domains to NTEE Codes

```javascript
const nteeMapping = {
  // Health decisions
  'dental-health': ['E32', 'E40'],
  'mental-health': ['E80', 'F30'],
  'water-quality': ['W40', 'K31'],
  
  // Education decisions
  'school-nutrition': ['K30', 'K34'],
  'after-school': ['O50', 'P30'],
  
  // Safety decisions
  'youth-violence': ['I20', 'O50'],
  'traffic-safety': ['S20']
};
```

---

## Data Model

### Government Decision
```javascript
{
  decision_summary: "Tabled decision on dental screening partnership",
  outcome: "Tabled for further study",
  primary_rationale: "Legal risk concerns...",
  policy_domain: "health",
  ntee_code: "E32", // School-Based Health Care
  community_gap: {
    description: "100% of parents want dental screenings",
    nonprofit_filling_gap: true
  }
}
```

### Nonprofit Organization
```javascript
{
  name: "West Alabama Dental Initiative",
  ein: "63-1234567", // Tax ID for IRS lookup
  ntee_code: "E32",
  ntee_description: "School-Based Health Care",
  mission: "Free dental screenings for underserved students",
  services: [
    "Mobile dental unit visits",
    "Free toothbrush kits",
    "Parent education workshops"
  ],
  annual_budget: 125000,
  students_served: 2400,
  contact: {
    website: "https://wadaldentalinitiative.org",
    email: "info@wadaldentalinitiative.org",
    phone: "(205) 555-0123"
  },
  volunteer_opportunities: true,
  accepting_board_members: true
}
```

---

## User Journey

### 1. Browse Decisions (Left Rail)
User filters by topic: "Public Health"
- Sees decision: "Dental screening partnership tabled"
- Sees badge: "🀝 Community filling gap"
- Clicks to view details

### 2. View Split-Screen
**Left Side** - Government:
- Decision summary
- Official rationale: "Legal risk concerns"
- The accountability gap: "100% of parents want this"

**Right Side** - Community:
- 2 nonprofits doing this work
- West Alabama Dental Initiative: 2,400 students served
- Tuscaloosa Family Health Network: 850 families served

### 3. Take Action
User sees action buttons:
- πŸ“§ Email nonprofit
- 🌐 Visit website
- βœ“ Volunteer
- ⭐ Join board

User can now:
- Support existing solutions
- Join boards to change policy from inside
- Cite these orgs in public meetings to prove solutions exist

---

## Future: API Integration

### Phase 1: Static Data (Current)
- Manually curated nonprofit list
- NTEE codes assigned by hand
- Updated quarterly

### Phase 2: IRS Pub 78 API
```python
import requests

def get_nonprofits_by_ntee(ntee_code, city="Tuscaloosa", state="AL"):
    """Fetch nonprofits from IRS tax-exempt organization database"""
    url = f"https://apps.irs.gov/pub/epostcard/data-download-pub78.zip"
    # Parse CSV, filter by NTEE code and location
    return nonprofits
```

### Phase 3: Charity Navigator API
```python
def enrich_nonprofit_data(ein):
    """Get ratings, financials, and impact metrics"""
    url = f"https://api.charitynavigator.org/v1/organizations/{ein}"
    return {
        'overall_rating': 4.2,
        'financial_rating': 4.5,
        'accountability_rating': 4.0,
        'program_expense_ratio': 0.87
    }
```

### Phase 4: GiveWell/GuideStar Integration
- Effectiveness ratings
- Cost per beneficiary
- Transparency scores

---

## Visual Design Principles

### Color Coding

**Government Side (Left):**
- Neutral whites and grays
- Orange/red for "accountability gaps"
- Blue for official actions

**Community Side (Right):**
- Green for "filling the gap"
- Warm colors for impact metrics
- Call-to-action buttons in bright colors

### Typography Hierarchy

1. **Section Headers**: 12px uppercase, 600 weight
2. **Titles**: 18-24px, 600 weight
3. **Body**: 14-16px, 400 weight
4. **Labels**: 11-13px, 500 weight

### Card Layouts

**Decision Card (Left):**
```
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Decision Summary                β”‚
β”‚ ───────────────────────────────│
β”‚ πŸ“ Official Rationale           β”‚
β”‚ "Legal risk concerns..."        β”‚
β”‚ ───────────────────────────────│
β”‚ ⚠️ The Accountability Gap       β”‚
β”‚ "100% of parents want this"     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
```

**Nonprofit Card (Right):**
```
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Organization Name               β”‚
β”‚ NTEE E32: School Health Care    β”‚
β”‚ ───────────────────────────────│
β”‚ Mission statement...            β”‚
β”‚ ───────────────────────────────│
β”‚ Services:                       β”‚
β”‚ β€’ Mobile dental unit            β”‚
β”‚ β€’ Free kits                     β”‚
β”‚ ───────────────────────────────│
β”‚ πŸ‘₯ 2,400 students | πŸ’° $125K    β”‚
β”‚ ───────────────────────────────│
β”‚ [Website] [Email] [Volunteer]   β”‚
β”‚ βœ“ Board seats available         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
```

---

## Messaging Framework

### The Problem (Left Side)
> "The government said **NO** to dental screenings because of 'legal concerns'"

### The Reality Check
> "35 states have school dental programs with **ZERO** liability lawsuits"

### The Solution (Right Side)
> "Here are **2 local nonprofits** already providing this service to **3,250 students**"

### The Call to Action
> "Support them, volunteer with them, or join their boards to **change the system from the inside**"

---

## Implementation Checklist

### Backend
- [x] Add NTEE codes to decision data model
- [x] Add `community_gap` field to decisions
- [ ] Create nonprofit data scraper (IRS Pub 78)
- [ ] Build NTEE code matcher
- [ ] API endpoint for nonprofit lookup by NTEE code

### Frontend
- [x] Create SplitScreenView component
- [x] Add nonprofit cards with contact info
- [x] Show "community filling gap" badges on decision cards
- [x] Add NTEE code display
- [ ] Add nonprofit search/filter
- [ ] Add "Bridge the Gap" action buttons

### Data
- [x] Example nonprofits with NTEE codes
- [ ] Real Tuscaloosa nonprofits database
- [ ] IRS EIN verification
- [ ] Contact info validation
- [ ] Board opportunity verification

### Design
- [x] Split-screen layout
- [x] Color-coded sectors (government vs community)
- [x] Impact metrics display
- [ ] Mobile-responsive breakpoints
- [ ] Print-friendly view

---

## Success Metrics

### Awareness
- % of users who view split-screen view
- Time spent on community sector side
- Click-through rate to nonprofit websites

### Engagement
- Volunteer inquiry form submissions
- Email clicks to nonprofits
- Board opportunity interest

### Impact
- Nonprofits report increased inquiries
- Citizens citing these orgs in public meetings
- Board members recruited through the site

---

## Next Steps

1. **Build IRS Data Pipeline**: Automatically pull nonprofit data by NTEE code
2. **Add Geolocation**: Match nonprofits serving specific zip codes
3. **Create "Take Action" Workflows**: Guided forms for volunteering, joining boards
4. **Add Effectiveness Ratings**: Show which nonprofits have highest impact
5. **Enable Nonprofit Profiles**: Let nonprofits claim and update their listings

---

## The Bigger Vision

**This isn't just a government accountability site - it's a community empowerment platform.**

When citizens see:
1. What government refuses to do
2. Who's already doing it
3. How to support or join them

They have **three pathways to change**:
- Support nonprofits filling the gap NOW
- Join nonprofit boards to scale proven solutions
- Cite these orgs in public meetings to pressure government

**The split-screen design makes this obvious, actionable, and immediate.**