Hours tracked
68.5
8 days tracked
Hours per day
8.6
on days with tracked time
Mean activity
30.3%
never scored
PRs opened
0
in this period
PRs merged
0
none opened
Median time to merge
—
nothing merged
Commits
29
2 repositories
Lines changed
17,217
context only — never scored
Identity
A person is only measurable across the providers they are linked to.
Evidence confidence for this person
0.55 against a 0.60 floor — no composite score is computed and no alert can fire for this person (AC-05). Measured 0.70, capped because no task tracker defines the work.
Delivery signal
An input to a conversation, not a verdict.
82
rank 3 of 12
Why this reads as “Steady”
The band is cut from this period's own distribution, not a fixed threshold. The arithmetic is below so it can be checked rather than believed.
82 of 100, ranked 3 of 12 people with a score, against a cohort median of 78. The bands are cut from this period's own distribution, not fixed thresholds: ≤ 78 is behind, ≥ 81 is leading, and this person is in the middle 40% of people with a score this period. With every component at the cohort median this person would score 82; they score 82. No single component moves the score by as much as a point; the position comes from the spread across all of them, not from one weak term. 2 of 6 components (completed work, review) could not be measured at all, so the remaining weights were rescaled — this score rests on 70% of the intended evidence.
A band compares this person to the 12 people who have a score in this window — nothing more. It is not a rating, it does not persist, and it moves when the cohort or the window moves.
How this number was built
Every term is shown with the rows it came from and the cohort figure it was judged against. If a term looks wrong, the tables below are the argument.
| Component | Weight | Score | Cohort median | Effect | Computed from |
|---|---|---|---|---|---|
| Change discipline | 18% | 100 | 100 | 0 | median commit 64 lines |
| Consistency | 12% | 55 | 55 | 0 | code landed on 24 separate days |
| Infrastructure | 15% | 54 | 53 | +0.2 | 734 points from 204 AWS changes on 18 days |
| Craft | 25% | 100 | 98 | +0.7 | 125 of 125 commits name what they changed |
| Completed work | 22% | — | — | — | not scored — never assigned a task in any connected tracker. Scoring 0 here would read as "delivered nothing" when the truth is that no tracker describes this person’s work. |
| Review | 8% | — | — | — | not scored — no review is recorded anywhere in the organisation, so this term has no data for anyone. It is withheld rather than scored 0 — a 0 would read as "does not collaborate". |
Effect is a counterfactual, not a share: how many points this person’s score would move if that one component dropped to the cohort median for it. The effects sum to 82 − 82 = 0, where 82 is what this person would score with every one of their components at the cohort median. Negative rows are the reason the total sits where it does. A component with no data is withheld and the remaining weights are rescaled — it is never scored as zero, and it never counts against anyone.
Measured but deliberately not scored: 68.5 hours tracked, 29 commits, 17,217 lines changed, 29.3% activity. The first four measure motion rather than delivery and are trivially inflated. CI is excluded because it exists on a minority of repositories, so scoring it would rank people by which repository they work in. This score cannot see architecture, planning, mentoring, incident response or infrastructure work at all.
Infrastructure work
From CloudTrail — the only record of work that leaves no trace in git.
Weighted points
135
Changes
43
Days
7
Unscored
2
sign-ins, own MFA, shells
What they actually did
- ec2 ModifySecurityGroupRules×25 · 75 pts
- ec2 RunInstances×4 · 20 pts
- ec2 AuthorizeSecurityGroupIngress×3 · 9 pts
- ec2 CreateKeyPair×1 · 5 pts
- s3 CreateBucket×1 · 5 pts
- amplify UpdateApp×1 · 4 pts
- route53 ChangeResourceRecordSets×2 · 4 pts
- ec2 CreateSecurityGroup×1 · 3 pts
CloudTrail records the API call, not the intent. It cannot tell a considered change from one corrected a minute later, and it retains 90 days — so an empty earlier period means “not retained”, never “nothing happened”.
Employee KPIs
Six of the twelve. Where a value is absent the reason is stated — never rendered as a zero.
Focused project ratio
conf 0.9013.9%
9.55h of 68.46h on mapped projects. A project-mapping metric, not a diligence metric.
Evidence confidence
conf 1.0055%
Below the 0.6 floor, so no composite score is computed and no alert can fire (AC-05).
| Accepted difficulty points | blocked | None of this person's 1 work units reached acceptance (merged + first CI green + ≥1 review). |
| First-pass acceptance | blocked | Nothing accepted, so there is no first-pass rate. |
| Idle classification mix | blocked | 0 of 484 intervals carry a class. |
| Tokens per accepted point | blocked | No AI usage data connected. |
Day by day
Tracked time beside code that landed. Click a day for the raw Hubstaff intervals behind its hours.
| Day | Hours | Act% | Commits | PRs opened | PRs merged |
|---|---|---|---|---|---|
| ▸ 2026-09-26 | 8.05 | 31.2 | 0 | 0 | 0 |
| ▸ 2026-09-25 | 10.57 | 27.9 | 0 | 0 | 0 |
| ▾ 2026-09-24 | 8.30 | 34.6 | 0 | 0 | 0 |
| ▸ 2026-09-23 | 8.52 | 31.4 | 0 | 0 | 0 |
| ▸ 2026-09-22 | 7.80 | 37.1 | 9 | 0 | 0 |
| ▸ 2026-09-21 | 7.22 | 22.6 | 3 | 0 | 0 |
| ▸ 2026-09-20 | 10.08 | 24.9 | 7 | 0 | 0 |
| ▸ 2026-09-19 | 7.94 | 25.2 | 10 | 0 | 0 |
Raw Hubstaff intervals · 2026-09-24
| Start | End | Act% | Project | Source | Provider row |
|---|---|---|---|---|---|
| 04:17 | 04:20 | 20.53 | Thunder Marketing's Project | hubstaff | hubstaff:10290015001 |
| 04:20 | 04:30 | 25.67 | Thunder Marketing's Project | hubstaff | hubstaff:10290032976 |
| 04:30 | 04:40 | 56.33 | Thunder Marketing's Project | hubstaff | hubstaff:10290057543 |
| 04:40 | 04:42 | 33.10 | Thunder Marketing's Project | hubstaff | hubstaff:10290063728 |
| 04:42 | 04:50 | 32.31 | Coxa Internship | hubstaff | hubstaff:10290361722 |
| 04:50 | 05:00 | 15.17 | Coxa Internship | hubstaff | hubstaff:10290361831 |
| 05:00 | 05:02 | 4.94 | Coxa Internship | hubstaff | hubstaff:10290361923 |
| 06:14 | 06:20 | 43.20 | Coxa Internship | hubstaff | hubstaff:10290362025 |
| 06:20 | 06:30 | 42.50 | Coxa Internship | hubstaff | hubstaff:10290396910 |
| 06:30 | 06:40 | 29.33 | Coxa Internship | hubstaff | hubstaff:10290433907 |
| 06:40 | 06:50 | 33.83 | Coxa Internship | hubstaff | hubstaff:10290476870 |
| 06:50 | 06:56 | 9.04 | Coxa Internship | hubstaff | hubstaff:10290490694 |
| 07:07 | 07:10 | 41.38 | Coxa Internship | hubstaff | hubstaff:10290546832 |
| 07:10 | 07:20 | 21.00 | Coxa Internship | hubstaff | hubstaff:10290584735 |
| 07:20 | 07:30 | 33.50 | Coxa Internship | hubstaff | hubstaff:10290622792 |
| 07:30 | 07:40 | 56.50 | Coxa Internship | hubstaff | hubstaff:10290663699 |
| 07:40 | 07:50 | 31.50 | Coxa Internship | hubstaff | hubstaff:10290700754 |
| 07:50 | 08:00 | 6.00 | Coxa Internship | hubstaff | hubstaff:10290744373 |
| 08:00 | 08:10 | 8.67 | Coxa Internship | hubstaff | hubstaff:10290781573 |
| 08:10 | 08:20 | 51.50 | Coxa Internship | hubstaff | hubstaff:10290820935 |
| 08:20 | 08:30 | 30.17 | Coxa Internship | hubstaff | hubstaff:10290864011 |
| 08:30 | 08:40 | 44.00 | Coxa Internship | hubstaff | hubstaff:10290899755 |
| 08:40 | 08:50 | 47.83 | Coxa Internship | hubstaff | hubstaff:10290939340 |
| 08:50 | 09:00 | 49.17 | Coxa Internship | hubstaff | hubstaff:10290979249 |
| 09:00 | 09:10 | 51.67 | Coxa Internship | hubstaff | hubstaff:10291020738 |
| 09:10 | 09:20 | 67.33 | Coxa Internship | hubstaff | hubstaff:10291059865 |
| 09:20 | 09:30 | 60.33 | Coxa Internship | hubstaff | hubstaff:10291098836 |
| 09:30 | 09:40 | 48.33 | Coxa Internship | hubstaff | hubstaff:10291139978 |
| 09:40 | 09:50 | 32.83 | Coxa Internship | hubstaff | hubstaff:10291179095 |
| 09:50 | 10:00 | 50.00 | Coxa Internship | hubstaff | hubstaff:10291219084 |
| 10:00 | 10:10 | 34.00 | Coxa Internship | hubstaff | hubstaff:10291260625 |
| 10:10 | 10:20 | 76.50 | Coxa Internship | hubstaff | hubstaff:10291301309 |
| 10:20 | 10:30 | 64.50 | Coxa Internship | hubstaff | hubstaff:10291344809 |
| 10:30 | 10:40 | 64.50 | Coxa Internship | hubstaff | hubstaff:10291383271 |
| 10:40 | 10:50 | 52.67 | Coxa Internship | hubstaff | hubstaff:10291423796 |
| 10:50 | 11:00 | 61.33 | Coxa Internship | hubstaff | hubstaff:10291465222 |
| 11:00 | 11:10 | 70.33 | Coxa Internship | hubstaff | hubstaff:10291507591 |
| 11:10 | 11:12 | 62.73 | Coxa Internship | hubstaff | hubstaff:10291517739 |
| 11:45 | 11:50 | 0.00 | Position | hubstaff | hubstaff:10292960275 |
| 11:50 | 12:00 | 0.00 | Position | hubstaff | hubstaff:10292960276 |
| 12:00 | 12:10 | 0.00 | Position | hubstaff | hubstaff:10292960278 |
| 12:10 | 12:20 | 0.00 | Position | hubstaff | hubstaff:10292960279 |
| 12:20 | 12:30 | 0.00 | Position | hubstaff | hubstaff:10292960280 |
| 12:30 | 12:40 | 0.00 | Position | hubstaff | hubstaff:10292960281 |
| 12:40 | 12:50 | 0.00 | Position | hubstaff | hubstaff:10292960282 |
| 12:50 | 13:00 | 0.00 | Position | hubstaff | hubstaff:10292960284 |
| 13:00 | 13:05 | 0.00 | Position | hubstaff | hubstaff:10292960285 |
| 13:10 | 13:20 | 54.90 | Coxa Internship | hubstaff | hubstaff:10292204140 |
| 13:20 | 13:30 | 8.33 | Coxa Internship | hubstaff | hubstaff:10292471692 |
| 13:30 | 13:40 | 10.67 | Coxa Internship | hubstaff | hubstaff:10292471805 |
| 13:40 | 13:50 | 19.50 | Coxa Internship | hubstaff | hubstaff:10292471932 |
| 13:50 | 14:00 | 57.67 | Coxa Internship | hubstaff | hubstaff:10292497930 |
| 14:00 | 14:10 | 30.50 | Coxa Internship | hubstaff | hubstaff:10292603072 |
| 14:10 | 14:20 | 46.50 | Coxa Internship | hubstaff | hubstaff:10292658095 |
| 14:20 | 14:30 | 55.33 | Coxa Internship | hubstaff | hubstaff:10292738484 |
| 14:30 | 14:32 | 47.43 | Coxa Internship | hubstaff | hubstaff:10292760809 |
| 14:41 | 14:44 | 42.62 | Coxa Internship | hubstaff | hubstaff:10292846776 |
57 rows from time_intervals. This is the bottom of the chain — there is nothing below it but the Hubstaff API response.
Where the time went
Hubstaff project attribution.
| Thunder Marketing's Project | 42.0h | 286 rows |
| Coxa Internship | 13.6h | 99 rows |
| Nexus | 9.5h | 73 rows |
| Coxahub | 2.0h | 17 rows |
| Position | 1.3h | 9 rows |
What was not counted
Commits excluded from output, with the reason stored on the row.
Nothing of this person's was excluded in this window.
Pull requests · 0
The rows behind “merged” and “reviewed before merge”. Every one links to GitHub.
No pull requests opened or merged by this person in this window.
Commits · 29 counted, 0 excluded
Default-branch history only. Work on unmerged PR branches does not appear here — see the pull requests above.
| SHA | Repo | Message | When | +/− | Counted |
|---|---|---|---|---|---|
| 0156472 | coxa-hub | Add a one-shot admin cleanup that deletes only the owner-refresh smok… | 2026-09-22 | +322 −0 | counted |
| b81d186 | coxa-hub | docs: record production owner-email uniqueness audit | 2026-09-22 | +34 −3 | counted |
| 240cdc1 | coxa-hub | Allow claim OTP responses without a refresh id so the API typechecks … | 2026-09-22 | +4 −4 | counted |
| 03e4a2c | coxa-hub | Ship owner refresh plus one-business uniqueness with the Places ToS i… | 2026-09-22 | +1,065 −116 | counted |
| a6ffbcc | coxa-hub | docs: GBP feasibility, voice draft, and owner-auth plans | 2026-09-22 | +727 −0 | counted |
| 438c6f0 | coxa-hub | feat(admin): apply 24 launch sectors and backfill 34 business sectorIds | 2026-09-22 | +430 −2 | counted |
| a6f6246 | coxa-hub | feat: add admin endpoint to hide test data (demo-empresa, ankur-kumar… | 2026-09-22 | +7,320 −2 | counted |
| 6f3dcb2 | coxa-hub | chore: demo cleanup ? canonical host, nav, membership CTA, seed data,… | 2026-09-22 | +1,710 −166 | counted |
| 78faa6d | coxa-hub | feat(scrape-review): pending-only parsed.name update under AdminGuard | 2026-09-22 | +86 −1 | counted |
| 807c17f | coxa_crm | Add outreach follow-ups, reply-draft automation, and LinkedIn manual … | 2026-09-21 | +946 −42 | counted |
| 0f5ea68 | coxa_crm | Remove Curitiba Hub email from all public forms | 2026-09-21 | +11 −18 | counted |
| f0773e0 | coxa_crm | Add Twenty API contract tests to CI | 2026-09-21 | +209 −0 | counted |
| a280a7f | coxa_crm | Add news categories and Portuguese body support | 2026-09-20 | +460 −46 | counted |
| 33f2dea | coxa_crm | Add CV file upload, replacing URL-paste field | 2026-09-20 | +1,283 −330 | counted |
| f01a46c | coxa_crm | Fix Docker build: npm install instead of npm ci, fix type errors from… | 2026-09-20 | +105 −2 | counted |
| 6abd03c | coxa_crm | Add client-side search and track chips so students can filter the pro… | 2026-09-20 | +325 −19 | counted |
| d507e05 | coxa_crm | Page the apply university list with Twenty REST cursors, not offset. | 2026-09-20 | +49 −19 | counted |
| aa6df88 | coxa_crm | Send a fail-open apply confirmation email when Resend is configured. | 2026-09-20 | +259 −0 | counted |
| f461f65 | coxa_crm | Replace the static /apply university list with a searchable CRM catal… | 2026-09-20 | +271 −19 | counted |
| 0e64fd0 | coxa_crm | Keep Playwright E2E out of the production Docker build. | 2026-09-19 | +10 −1 | counted |
| 0d6c996 | coxa_crm | Restore @emnapi lock entries so Linux Docker npm ci succeeds. | 2026-09-19 | +25 −0 | counted |
| 7355319 | coxa_crm | Add Playwright E2E for apply, inquiry, and news with mocked writes. | 2026-09-19 | +276 −26 | counted |
| 5f23de8 | coxa_crm | Mark G40 closed: Playwright E2E is local-only with mocked writes. | 2026-09-19 | +12 −7 | counted |
| 1b4b3de | coxa_crm | Mark G31 closed: apply already reuses on Unique-email. | 2026-09-19 | +3 −2 | counted |
| c4c236d | coxa_crm | Mark G32 closed: Application composite Unique is enforced on Kyma. | 2026-09-19 | +7 −4 | counted |
| 5eae88d | coxa_crm | Enforce one Application per applicant and program with a Unique compo… | 2026-09-19 | +99 −3 | counted |
| e19abdb | coxa_crm | Add an off-box Docker image so coxa-next can run beside Twenty on EC2. | 2026-09-19 | +49 −1 | counted |
| 4c40df5 | coxa_crm | Mark G41 closed: apply, inquiry, newsletter, news, and checkUrlSafety… | 2026-09-19 | +13 −10 | counted |
| 64cbb71 | coxa_crm | Add Vitest coverage for the news list and article pages. | 2026-09-19 | +264 −0 | counted |
This is wrong
Anything on this page can be disputed. A correction is a stored row, not an email — it stays attached to the figure it challenges.
Corrections on record · 0
Open disputes are shown to anyone reading this person's numbers.
Nothing disputed yet.