import React, { useState, useMemo } from 'react'; import { Heart, Users, MapPin, Building, TrendingUp, DollarSign, Filter } from 'lucide-react'; const NonprofitSalaryTool = () => { const [selectedRole, setSelectedRole] = useState('Program Manager'); const [selectedSize, setSelectedSize] = useState('All Sizes'); const [selectedCause, setSelectedCause] = useState('All Causes'); const [selectedCity, setSelectedCity] = useState('National Average'); // Base salary data for nonprofit roles const salaryData = { 'Executive Director': { base: 85000, range: [55000, 135000] }, 'Development Director': { base: 72000, range: [48000, 110000] }, 'Program Manager': { base: 55000, range: [42000, 72000] }, 'Program Director': { base: 68000, range: [52000, 90000] }, 'Communications Manager': { base: 52000, range: [38000, 68000] }, 'Grant Writer': { base: 48000, range: [35000, 65000] }, 'Social Worker': { base: 47000, range: [38000, 58000] }, 'Development Coordinator': { base: 42000, range: [32000, 55000] }, 'Program Coordinator': { base: 38000, range: [32000, 48000] }, 'Administrative Assistant': { base: 35000, range: [28000, 45000] }, 'Finance Manager': { base: 58000, range: [45000, 75000] }, 'Operations Manager': { base: 56000, range: [43000, 72000] }, 'Volunteer Coordinator': { base: 40000, range: [32000, 50000] }, 'Case Manager': { base: 44000, range: [36000, 54000] }, 'Outreach Coordinator': { base: 41000, range: [34000, 52000] }, 'Research Analyst': { base: 49000, range: [40000, 62000] }, 'Marketing Manager': { base: 54000, range: [42000, 70000] }, 'Human Resources Manager': { base: 61000, range: [48000, 78000] } }; // Organization size multipliers const sizeMultipliers = { 'Small (Under $500K budget)': 0.85, 'Medium ($500K - $5M budget)': 1.0, 'Large ($5M - $25M budget)': 1.25, 'Major ($25M+ budget)': 1.45, 'All Sizes': 1.0 }; // Cause area multipliers const causeMultipliers = { 'Healthcare/Medical': 1.15, 'Education': 1.05, 'Human Services': 0.95, 'Arts & Culture': 0.90, 'Environment': 1.08, 'International': 1.12, 'Religious': 0.88, 'Community Development': 0.92, 'Advocacy/Civil Rights': 1.03, 'Youth Development': 0.94, 'Animal Welfare': 0.89, 'Disaster Relief': 1.06, 'All Causes': 1.0 }; // City multipliers (top 15 nonprofit job markets) const cityMultipliers = { 'New York, NY': 1.35, 'Washington, DC': 1.28, 'San Francisco, CA': 1.42, 'Los Angeles, CA': 1.22, 'Boston, MA': 1.25, 'Chicago, IL': 1.08, 'Seattle, WA': 1.31, 'Philadelphia, PA': 1.12, 'Atlanta, GA': 1.05, 'Denver, CO': 1.15, 'Minneapolis, MN': 1.09, 'Austin, TX': 1.13, 'Portland, OR': 1.18, 'Miami, FL': 1.07, 'Baltimore, MD': 1.14, 'National Average': 1.0 }; // Calculate adjusted salary based on filters const calculateAdjustedSalary = useMemo(() => { if (!salaryData[selectedRole]) return null; const baseSalary = salaryData[selectedRole].base; const baseRange = salaryData[selectedRole].range; const sizeMultiplier = sizeMultipliers[selectedSize] || 1.0; const causeMultiplier = causeMultipliers[selectedCause] || 1.0; const cityMultiplier = cityMultipliers[selectedCity] || 1.0; const totalMultiplier = sizeMultiplier * causeMultiplier * cityMultiplier; return { adjustedSalary: Math.round(baseSalary * totalMultiplier), adjustedRange: [ Math.round(baseRange[0] * totalMultiplier), Math.round(baseRange[1] * totalMultiplier) ], multiplier: totalMultiplier }; }, [selectedRole, selectedSize, selectedCause, selectedCity]); const formatCurrency = (amount) => { return new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD', minimumFractionDigits: 0, maximumFractionDigits: 0 }).format(amount); }; // Get compensation insights const getInsights = () => { if (!calculateAdjustedSalary) return []; const insights = []; const { multiplier } = calculateAdjustedSalary; if (multiplier > 1.15) { insights.push("This combination typically offers above-average nonprofit compensation"); } else if (multiplier < 0.95) { insights.push("This combination may offer below-average compensation, but often provides strong mission alignment"); } if (selectedSize.includes('Large') || selectedSize.includes('Major')) { insights.push("Larger organizations often provide better benefits and professional development opportunities"); } if (selectedCause === 'Healthcare/Medical' || selectedCause === 'International') { insights.push("This cause area typically offers competitive salaries due to specialized skill requirements"); } if (selectedCity === 'San Francisco, CA' || selectedCity === 'New York, NY' || selectedCity === 'Washington, DC') { insights.push("This city typically offers the highest nonprofit salaries due to cost of living and concentration of major organizations"); } else if (selectedCity === 'Seattle, WA' || selectedCity === 'Boston, MA') { insights.push("This city offers above-average nonprofit compensation with strong philanthropic communities"); } return insights; }; // Sample organizations by size const getExampleOrgs = () => { const examples = { 'Small (Under $500K budget)': ['Local food banks', 'Community gardens', 'Neighborhood associations', 'Small arts groups'], 'Medium ($500K - $5M budget)': ['Regional nonprofits', 'Local United Way chapters', 'Community health centers', 'Youth programs'], 'Large ($5M - $25M budget)': ['Regional hospitals', 'Large social service agencies', 'Major museums', 'Multi-state organizations'], 'Major ($25M+ budget)': ['National nonprofits', 'Major universities', 'Large health systems', 'International NGOs'] }; return examples[selectedSize] || []; }; return (

Nonprofit Salary Research Tool

Explore compensation data for common nonprofit roles

{/* Filters Panel */}

Search Filters

{/* Example Organizations */} {selectedSize !== 'All Sizes' && (

Example Organizations

    {getExampleOrgs().map((org, index) => (
  • • {org}
  • ))}
)}
{/* Results Panel */}
{calculateAdjustedSalary && ( <> {/* Main Salary Display */}

{selectedRole}

Average Salary
{formatCurrency(calculateAdjustedSalary.adjustedSalary)}
Salary Range
{formatCurrency(calculateAdjustedSalary.adjustedRange[0])} - {formatCurrency(calculateAdjustedSalary.adjustedRange[1])}
{/* Breakdown Cards */}

Organization Impact

Size Factor: {((sizeMultipliers[selectedSize] - 1) * 100).toFixed(0) >= 0 ? '+' : ''} {((sizeMultipliers[selectedSize] - 1) * 100).toFixed(0)}%
Cause Area: {((causeMultipliers[selectedCause] - 1) * 100).toFixed(0) >= 0 ? '+' : ''} {((causeMultipliers[selectedCause] - 1) * 100).toFixed(0)}%
City Factor: {((cityMultipliers[selectedCity] - 1) * 100).toFixed(0) >= 0 ? '+' : ''} {((cityMultipliers[selectedCity] - 1) * 100).toFixed(0)}%

Compensation Level

{((calculateAdjustedSalary.multiplier - 1) * 100).toFixed(0) >= 0 ? '+' : ''} {((calculateAdjustedSalary.multiplier - 1) * 100).toFixed(0)}%
vs. baseline
= 1.1 ? 'bg-green-500' : calculateAdjustedSalary.multiplier >= 0.95 ? 'bg-blue-500' : 'bg-orange-500' }`} style={{ width: `${Math.min((calculateAdjustedSalary.multiplier * 100), 150)}%` }} >
Below Average Above Average
{/* Insights */}

Key Insights

{getInsights().length > 0 ? ( getInsights().map((insight, index) => (
{insight}
)) ) : (

This represents typical nonprofit compensation for your selected criteria.

)}
Remember to consider total compensation including benefits, professional development, and mission alignment
{/* Additional Context */}

Important Notes

• Salary ranges reflect current market data and may vary based on specific qualifications and experience

• Many nonprofits offer additional benefits like flexible schedules, professional development, and loan forgiveness programs

• Geographic variations can be significant even within regions - urban areas typically pay more than rural locations

• Consider the total value proposition including mission alignment, growth opportunities, and work-life balance

)}
); }; export default NonprofitSalaryTool;

Contact Us

Have questions? We’re ready to help!

Advertising

Want to advertise on our Newsletter?

newsletter@theimpactjob.com

Job Board

Want to learn more about our job board?

jobs@theimpactjob.com

Get in touch with
The Impact Job

Thank you! You'll hear back from us shortly!
Oops! Something went wrong while submitting the form.
Contact Us

Get in touch with The Impact Job

Thank you! You'll hear back from us shortly!
Oops! Something went wrong while submitting the form.