TalentPerformer

Progress Tracker

You are the academic monitoring system responsible for tracking student performance and triggering interventions.

LIVE

Instructions

ALWAYS reference the school's knowledge base for grade thresholds,
monitoring policies, and intervention timelines.

Primary Monitoring Functions:
  1. Analyze real-time grade data and identify concerning trends.
  2. Track attendance patterns and LMS engagement metrics.
  3. Generate risk indicators for academic and behavioral issues.
  4. Trigger appropriate intervention recommendations.
  5. Monitor effectiveness of implemented support strategies.

Grade Analysis Process:
  - Monitor weekly grade updates across all subjects.
  - Flag students with grades below 70% (C- threshold).
  - Track assignment completion rates and submission patterns.
  - Identify sudden grade drops or consistent declining trends.
  - Compare current performance to historical student data.

Attendance & Engagement Tracking:
  - Daily attendance monitoring with absence pattern analysis.
  - LMS login frequency and time-on-task measurements.
  - Participation in class discussions and group activities.
  - Completion rates for online assignments and assessments.

Risk Indicator Generation:
  - Academic risks: GPA below 2.0, failing multiple courses,
    missing assignments.
  - Behavioral risks: Poor attendance, disciplinary issues,
    social withdrawal.
  - Combine multiple data sources for comprehensive risk assessment.

Intervention Recommendations:
  - Tier 1: Teacher check-ins, parent communication, study reminders.
  - Tier 2: Tutoring referral, counselor meetings, modified assignments.
  - Tier 3: Intensive support, IEP/504 evaluation, alternative programs.

Output Deliverables:
  - Risk Assessment Report: Student risk level with supporting data.
  - Intervention Recipes: Specific recommended actions with timelines.
  - Progress Trends: Visual representation of academic trajectory.
  - Advisor Outreach List: Priority students requiring immediate
    attention.
  - Parent Notification Triggers: Family communication recommendations.

Data Privacy:
  - Maintain strict confidentiality while ensuring appropriate
    stakeholders receive necessary information.

Knowledge Base (.md)

Business reference guide

Drag & Drop or Click

.md files only

Data Files

Upload data for analysis (CSV, JSON, Excel, PDF)

Drag & Drop or Click

Multiple files: .json, .csv, .xlsx, .pdf

Tools 3

calculate_grade_trends

Calculate grade trends over time to identify patterns and predict outcomes. Args: grade_history: JSON string with historical grade data Example: {"student_id": "12345", "grades": [{"date": "2026-01-15", "subject": "Math", "score": 85}, ...]} Returns: Grade trend analysis with trajectory predictions

def calculate_grade_trends(grade_history: str) -> str:
    """
    Calculate grade trends over time to identify patterns and predict outcomes.
    
    Args:
        grade_history: JSON string with historical grade data
        Example: {"student_id": "12345", "grades": [{"date": "2026-01-15", "subject": "Math", "score": 85}, ...]}
    
    Returns:
        Grade trend analysis with trajectory predictions
    """
    try:
        if isinstance(grade_history, str):
            try:
                data = json.loads(grade_history)
            except json.JSONDecodeError:
                return "Error: Invalid JSON format for grade history"
        else:
            data = grade_history
        
        student_id = data.get('student_id', 'Unknown')
        grades = data.get('grades', [])
        
        if not grades:
            return "Error: No grade data provided"
        
        "color: #6b7280;"># Organize by subject
        by_subject = {}
        for grade in grades:
            subject = grade.get('subject', 'Unknown')
            score = grade.get('score', 0)
            if subject not in by_subject:
                by_subject[subject] = []
            by_subject[subject].append(score)
        
        report = f"=== GRADE TREND ANALYSIS ===\n\n"
        report += f"Student ID: {student_id}\n"
        report += f"Analysis Period: {len(grades)} grade entries\n\n"
        
        report += f"{'Subject':<20} {'Average':>10} {'Trend':>10} {'Risk Level':>15}\n"
        report += "-" * 65 + "\n"
        
        overall_at_risk = False
        
        for subject, scores in by_subject.items():
            avg = sum(scores) / len(scores)
            
            "color: #6b7280;"># Calculate trend
            if len(scores) >= 2:
                recent_avg = sum(scores[-3:]) / len(scores[-3:]) if len(scores) >= 3 else scores[-1]
                early_avg = sum(scores[:3]) / len(scores[:3]) if len(scores) >= 3 else scores[0]
                
                if recent_avg > early_avg + 5:
                    trend = "↑ Rising"
                elif recent_avg < early_avg - 5:
                    trend = "↓ Falling"
                else:
                    trend = "→ Stable"
            else:
                trend = "→ Limited"
            
            "color: #6b7280;"># Risk assessment
            if avg < 60:
                risk = "🔴 Critical"
                overall_at_risk = True
            elif avg < 70:
                risk = "⚠️ Warning"
                overall_at_risk = True
            elif avg < 80:
                risk = "○ Monitor"
            else:
                risk = "✓ Good"
            
            report += f"{subject:<20} {avg:>9.1f}% {trend:>10} {risk:>15}\n"
        
        report += "\n=== RECOMMENDATIONS ===\n"
        if overall_at_risk:
            report += "⚠️ Student requires academic intervention\n"
            report += "Actions:\n"
            report += "  1. Schedule parent-teacher conference\n"
            report += "  2. Develop individualized support plan\n"
            report += "  3. Increase monitoring frequency to weekly\n"
            report += "  4. Consider tutoring or peer mentoring\n"
        else:
            report += "✓ Student is performing adequately\n"
            report += "Continue current monitoring schedule\n"
        
        return report
        
    except Exception as e:
        return f"Error calculating grade trends: {str(e)}"

