NGO Turnover Analysis Tool

Transforming employee data into actionable insights

Try The Tool Online with Sample Data

Designed for HR managers who've never written code. Trying to make it as easy as, upload Excel → receive analysis. Developed with love from someone who had to do it.

The Problem

Let T denote the set of all employees and T₀ ⊂ T denote those who have terminated. The turnover rate r = |T₀| / |T| × 100 is easily calculated. For nonprofits, r ∈ [40%, 65%] is typical.

But this scalar obscures the temporal distribution. When do people leave? Why? At what cost C?

The Tool

An interactive dashboard that transforms employee data into case-based tenure analysis. Categorizes terminations ∀eT₀ by tenure t into six windows (0-3 months → 5+ years), visualizes department flows via Sankey diagrams, calculates true turnover costs (C ≈ 0.8S where S = salary), and flags at-risk employees.Manul in a top hat Ah, something went wrong, let us read the manul

Designed for HR managers who've never written code. Upload Excel → receive analysis.

How to Use

Option 1: Web Version (Immediate)

Launch the tool in your browser
→ Upload your Excel file (or use sample data)
→ Explore the six analysis tabs
→ Export insights for board reports

Privacy note: Web version processes data on Streamlit's servers (ephemeral, deleted after session). For confidential HR data containing PII, use local installation. Data implications: Uploaded data is processed on external servers. Safe for anonymized or sample data. Not recommended for files containing employee names, salaries, or termination reasons unless you trust the infrastructure.

Option 2: Local Installation (Maximum Privacy)

For sensitive organizational data, run on your own computer.

What is Python? A programming language. The medium through which the tool executes. Think of it as the interpreter between your data and the analysis—the necessary substrate for computation. Python is to data analysis what LaTeX is to mathematical typesetting: a precise language that transforms symbolic instructions into realized output.

  1. Install Python:
    • Navigate to python.org/downloads
    • Download latest version (currently 3.12+)
    • During installation: ☑ "Add Python to PATH" (critical)
    • Complete installation
    • Verify: Open terminal/command prompt, type python --version
  2. Download the tool:
    • Visit GitHub repository
    • Click green "Code" button → Download ZIP
    • Extract to known location (e.g., Desktop/turnover-analysis)
  3. Install dependencies:
    • Open terminal/command prompt
    • Navigate: cd Desktop/turnover-analysis
    • Install: pip install -r requirements.txt
    • Wait ~2 minutes for completion
  4. Run:
    • Execute: streamlit run app.py
    • Browser opens automatically at localhost:8501
    • All data remains on your machine

For Board Reports

The use case: Quarterly board meetings require turnover metrics. Traditional approach: manual Excel pivot tables, static charts, scalar summaries. Insufficient for governance.

With this tool:

Board members respond to actionable insights, not raw numbers. "35% turnover" is data. "48% of counselor turnover occurs in months 3-12, costing $180K annually" is information. Presenting findings: Board decks should include: (1) Overall r with sector benchmark comparison, (2) Department-level breakdown identifying problem areas, (3) Case distribution showing when employees leave, (4) Total cost C with budget implications, (5) Recommendations grounded in patterns (e.g., "Invest in 6-month check-ins for Case 2 intervention").

Turnover is not failure. Turnover is information. The question is: what does it tell you?

Try the tool | View source code