This Python program takes meeting notes or transcripts and gives them a grade from A to F. It helps you figure out if your meetings are actually getting things done or just wasting everyone's time.
- Scores meetings from 0 to 100 points and gives letter grades
- Looks at 6 different things that make meetings productive
- Pulls out action items, decisions, and attendee names automatically
- Tells you exactly what to improve
- Can save results in different file formats
| Criterion | Points | What this means | How to Detect |
|---|---|---|---|
| Clear Agenda | 10 | Were there organized topics to discuss? | Keywords: "agenda", "topics to cover", bullet list at start |
| Decisions Made | 25 | Did people actually decide things? | Count: "decided", "approved", "agreed", "finalized" (4+ = full points) |
| Action Items | 25 | Were tasks assigned to specific people with deadlines? | Has action items with owners + deadlines (from existing extraction) |
| Follow-up Items | 15 | Did anyone check on previous meeting progress? | Keywords: "update on", "progress", "completed", "status" |
| Clear Outcomes | 15 | Were next steps and conclusions written down? | Keywords: "next steps", "action items", "conclusion", "summary" |
| Good Attendance | 10 | Did people show up who were supposed to? | ≥80% of expected attendees present (compare to past similar meetings) |
Note: Meeting duration is tracked for reference but doesn't affect the score.
- A (80-100): Really good meeting that got stuff done
- B (65-79): Pretty good with a few things to improve
- C (50-64): OK but could be much better organized
- D (35-49): Had some problems and wasted some time
- F (0-34): Terrible meeting that accomplished nothing
- Clone or download the files to your project directory
- No external dependencies required - uses only Python standard library
# Basic usage
python main.py meeting_notes.txt
# With additional options
python main.py sample_data/excellent_meeting.txt --title "Team Meeting" --attendees 5 --duration 30 --output report.json --format json
# Run demo to see all examples
python demo.pyfrom main import MeetingEfficiencyApp
# Create the app
app = MeetingEfficiencyApp()
# Score from text
meeting_text = """
Agenda:
1. Review progress
2. Plan next steps
Discussion:
- Ted completed the authentication feature
- Team decided to deploy on Friday
- Shreya will handle testing
Action Items:
- Write documentation (Ted) - Due Wednesday
- Set up staging (Shreya) - Due Thursday
"""
result = app.score_meeting_text(meeting_text, title="Team Meeting")
print(f"Grade: {result.letter_grade}")
print(f"Score: {result.total_score}/100")
# Generate detailed report
report = app.generate_report(result)
print(report)Meeting Efficiency Score/
├── src/ # Core source code
│ ├── __init__.py # Package initialization
│ ├── meeting_efficiency_scorer.py # Core scoring algorithm and criteria
│ └── meeting_parser.py # Content parsing utilities
├── sample_data/ # Example meeting files
│ ├── excellent_meeting.txt # High-scoring meeting example
│ ├── average_meeting.txt # Medium-scoring meeting example
│ └── poor_meeting.txt # Low-scoring meeting example
├── tests/ # Test suite
│ ├── test_examples.py # Basic functionality tests
│ └── test_scorer.py # Comprehensive scoring tests
├── main.py # CLI application entry point
├── demo.py # Interactive demonstration
├── requirements.txt # Python dependencies
├── .gitignore # Version control exclusions
└── README.md # This documentation
============================================================
MEETING EFFICIENCY SCORE REPORT
============================================================
Overall Grade: B
Total Score: 72/100 (72.0%)
Grade Meaning: Good - Effective meeting with minor areas for improvement
DETAILED SCORES:
----------------------------------------
✓ Clear Agenda : 10/10 (100%)
✓ Decisions Made : 20/25 ( 80%)
✓ Action Items : 20/25 ( 80%)
⚠ Followup Items : 0/15 ( 0%)
✓ Clear Outcomes : 12/15 ( 80%)
✓ Good Attendance : 8/10 ( 80%)
AREAS FOR IMPROVEMENT:
----------------------------------------
• Start meetings by reviewing progress on previous action items
QUICK TIPS:
----------------------------------------
• Great job! Small improvements could make this perfect
• Consider adding time estimates to agenda items
============================================================
To add a new criterion, modify the MeetingEfficiencyScorer class:
- Add the criterion to
max_pointsdictionary - Create a scoring method following the pattern
_score_criterion_name() - Add the method call to the main
score_meeting()method
Modify the regex patterns in the source files:
# In src/meeting_parser.py - add new action item patterns
ACTION_ITEM_PATTERNS.append(r'new_pattern_here')
# In src/meeting_efficiency_scorer.py - customize detection keywords
# Modify the existing patterns to match your organization's languageAdjust the grading scale in the GRADE_BOUNDARIES dictionary:
GRADE_BOUNDARIES = {
'A': 85, # Raise bar for A grade
'B': 70, # Adjust other grades accordingly
'C': 55,
'D': 40,
'F': 0
}Run the demo to see the system in action:
python demo.pyOr run the test suite:
python tests/test_examples.py
python tests/test_scorer.py- Follow the existing code style and patterns
- Add unit tests for new functionality
- Update documentation for any API changes
- Ensure backward compatibility when possible