Hours tracked
768.4
88 days tracked
Hours per day
8.7
on days with tracked time
Mean activity
19.3%
never scored
PRs opened
0
in this period
PRs merged
0
none opened
Median time to merge
—
nothing merged
Commits
191
4 repositories
Lines changed
150,935
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.
75
rank 3 of 14
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.
75 of 100, ranked 3 of 14 people with a score, against a cohort median of 71. The bands are cut from this period's own distribution, not fixed thresholds: ≤ 66 is behind, ≥ 73 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 73; they score 75. 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. 1 of 6 components (completed work) could not be measured at all, so the remaining weights were rescaled — this score rests on 78% of the intended evidence.
A band compares this person to the 14 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 |
| Review | 8% | 15 | 15 | 0 | 0 reviews given, 0 of 0 own merges reviewed |
| Infrastructure | 15% | 51 | 50 | +0.2 | 825 points from 237 AWS changes on 26 days |
| Craft | 25% | 99 | 97 | +0.6 | 179 of 179 commits name what they changed |
| Consistency | 12% | 59 | 53 | +0.9 | code landed on 40 separate days |
| 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. |
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 75 − 73 = 2, where 73 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: 768.4 hours tracked, 191 commits, 150,935 lines changed, 19.1% 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
825
Changes
237
Days
26
Unscored
26
sign-ins, own MFA, shells
What they actually did
- ec2 RunInstances×58 · 290 pts
- ec2 ModifySecurityGroupRules×33 · 99 pts
- ec2 CreateKeyPair×14 · 70 pts
- ec2 AuthorizeSecurityGroupIngress×23 · 69 pts
- amplify CreateApp×11 · 55 pts
- ec2 CreateSecurityGroup×15 · 45 pts
- ec2-instance-connect SendSSHPublicKey×18 · 36 pts
- ec2 AllocateAddress×16 · 32 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.900%
All 768.36h went to Hubstaff projects that are not mapped to any repository or external key. This is a project-mapping metric, not a diligence metric — it measures our configuration, not this person's focus.
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 5258 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.
Where the time went
Hubstaff project attribution.
| Thunder Marketing's Project | 660.7h | 4498 rows |
| N8N | 82.6h | 573 rows |
| Coxa Internship | 13.6h | 99 rows |
| Nexus | 8.1h | 62 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 · 191 counted, 0 excluded
Showing the 100 most recent. 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 |
| 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 |
| b81d186 | coxa-hub | docs: record production owner-email uniqueness audit | 2026-09-22 | +34 −3 | 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 |
| 78faa6d | coxa-hub | feat(scrape-review): pending-only parsed.name update under AdminGuard | 2026-09-22 | +86 −1 | counted |
| 6f3dcb2 | coxa-hub | chore: demo cleanup ? canonical host, nav, membership CTA, seed data,… | 2026-09-22 | +1,710 −166 | counted |
| 807c17f | coxa_crm | Add outreach follow-ups, reply-draft automation, and LinkedIn manual … | 2026-09-21 | +946 −42 | counted |
| f0773e0 | coxa_crm | Add Twenty API contract tests to CI | 2026-09-21 | +209 −0 | counted |
| 0f5ea68 | coxa_crm | Remove Curitiba Hub email from all public forms | 2026-09-21 | +11 −18 | 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 |
| 5f23de8 | coxa_crm | Mark G40 closed: Playwright E2E is local-only with mocked writes. | 2026-09-19 | +12 −7 | counted |
| 7355319 | coxa_crm | Add Playwright E2E for apply, inquiry, and news with mocked writes. | 2026-09-19 | +276 −26 | 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 |
| 28cd997 | coxa_crm | Mark G48 closed: news already uses next/image without raw img tags. | 2026-09-18 | +3 −2 | counted |
| 443a8d2 | coxa_crm | Store partnership inquiry messages on universityContact.inquiryMessage. | 2026-09-18 | +57 −185 | counted |
| 707a437 | coxa_crm | Mark G33 closed: newsletter consent already matches apply/partner. | 2026-09-18 | +16 −10 | counted |
| 023b20c | coxa_crm | Correct JAMES_PROGRESS: live LGPD checkboxes no longer say rascunho. | 2026-09-18 | +3 −3 | counted |
| f790cc7 | coxa_crm | Mark G3 as PARTIAL now that Coxa Hub Member exists on Kyma. | 2026-09-18 | +8 −5 | counted |
| c939230 | coxa_crm | Add GitHub Actions CI to run tests and build on main. | 2026-09-18 | +23 −0 | counted |
| 49b8e14 | coxa_crm | Treat Applicant Unique-email conflicts as reuse on apply, not 502. | 2026-09-18 | +213 −10 | counted |
| 3b229ef | NexusAI | docs: production status and follow-up items for POSITION integration | 2026-09-18 | +57 −0 | counted |
| 4b0162b | NexusAI | feat: add POSITION campaign/narrative integration (article, image, vi… | 2026-09-18 | +2,615 −1 | counted |
| 206af85 | coxa_crm | Document Render production URL in handover and README. | 2026-09-18 | +16 −7 | counted |
| 360dc73 | coxa_crm | Merge origin/main into local main before G50 push | 2026-09-18 | +1,057 −45 | counted |
| ad8ea9a | coxa_crm | Close G50: confirm trash Applicant + orphan Application already resol… | 2026-09-18 | +385 −5 | counted |
| 4908cbd | coxa-hub | fix: bind Nest to API_PORT so Render nginx can own PORT 10000 | 2026-09-17 | +42 −2 | counted |
| 51db69d | coxa_crm | Fix outreach TypeScript so Render production builds succeed. | 2026-09-17 | +16 −11 | counted |
| 9e742c6 | NexusAI | docs: production status and follow-up items for POSITION integration | 2026-09-17 | +57 −0 | counted |
| 9462097 | coxa-hub | feat(scraper): enqueue Batch 2 homepages into production scrape-review | 2026-09-17 | +167 −0 | counted |
| d910894 | coxa-hub | docs: mark Confirm-email toggle as N/A for OTP-only login | 2026-09-17 | +13 −21 | counted |
| 6b1c9f8 | coxa-hub | fix(admin): show expired session instead of an empty review queue | 2026-09-17 | +494 −215 | counted |
| 61d57ec | coxa_crm | Merge origin/main outreach work into local main | 2026-09-17 | +2,360 −10 | counted |
| ab6175d | coxa_crm | Add Stage E GraphQL export script for Kyma record dumps | 2026-09-17 | +452 −0 | counted |
| 023898e | coxa_crm | Add school import CSVs for outreach follow-up and near-miss review | 2026-09-17 | +376 −0 | counted |
| 57ee0c7 | coxa_crm | Add planning and handover docs for workspace split and internship ops | 2026-09-16 | +2,016 −70 | counted |
| 8b40863 | NexusAI | feat: add POSITION campaign/narrative integration (article, image, vi… | 2026-09-16 | +2,615 −1 | counted |
| 243fbda | coxa_crm | Add Portuguese translation of retention policy, update /privacidade t… | 2026-09-13 | +77 −8 | counted |
| 2825166 | coxa_crm | Add /api/health endpoint with rate limiting and cached Twenty upstrea… | 2026-09-13 | +225 −2 | counted |
| bd52ac8 | coxa_crm | Add dry-run record: 79 universities with null pipelineStage set to PR… | 2026-09-13 | +89 −0 | counted |
| 3d08355 | coxa_crm | Add LGPD consent checkboxes to apply and partner forms, /privacidade … | 2026-09-13 | +455 −8 | counted |
| a0eec8c | coxa_crm | Add P1 planning docs: LGPD retention, uniqueness constraints, backup/… | 2026-09-13 | +267 −0 | counted |
| b07b795 | coxa_crm | Add rate limiting, honeypot protection, and university-inquiry dedupl… | 2026-09-13 | +678 −40 | counted |
| 4d22e8b | coxa_crm | Add internship platform: apply flow, university partnership, newslett… | 2026-09-12 | +4,537 −738 | counted |
| 88e08b1 | coxa_crm | Ignore root .env files and CRM backup dumps. | 2026-09-12 | +4 −0 | counted |
| 77eca7f | NexusAI | docs: mark S3-only Phase 1 done after merging origin/main | 2026-09-10 | +3 −3 | counted |
| 0512937 | NexusAI | Merge remote-tracking branch 'origin/main' into phase-0/vms-foundation | 2026-09-10 | +3,225 −15 | counted |
| db85c53 | NexusAI | feat: migrate Nexus storage to AWS S3 | 2026-09-10 | +1,697 −393 | counted |
| c2d97f6 | NexusAI | fix(ci): stop following HTTPS in deploy health check | 2026-09-09 | +1 −1 | counted |
| f5c0b8e | NexusAI | chore(web): rebuild Next.js so merged synthetic-media UI ships on ava… | 2026-09-09 | +2 −2 | counted |
| f02717a | NexusAI | fix(api): unique alembic revision for synthetic media so EC2 can migrate | 2026-09-09 | +127 −103 | counted |
| b80fbb8 | NexusAI | merge: origin/main into phase-0/vms-foundation | 2026-09-09 | +12,951 −11 | counted |
| 48a38ec | NexusAI | feat(dossier): render episodes with 16:9 H3 motion and video lipsync | 2026-09-09 | +1,870 −45 | counted |
| 85f786a | NexusAI | feat(dossier): Phase 4 — episode video generation (FFmpeg Ken Burns) | 2026-09-07 | +998 −0 | counted |
| 876e186 | NexusAI | feat(dossier): ElevenLabs voice integration | 2026-09-07 | +137 −29 | counted |
| 1b72118 | NexusAI | feat(dossier): Phase 3 — episode scripts + scene breakdown + voice/audio | 2026-09-07 | +1,781 −8 | counted |
| 1696518 | NexusAI | feat(dossier): pose fixes + PDF image embedding | 2026-09-06 | +383 −2 | counted |
| 3b3777f | NexusAI | fix(dossier): compress hero image before pose input_references | 2026-09-06 | +41 −10 | counted |
| 5638374 | NexusAI | fix(dossier): resolve hero image to data URI for OpenRouter pose calls | 2026-09-06 | +60 −1 | counted |
| cf2b04a | NexusAI | feat(dossier): Phase 2 — character image generation | 2026-09-06 | +676 −7 | counted |
| 31be5d9 | NexusAI | Fix: Restore image_prompt in pose gallery cells, remove unused fallba… | 2026-09-06 | +6 −6 | counted |
| 914c530 | NexusAI | fix(dossier): pose gallery truncation — wrap long descriptions | 2026-09-06 | +6 −6 | counted |
| 2424a25 | NexusAI | fix(dossier): pose gallery truncation — wrap long descriptions | 2026-09-06 | +31 −13 | counted |
| feee8f9 | NexusAI | fix(dossier): pose galleries for all characters in PDF | 2026-09-06 | +84 −15 | counted |
| 73641c0 | NexusAI | fix(dossier): remove fake example.com URLs from citations | 2026-09-06 | +37 −5 | counted |
| 9fbb998 | NexusAI | fix(dossier): franchise placeholders, citations, duplicate character … | 2026-09-06 | +192 −35 | counted |
| 3b081cb | NexusAI | fix(dossier): shared renders volume + API-accessible output_url | 2026-09-06 | +48 −3 | counted |
| ff0d0aa | NexusAI | feat(dossier): v2 Day 3 — context awareness (Qdrant RAG + character a… | 2026-09-06 | +607 −25 | counted |
| da87e83 | NexusAI | test: add Playwright smoke suite and fix vms_smoke 401 setup | 2026-09-04 | +540 −2 | counted |
| eb0e4d8 | NexusAI | fix(api): stop content_briefs migration from creating its enum twice | 2026-09-04 | +11 −2 | counted |
| 8bca621 | NexusAI | fix(api): merge Dual Render and Trend Ingestion alembic heads | 2026-09-04 | +24 −0 | counted |
| 1e73049 | NexusAI | feat(api): resolve provider endpoints from a per-country CSV | 2026-09-04 | +473 −33 | counted |
| 0bf700c | NexusAI | Merge pull request #20 from 1Touch-dev/feature/dual-render-engine-phase3 | 2026-09-03 | +1,442 −85 | counted |
| 9863d61 | NexusAI | fix(web): use render-engine options in admin company select | 2026-09-03 | +10 −3 | counted |
| 59e4309 | NexusAI | feat(render): wire opt-in Remotion dual engine after FFmpeg | 2026-09-03 | +1,435 −85 | counted |
| 9645caf | NexusAI | fix: tighten face crop padding (reduce pad_bot 2.5x->0.5x), keep raw … | 2026-09-01 | +16 −6 | counted |
| 645cc62 | NexusAI | feat(digital-human): add post-generation face crop step | 2026-09-01 | +64 −0 | counted |
| 703cecd | NexusAI | feat(web): add Digital Human Preview section to video job detail card | 2026-09-01 | +16 −1 | counted |
| 2ea38c7 | NexusAI | fix: upload narration audio to ComfyUI instead of passing EC2 filesys… | 2026-09-01 | +40 −2 | counted |
| 9771805 | NexusAI | fix: remove non-functional director_id guard from Digital Human; docu… | 2026-09-01 | +14 −17 | counted |
| 82fe165 | NexusAI | feat: add Digital Human portrait auto-generation with Wav2Lip pipeline | 2026-09-01 | +870 −9 | counted |
| 53a8f68 | NexusAI | fix: replace -fps_mode cfr with -vsync cfr for FFmpeg 4.x compatibility | 2026-08-30 | +6 −3 | counted |
| cb02480 | NexusAI | fix: add Redis-backed semaphore to serialize video_use concurrent ren… | 2026-08-30 | +100 −37 | counted |
| 00601cb | NexusAI | fix: raise video_use /render timeout and Celery limits to prevent fal… | 2026-08-30 | +11 −3 | counted |
| 3667011 | NexusAI | fix: surface real FFmpeg errors + set job.status=failed on render fai… | 2026-08-30 | +20 −3 | 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.