Auto Up Skill Sro 90%

return ( <div className="skill-card"> <h3>Skill Rating (Auto SRO)</h3> <div className="score">currentScore / 100</div> <label> <input type="checkbox" checked=autoEnabled onChange=(e) => setAutoEnabled(e.target.checked) /> Enable auto up-skilling </label> <button onClick=triggerManualUpgrade>Force Recalculate</button> <small>Auto-updates daily based on recent performance & peer comparison.</small> </div> );

"user_id": 101, "skill_id": 5, "force_recalc": false auto up skill sro

# Formula raw_update = ( 0.4 * recent_avg + 0.3 * task_success_rate * 100 + 0.2 * peer_percentile + 0.1 * self.current_score ) * decay_factor return ( &lt

new_score = min(100, max(0, raw_update)) # clamp 0–100 return round(new_score, 1) Skill Rating (Auto SRO)&lt

def trigger_auto_update(self): new_score = self.compute_new_score() if abs(new_score - self.current_score) >= 1.0: self.update_sro_score(new_score) self.log_skill_change() return "updated": True, "old": self.current_score, "new": new_score return "updated": False ALTER TABLE skill_rating ADD COLUMN auto_upgrade_enabled BOOLEAN DEFAULT TRUE; ALTER TABLE skill_rating ADD COLUMN last_auto_calc TIMESTAMP; ALTER TABLE skill_rating ADD COLUMN decay_rate DECIMAL(3,2) DEFAULT 0.98; CREATE TABLE skill_auto_log ( id SERIAL PRIMARY KEY, user_id INT, skill_id INT, old_score DECIMAL(5,2), new_score DECIMAL(5,2), reason TEXT, calculated_at TIMESTAMP DEFAULT NOW() ); 3. API Endpoint POST /api/v1/sro/auto-upgrade