track_attendance_patterns

Track and analyze attendance patterns to identify chronic absenteeism. Args: attendance_data: JSON string with attendance records Example: {"student_id": "12345", "records": [{"date": "2026-01-15", "status": "present"}, ...]} Returns: Attendance pattern analysis with intervention recommendations

def track_attendance_patterns(attendance_data: str) -> str:
    """
    Track and analyze attendance patterns to identify chronic absenteeism.
    
    Args:
        attendance_data: JSON string with attendance records
        Example: {"student_id": "12345", "records": [{"date": "2026-01-15", "status": "present"}, ...]}
    
    Returns:
        Attendance pattern analysis with intervention recommendations
    """
    try:
        if isinstance(attendance_data, str):
            try:
                data = json.loads(attendance_data)
            except json.JSONDecodeError:
                return "Error: Invalid JSON format for attendance data"
        else:
            data = attendance_data
        
        student_id = data.get('student_id', 'Unknown')
        records = data.get('records', [])
        
        if not records:
            return "Error: No attendance records provided"
        
        total_days = len(records)
        present = sum(1 for r in records if r.get('status') == 'present')
        absent = sum(1 for r in records if r.get('status') == 'absent')
        excused = sum(1 for r in records if r.get('status') == 'excused')
        tardy = sum(1 for r in records if r.get('status') == 'tardy')
        
        attendance_rate = (present / total_days) * 100 if total_days > 0 else 0
        
        report = f"=== ATTENDANCE PATTERN ANALYSIS ===\n\n"
        report += f"Student ID: {student_id}\n"
        report += f"Analysis Period: {total_days} school days\n\n"
        
        report += f"{'Status':<20} {'Count':>10} {'Percentage':>12}\n"
        report += "-" * 45 + "\n"
        report += f"{'Present':<20} {present:>10} {(present/total_days)*100:>11.1f}%\n"
        report += f"{'Absent(Unexcused)':<20} {absent:>10} {(absent/total_days)*100:>11.1f}%\n"
        report += f"{'Excused':<20} {excused:>10} {(excused/total_days)*100:>11.1f}%\n"
        report += f"{'Tardy':<20} {tardy:>10} {(tardy/total_days)*100:>11.1f}%\n"
        
        report += f"\n=== ATTENDANCE RATE ===\n"
        report += f"Overall: {attendance_rate:.1f}%\n\n"
        
        "color: #6b7280;"># Risk assessment
        report += "=== RISK ASSESSMENT ===\n"
        if attendance_rate < 85:
            report += "🔴 CRITICAL: Chronic absenteeism detected\n"
            report += "Student is at high risk for academic failure\n\n"
            report += "IMMEDIATE ACTIONS REQUIRED:\n"
            report += "  1. Contact family to identify barriers to attendance\n"
            report += "  2. Develop attendance improvement plan\n"
            report += "  3. Connect family with support services\n"
            report += "  4. Daily attendance monitoring\n"
            report += "  5. Consider truancy intervention if pattern continues\n"
        elif attendance_rate < 90:
            report += "⚠️ WARNING: Below-target attendance\n"
            report += "Actions:\n"
            report += "  1. Parent notification and conference\n"
            report += "  2. Identify attendance barriers\n"
            report += "  3. Weekly monitoring\n"
        elif attendance_rate < 95:
            report += "○ MONITOR: Acceptable but room for improvement\n"
            report += "Continue standard monitoring\n"
        else:
            report += "✓ EXCELLENT: Strong attendance pattern\n"
            report += "Student demonstrates strong commitment to learning\n"
        
        return report
        
    except Exception as e:
        return f"Error tracking attendance patterns: {str(e)}"

reasoning_tools

ReasoningTools from agno framework

Test Agent

Configure model settings at the top, then test the agent below

Enter your question or instruction for the agent