Analyze labor productivity by trade, activity, and location. Track efficiency and identify improvement opportunities.
SkillScore95Maintained
Automatic
◆Project Management pack
Last verified 8/23/2026
What it changes
Passed 20 of 21 test cases with the skill, and 11 of 21 without it.
Without skill50%
With skill95%
Checks it passed that the model alone missed
Assigns status code below_target
Generates entry identifier PROD-00001
Calculates productivity factor as 0.90
and 8 more in the full report
10 fixed11 passed either way1 still failing0 broke
Pass-rate lift
+45 pp
Tokens
+88%
Agent turns
0%
Response time
-36%
Model gemini-3.6-flashMeasured 8/23/2026v121 of 22 cases passed with skill · 21 comparable
Tokens, turns and time describe resource use, not a dollar price.
See it in action
One of 10 test cases the skill fixed. Same model, same prompt, with and without the skill.
1 of 10
Prompt
We are exporting our daily labor productivity logs to an Excel tabular report format. List all 12 standard export column header names in their exact documented order.
What was checked, without and with the skill
Checked
Without skill
With skill
Lists column headers starting with Date, Trade, Activity, Location, Crew, Hours, Quantity, Unit, Target, Actual, Factor, Status in that sequence
Missed
Passed
case-14 · gemini-3.6-flash · 8/23/2026 · answers are capped and redacted
What's inside
The instructions your model reads when the skill loads.
SKILL.md198 linessingle file
Labor Productivity Analyzer
Technical Implementation
import pandas as pd
from datetime import date
from typing import Dict, Any, List
from dataclasses import dataclass, field
from enum import Enum
class ProductivityStatus(Enum):
EXCEEDING = "exceeding"
ON_TARGET = "on_target"
BELOW_TARGET = "below_target"
CRITICAL = "critical"
@dataclass
class ProductivityEntry:
entry_id: str
date: date
trade: str
activity_code: str
activity_description: str
location: str
crew_size: int
hours_worked: float
quantity_installed: float
unit: str
target_productivity: float # units per hour
@property
def actual_productivity(self) -> float:
if self.hours_worked == 0:
return 0
return self.quantity_installed / self.hours_worked
@property
Extract structured data from construction documents using LLMs. Process RFIs, submittals, contracts, specifications. Convert unstructured PDFs to structured JSON/Excel.