Hours tracked
583.2
66 days tracked
Hours per day
8.8
on days with tracked time
Mean activity
28.5%
never scored
PRs opened
0
in this period
PRs merged
0
none opened
Median time to merge
—
nothing merged
Commits
250
2 repositories
Lines changed
278,642
context only — never scored
Identity
A person is only measurable across the providers they are linked to.
Evidence confidence for this person
0.40 against a 0.60 floor — no composite score is computed and no alert can fire for this person (AC-05).
Delivery signal
An input to a conversation, not a verdict.
73
rank 5 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.
73 of 100, ranked 5 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 73. That difference is carried by infrastructure (32 against a cohort median of 50, worth -3.5 points) and consistency (45 against a cohort median of 53, worth -1.2 points). 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 |
|---|---|---|---|---|---|
| Infrastructure | 15% | 32 | 50 | -3.5 | 327 points from 138 AWS changes on 10 days |
| Consistency | 12% | 45 | 53 | -1.2 | code landed on 24 separate days |
| Change discipline | 18% | 100 | 100 | 0 | median commit 162 lines |
| Craft | 25% | 99 | 97 | +0.6 | 198 of 199 commits name what they changed |
| Review | 8% | 50 | 15 | +3.6 | 1 reviews given, 0 of 0 own merges reviewed |
| 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 73 − 73 = 0, 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: 583.2 hours tracked, 250 commits, 278,642 lines changed, 27.9% 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.
Flags raised · 1
Observations about the work, not judgements of the person. None of these feed the score. Each one shows the rule that fired and what it does not prove.
⚑ This score describes 47% of their recorded working time
Rule: fires below 70% coverage with at least 20 tracked days — 31 of 66 days produced a commit, review, task or infrastructure change.
What it does not mean: The other 35 days were worked and tracked, and produced nothing any connected system records. That is meetings, support, debugging, planning and infrastructure without an AWS account mapped — work this platform is blind to, not work that did not happen. It does not lower the score; it bounds what the score is about.
Infrastructure work
From CloudTrail — the only record of work that leaves no trace in git.
Weighted points
327
Changes
138
Days
10
Unscored
33
sign-ins, own MFA, shells
What they actually did
- route53 ChangeResourceRecordSets×92 · 184 pts
- ses CreateEmailIdentity×15 · 75 pts
- ses PutEmailIdentityDkimAttributes×15 · 30 pts
- q SendMessage×10 · 20 pts
- route53 CreateHostedZone×2 · 10 pts
- sts GetSessionToken×4 · 8 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 583.22h 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.0040%
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 0 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 3666 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.
Raw Hubstaff intervals · 2026-09-20
No intervals stored for this day. That is an absence of tracked time, not a claim that no work happened.
Where the time went
Hubstaff project attribution.
| Thunder Marketing's Project | 564.4h | 3546 rows |
| Position | 18.7h | 118 rows |
| webmail | 0.1h | 2 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 · 250 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 |
|---|---|---|---|---|---|
| a827400 | HyerPathEnrichment | Merge pull request #270 from 1Touch-dev/product-doors/t5-full-suite | 2026-09-21 | +197 −57 | counted |
| 39fe884 | HyerPathEnrichment | Merge origin/main into product-doors/t5-full-suite | 2026-09-21 | +29,678 −6,609 | counted |
| 1f52bb6 | HyerPathEnrichment | Merge pull request #278 from 1Touch-dev/fix/manual-ui-test-script-qa | 2026-09-21 | +383 −52 | counted |
| 1e77f1c | HyerPathEnrichment | Merge origin/main into fix/manual-ui-test-script-qa | 2026-09-21 | +9,074 −3,742 | counted |
| fe2eef1 | HyerPathEnrichment | Merge pull request #275 from 1Touch-dev/fix/multilogin-docker-rca | 2026-09-21 | +9,074 −3,742 | counted |
| dd62e73 | email-service | fix(admin): keep mailbox table full width | 2026-09-19 | +4 −2 | counted |
| f620c67 | email-service | feat(admin): show Admin Portal beside Thunder Mail | 2026-09-19 | +3 −3 | counted |
| c3f0831 | email-service | feat(admin): restyle login and sidebar, tighten mailbox table | 2026-09-19 | +396 −90 | counted |
| 6e88cc1 | email-service | fix(admin): keep mailbox emails on one line | 2026-09-19 | +42 −30 | counted |
| cb2a774 | email-service | fix(admin): tighten mailbox domain panel and space the table | 2026-09-19 | +17 −9 | counted |
| 5eabd86 | email-service | feat(admin): sit mailbox domain panel under the header | 2026-09-19 | +144 −18 | counted |
| 75e21e6 | email-service | fix(ci): fetch stalwart-cli from GitHub Releases instead of GHCR | 2026-09-18 | +41 −9 | counted |
| 5f47714 | email-service | feat(admin): replace mailbox domain dropdown with a side panel | 2026-09-18 | +480 −297 | counted |
| a7da89b | email-service | fix(ci): stop webmail image builds hanging on a full runner disk | 2026-09-18 | +15 −1 | counted |
| 2cc4ca5 | email-service | style(admin): update portal navy theme | 2026-09-18 | +36 −36 | counted |
| b1a9149 | email-service | fix(admin): show Copied after mailbox password copy | 2026-09-18 | +51 −1 | counted |
| 3de2918 | email-service | style(admin): update portal navy theme | 2026-09-18 | +36 −36 | counted |
| fa92de9 | email-service | fix(admin): show Copied after mailbox password copy | 2026-09-18 | +51 −1 | counted |
| b546a5f | email-service | fix(lint): drop unused logging import in stalwart tests | 2026-09-18 | +2 −3 | counted |
| 3b827c6 | email-service | fix(ci): harden auth inventory and stalwart log assertions | 2026-09-18 | +52 −25 | counted |
| 4805bd7 | email-service | fix(ci): align tests and pins with main head contracts | 2026-09-18 | +102 −26 | counted |
| 423ba11 | email-service | fix(lint): clear ruff failures blocking main CI | 2026-09-18 | +13 −17 | counted |
| 75c0c68 | email-service | feat(webmail): alias Thunder logos under default branding paths | 2026-09-18 | +12 −0 | counted |
| a78de55 | email-service | feat(worker): schedule disk and mailbox storage sync jobs | 2026-09-18 | +116 −0 | counted |
| d8ba701 | email-service | fix(billing): refresh real mailbox storage before usage views | 2026-09-18 | +10 −14 | counted |
| 3377f1c | email-service | feat(storage): add disk usage snapshots and admin warning | 2026-09-18 | +266 −6 | counted |
| 74f5fa3 | email-service | Add domain-first mailbox table with pagination and created_at. | 2026-09-18 | +928 −173 | counted |
| a3c2fe3 | email-service | Advance production alembic checkpoint to 0018_system_disk_snapshots | 2026-09-18 | +3 −2 | counted |
| 19d7368 | email-service | Domain manager: grant add/delete rights + share Trash | 2026-09-18 | +388 −34 | counted |
| 5e7eabd | email-service | Add bulk domain DNS repair and IST export fixes [skip ci] | 2026-09-18 | +857 −22 | counted |
| 24c3c1e | email-service | Point webmail submodule at Thunder Marketing login logo. | 2026-09-18 | +1 −1 | counted |
| f7cd7f3 | email-service | Ship bind uniqueness, manager mailboxes, MFA toggle, and admin portal… | 2026-09-17 | +3,834 −246 | counted |
| 755d445 | email-service | docs: add cursor agent work history profile | 2026-09-16 | +336 −0 | counted |
| 5fc5604 | email-service | Add domain manager mailbox delegation | 2026-09-16 | +1,532 −1 | counted |
| 5bf5fda | email-service | test: satisfy homepage deploy lint | 2026-09-15 | +29 −9 | counted |
| a620fcc | email-service | feat(homepage): add single-EC2 homepage deploy | 2026-09-15 | +8,110 −29 | counted |
| ff7f3ea | email-service | Merge pull request #78 from 1Touch-dev/fix/ghcr-token-stdin-before-do… | 2026-09-15 | +93 −2 | counted |
| a5878ae | email-service | fix(deploy): slurp GHCR token from stdin before any docker exec | 2026-09-15 | +93 −2 | counted |
| 43f3be1 | email-service | Merge pull request #77 from 1Touch-dev/fix/admin-symlink-and-webmail-… | 2026-09-15 | +517 −6 | counted |
| bd0934b | email-service | fix(deploy): chmod extracted payloads on redeploy, not only extract | 2026-09-15 | +127 −1 | counted |
| 9dc40c5 | email-service | fix(deploy): relative admin symlink, world-readable extract, webmail … | 2026-09-15 | +391 −6 | counted |
| 54c6893 | email-service | fix(deploy): validate-pointer must accept legacy 2-key images on alre… | 2026-09-15 | +435 −2 | counted |
| 88e5c76 | email-service | fix(deploy): align postgres init and fixtures with named roles | 2026-09-14 | +89 −31 | counted |
| a23bd1f | email-service | fix(deploy): enforce final runtime identities | 2026-09-14 | +242 −16 | counted |
| f1e9b5f | email-service | fix(deploy): finalize postgres safety remediation | 2026-09-14 | +733 −150 | counted |
| aa97f0c | email-service | fix(ci): run dispatch guard on self-hosted runner | 2026-09-14 | +5 −1 | counted |
| 6bc2606 | email-service | Merge remote-tracking branch 'origin/fix/postgres-deployment-safety' … | 2026-09-14 | +10 −2 | counted |
| aee53f9 | email-service | Merge remote-tracking branch 'origin/fix/postgres-deployment-safety' … | 2026-09-14 | +25 −8 | counted |
| 1865133 | email-service | fix(deploy): complete release safety integration | 2026-09-14 | +1,178 −179 | counted |
| c94f9bb | email-service | fix(deploy): close backup and rollback safety gaps | 2026-09-14 | +695 −32 | counted |
| 83574c2 | email-service | fix(tests): match preview runtime env validation | 2026-09-14 | +2 −2 | counted |
| 397d859 | email-service | Merge origin/main into fix/postgres-deployment-safety | 2026-09-14 | +95 −27 | counted |
| c2cb0cd | email-service | fix(deploy): harden postgres deployment safety | 2026-09-14 | +1,311 −30 | counted |
| 7e19044 | email-service | fix(backup): tolerate postgres role replay | 2026-09-12 | +187 −1 | counted |
| 057f302 | email-service | Fix RDS planner blockers | 2026-09-12 | +109 −19 | counted |
| 580b43d | email-service | Fix deploy bootstrap and drift gates | 2026-09-12 | +511 −58 | counted |
| d871b7f | email-service | fix(cicd): emit postgres safety contract | 2026-09-12 | +163 −8 | counted |
| 312dc4c | email-service | Add RDS staging artifacts | 2026-09-12 | +1,539 −0 | counted |
| ba8fbad | email-service | test: fix deploy validation harness | 2026-09-12 | +78 −15 | counted |
| 7c42350 | email-service | docs: align ec2 deploy contract | 2026-09-12 | +163 −60 | counted |
| a7cf5d1 | email-service | fix: tighten deployer env authority | 2026-09-12 | +30 −3 | counted |
| 7969af3 | email-service | fix: harden deployer promotion and rollback | 2026-09-12 | +154 −59 | counted |
| 1846fbc | email-service | test: extend deploy helper coverage | 2026-09-12 | +329 −8 | counted |
| e1bcca0 | email-service | test: add deploy static contract checks | 2026-09-12 | +556 −0 | counted |
| 8849f9d | email-service | fix: enforce LF for launcher | 2026-09-12 | +1 −0 | counted |
| 392814b | email-service | ci: align deploy manifest contract | 2026-09-12 | +93 −75 | counted |
| 80ac349 | email-service | ci: gate production deploy manually | 2026-09-12 | +329 −15 | counted |
| fbbd099 | email-service | feat: add manifest-driven deploy control | 2026-09-12 | +1,995 −134 | counted |
| 608a217 | email-service | reject placeholder deploy secrets | 2026-09-12 | +104 −2 | counted |
| 4b4fec9 | email-service | harden single-ec2 compose contract | 2026-09-12 | +415 −70 | counted |
| 1952d89 | email-service | fix(tests): satisfy local lint gate | 2026-09-12 | +42 −18 | counted |
| 88c8a85 | email-service | Merge pull request #68 from 1Touch-dev/fix/deploy-ssh-key-validation | 2026-09-11 | +12 −2 | counted |
| f735415 | email-service | fix(cicd): validate deploy ssh key format | 2026-09-11 | +12 −2 | counted |
| 649494b | email-service | Merge pull request #67 from 1Touch-dev/fix/ghcr-image-owner | 2026-09-11 | +12 −10 | counted |
| 02dc5f8 | email-service | fix(cicd): normalize deploy image registry | 2026-09-11 | +2 −0 | counted |
| baa5fd5 | email-service | fix(cicd): correct ghcr image owner | 2026-09-11 | +10 −10 | counted |
| 556d78e | HyerPathEnrichment | Merge remote-tracking branch 'origin/main' into fix/multilogin-docker… | 2026-09-10 | +841 −23 | counted |
| 1f52b81 | HyerPathEnrichment | Polish frontend UI migration and fix integration harness | 2026-09-10 | +6,781 −2,661 | counted |
| 29c1fbb | email-service | Merge pull request #66 from 1Touch-dev/chore/single-ec2-cicd | 2026-09-10 | +1,223 −116 | counted |
| 5623a1e | email-service | fix: version deploy env state | 2026-09-10 | +196 −68 | counted |
| 911818d | email-service | chore(cicd): wire single-ec2 preview and prod deploy | 2026-09-10 | +886 −115 | counted |
| 3ac2cf1 | email-service | fix(admin-portal): drop trailing slash export | 2026-09-10 | +0 −1 | counted |
| 12ccc83 | email-service | chore(admin-portal): package preview and prod exports | 2026-09-10 | +54 −1 | counted |
| 2269193 | email-service | chore: align webmail deploy env contract | 2026-09-10 | +30 −9 | counted |
| 300427d | email-service | chore: freeze stack origin contract | 2026-09-10 | +56 −2 | counted |
| dc681f5 | email-service | chore: freeze single-ec2 deploy contract | 2026-09-10 | +126 −45 | counted |
| bf6e220 | email-service | Merge pull request #62 from 1Touch-dev/clarify-gap01-contract-truth | 2026-09-09 | +4,321 −544 | counted |
| 21a6e4f | email-service | Merge remote-tracking branch 'origin/main' into HEAD | 2026-09-09 | +5,314 −277 | counted |
| b9cd073 | email-service | test: fix connect rerun expectation | 2026-09-09 | +1 −1 | counted |
| 1a20a32 | email-service | test: fix CI regressions | 2026-09-09 | +114 −38 | counted |
| 3f8310a | email-service | test: drop unused seed import | 2026-09-09 | +0 −1 | counted |
| 717a9be | email-service | test: fix seed audit cleanup | 2026-09-09 | +6 −6 | counted |
| 8185bb2 | email-service | test: fix platform db probe masking | 2026-09-09 | +29 −2 | counted |
| a28064f | email-service | feat: package day9 candidate integration | 2026-09-09 | +4,218 −569 | counted |
| 602e0bb | email-service | docs: clarify GAP-01 repo truth | 2026-09-09 | +21 −2 | counted |
| 74025a5 | email-service | Merge pull request #60 from 1Touch-dev/godaddy-pat-hotfix | 2026-09-09 | +87 −58 | counted |
| ee93f8a | email-service | test: lock godaddy pat contract truthfulness | 2026-09-09 | +47 −29 | counted |
| 039f0ef | email-service | fix: freeze godaddy PAT auth contract | 2026-09-09 | +18 −26 | counted |
| 8c8316d | email-service | test: align godaddy runbook truth checks | 2026-09-09 | +15 −1 | counted |
| 412e76b | email-service | docs: correct godaddy PAT auth truth | 2026-09-09 | +32 −27 | 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.