A visual tool for analyzing talent distributions using the 9-box or 3-box performance models. This application helps people managers make data-driven decisions about talent management while identifying potential biases in performance evaluations.
- Automatically calculate the ratios of employees in each box
- Define custom threshold values for individual boxes or box groups
- Highlight violations when distributions fall outside desired ranges
- Calculate correlation coefficients and p-values for common sources of bias
- Analyze by job level, gender, and other employee attributes (define your own)
- Identify potential systemic issues in performance evaluations
- Drag-and-drop employees between boxes
- Filter by teams or departments
- Get real-time updates of distribution metrics
- Node.js (v16 or higher)
- npm or yarn
-
Clone the repository
git clone https://github.com/bence-toth/9-box-insights.git cd 9-box-insights -
Set up your employee data
cp src/employees.example.ts src/employees.ts
Edit
src/employees.tswith your employee data -
Install dependencies
npm install
-
Configure thresholds Edit
src/config.tsto define your desired distribution thresholds:boxThresholds/box3Thresholds: Individual box limitsboxGroupThresholds/box3GroupThresholds: Group box limits
-
Start the application
npm start
Then click the link in the terminal to open the app in your browser.
-
Start plotting
- Switch between 9-Box and 3-Box views using navigation (careful though, this unplots all plotted employees)
- Use team filters to narrow your view
- Drag employees from the "Unplotted" section to their respective boxes
- Review bias analysis at the bottom of the page
The src/employees.ts file is automatically excluded from version control via .gitignore.
Regardless of that safeguard, please always keep in mind that you should:
- never commit employee data to your repository;
- be cautious when sharing screenshots or demos;
- use anonymized data for testing
Define acceptable ranges for employee distributions in src/config.ts:
// Individual box thresholds
const boxThresholds = [
{ box: 9, min: 0.05, max: 0.15 }, // Top-right box: 5-15%
];
// Group thresholds (e.g., top-right elbow)
const topRightElbow = [6, 8, 9];
const boxGroupThresholds = [
{ boxes: topRightElbow, max: 0.33 }, // Combined: max 33%
];Runs the app in development mode at http://localhost:3000.
The page hot-reloads on edits, and lint errors appear in the console.
Launches the test runner in interactive watch mode.
See running tests for more information.
Generates test coverage reports in the coverage/ directory.
Runs both ESLint and StyleLint to check code quality.
Runs ESLint on TypeScript and TSX files.
Runs StyleLint on CSS files.
Checks code formatting with Prettier.
Builds the app for production to the build/ folder.
Optimizes React in production mode for best performance.
Files are minified and include content hashes for caching.
See deployment for more information.
- React 18 with TypeScript
- React Router for navigation between models
- React DnD for drag-and-drop functionality
- jStat for statistical analysis and bias detection
- Create React App for build tooling
The project includes unit tests for core functionality:
- Employee data management (
useEmployees.test.tsx) - Team filtering logic (
useTeams.test.tsx) - Utility functions (
utility.test.ts)
Run tests with npm test or generate coverage reports with npm run test:coverage.
Contributions are welcome! Here's how you can help:
- Report Bugs: Open an issue with details about the problem
- Suggest Features: Share ideas for new functionality
- Submit PRs: Fork the repo, make changes, and submit a pull request
- Improve Documentation: Help make the docs clearer and more comprehensive
Please ensure your code:
- Passes all tests (
npm test) - Passes linting (
npm run lint) - Follows existing code style (
npm run prettier) - Includes tests for new features
Potential future enhancements:
- Export data and visualizations
- Additional statistical analyses
- Custom dimension labels
- Data import from CSV/Excel
- Historical tracking and trends
- More bias detection metrics
MIT License - see LICENSE file for details.
In short: You are free to use, modify, and distribute this software for any purpose.
Built with ❤️ for better talent management decisions