Why this matters
Pensero connects work from repositories, ticketing systems, and AI tools to each person's profile using third-party usernames. If a mapping is missing or incorrect, or if a repository isn't being tracked correctly, that person's Delivery, Cycle Time, and AI Impact data may look incomplete or wrong, even if their actual work is fine.
This article walks through, in order, the checks to run when a team member's numbers look off: start broad (Data Health), then repositories, then individual user mapping, then AI-specific mapping.
Who this is for
This article covers everyone who may need to diagnose this:
Managers/Directors with admin access and Managers/Directors without admin access: you have access to the same tools, just with different permissions, but both can run the full diagnosis
Individual engineers: if you want to validate your own data, for example, confirming your GitHub, ticketing, or AI tool mapping is correct, you can follow this same diagnosis to make sure Pensero has the full picture of your work. You can run Step 2 yourself: Integrations → Repositories shows the repositories where your work is being counted.
How to know if you have admin access
You can quickly check this without clicking anything. Look at the sidebar near your profile picture in the bottom left of the platform.
If you see Org settings in the list, you have admin access.
If you don't see Org settings, you're a manager without admin access, you can still follow every step in this article, just without any org-level settings.
Diagnosing delivery data issues
Step 1: Check Data Health
Open Data health (left sidebar, heart icon above your profile name). On My reports data (or Org data if you have an executive role) click Show me on the Needs review card to list the people whose work is not being counted. If the person with missing data is you, use the My data tab. Statuses, cards and fixes are explained in the Data health overview.
No issues flagged: Mappings are healthy for your team (or for the whole organization on Org data). Continue to Step 2 to validate that repositories are connected properly.
Issues flagged: Fix them directly from Data health. People show as Just linked for up to 48 hours while the next sync runs; then review by opening the teammate's profile from the Contributors page. If it's still not accurate after that, continue to Step 2
Step 2: Validate repository coverage
Open the Repositories page: in the left sidebar, click Integrations, then switch the toggle at the top of the page from Integrations to Repositories.
This page shows the codebases Pensero is currently tracking. Everyone can open it, regardless of role or admin permissions:
Managers and Directors see the repositories of their reporting line (excluding their own work) and can exclude repositories from tracking.
Individual contributors (and managers with no reports in the selected period) see only the repositories where they personally had qualifying activity. The view is read-only.
A repository only shows up if its contributors are added and linked in Pensero, and it had qualifying activity in the selected period:
At least one merged PR (if using Pull Requests)
A commit to the default branch (
main/master) if committing directlyEither is enough if your team does both.
What you will see: a table with one row per repository:
Column | Healthy | Red flag |
PRs merged | Matches expected activity | 0, but team is active |
All-time PRs | Consistent with history | Much lower than expected |
Last PR merged | Recent | Older than expected |
Status | Connected | Anything else |
Based on what you see, follow the matching sub-step below:
The repository doesn't appear at all → go to Step 3.
You are an individual contributor and a repository you commit to is missing → first check that your git username is linked and verified in Data health → My data (Step 1); an unlinked identity hides all your repositories from this view. If it is verified, continue to Step 3.
The repository appears, but activity looks wrong or incomplete for the team → go to Step 2.1.
The repository and team-level activity look correct, but one specific person is missing with 0 PRs merged → this is a username issue, skip ahead to Step 4
Step 2.1: Repository appears, but activity looks wrong or incomplete
If you can't open the provider card, ask your manager or admin to run this step; you can still confirm the outcome afterwards from Integrations → Repositories.
Open Integrations in the left sidebar. Select the provider (GitHub, GitLab, or Bitbucket) and filter for the repository name and review the columns below. Each one tells you what "healthy" looks like and what to do if something's off.
Column | What to check | If something's wrong |
Workflow | Confirm it's correctly set to PR, trunk-based, or both, matching how your team actually works. | If you're an Admin: go to Integrations, open your Git provider (GitHub, GitLab or Bitbucket), select the repo, and update the Workflow setting. If not: ask your workspace admin. |
PRs | Shows Downloaded / Processed. If both match (e.g. | |
Newest data / Last commit | Confirm these are recent. If the repository is connected, Pensero pulls new code data several times a day, so this should reflect recent activity. | This usually means the sync isn't picking up recent activity. Contact Pensero through the product chat with the repository URL, the selected date range, and an example recent PR or commit that's missing. |
Auto-sync | Confirm it shows Connected. | If you're an Admin: turn it back on. If not: ask your workspace admin to re-enable it. |
Warning | Confirm no warning icon appears. | Hover/click to see the specific error. If unclear, contact Pensero through the product chat with a screenshot and the repository name. |
If it still doesn't appear after 24 hours, contact Pensero through the product chat with the repository's exact name and URL, and screenshots of the repository table, so we can investigate on our end.
Check repository branch configuration
A repository can be connected correctly, with the right Workflow and Auto-sync, but still show low or missing activity if Pensero isn't tracking the branch where work is actually happening.
For repositories without pull requests or merge requests, Pensero treats the repo as trunk-based and tracks commits merged into the configured default branch. For example, if your team works in
devorstaging, but Pensero is trackingmaster, activity won't appear until the work is merged intomaster.
Diagnosis examples
Scenario | PRs | Last fetch / Last commit | Diagnosis | What to do |
Healthy | 60 / 72 | Today at 04:17 / Nov 22, 2026 | Small gap is normal, recent fetch confirms syncing is active. | No action needed. |
Skipped PRs | 0 / 6 | Today at 05:57 / Nov 22 | Fetch is recent, so syncing works, but none of the 6 downloaded PRs were processed. Likely a missing user mapping or workflow issue. | Confirm Workflow is correct. If it is, check that PR authors are mapped to Pensero users (see Step 4). |
No activity yet | 0 / 0 | Today at 06:07 / Nov 12, | Fetch is recent but there's simply nothing to process for this period. Not necessarily an issue. | Only worth investigating if you expected activity here for this repository. |
Step 3: Why is my repository not showing up in Pensero?
Open Integrations in the left sidebar. Select the provider (GitHub, GitLab, or Bitbucket) and search for the repository name.
Found in the list: the repository is connected, so the problem is with the data it's producing rather than the connection. Go back to Step 2.1: Repository appears, but activity looks wrong or incomplete and work through the Workflow, PRs, Auto-sync and Warning columns.Not found in the list: it was either never shared with Pensero, or shared but not connected correctly. Continue to Step 3.1 below to find out which.
Step 3.1: Ask your Admin to check
Checking this requires Admin access, so you won't be able to complete this step yourself. Send the message below to your workspace admin.
"Can you check in Pensero if [repository name] is connected? Go to Pensero Integrations > [GitHub/GitLab/Bitbucket] and click Search Repository."
If your workspace admin confirms the repository is connected and it still doesn't appear after 24 hours, contact us through Product Chat with the repository's exact name and URL.
Step 3.2: Follow the outcome that applies to you
If the Admin finds the repository and connects it: wait ~24 hours for Pensero to process it, then check Integrations → Repositories again to confirm it appears correctly.
If the Admin confirms the repository is not shared: continue to Step 3.3 for OAuth connections or Step 3.4 for Personal Access Token connections
How can I tell whether my code repository is connected through OAuth or a Personal Access Token?
Go to Integrations in Pensero and select GitHub, GitLab, or Bitbucket. The table at the bottom of the page shows the connection type for each integration.
Step 3.3: Share the repository (OAuth connection)
If your code repository connects via OAuth, adding a missing repository is done directly inside Pensero, not in GitHub, GitLab, or Bitbucket. This requires Admin access.
If you're an Admin:
Go to Integrations > [GitHub/GitLab/Bitbucket] repositories.
Click Add repository.
Select the organization where the missing repository lives.
Choose Select repositories and pick the specific repository, or choose All to connect every repository under that organization.
Click Connect repositories.
If you're not an Admin: ask your workspace admin to do this, using the steps above.
Once connected, give Pensero ~24 hours to process the repository for the first time, then check Integrations → Repositories again to confirm it appears.
If the repository is still unavailable, the account used to connect Pensero through OAuth may not have access to it.
Open [GitHub/GitLab/Bitbucket].
Confirm which person connected the integration through OAuth in Pensero.
Ensure the repository is shared with that person’s account and that they have the required permissions.
Once access is granted, repeat Step 3.3: Share the repository (OAuth connection).
Step 3.4: Share the repository (Personal Access Token connection)
If your instance connects via a Personal Access Token, the repository needs to be explicitly shared with the account that owns the token used for the integration.
First, review the account (ID or email) that needs to be shared with the instance.
Open the repository or its parent group.
Add the token-owning account as a member of the repository/group, with at least Reporter role (Developer or Maintainer recommended).
GitHub: Read
GitLab: Reporter
Bitbucket: Read
Confirm the repository has at least one PR or commit.
If you can't do this yourself, contact your [GitHub/GitLab/Bitbucket] group administrator or whoever manages the token.
Once done, give Pensero ~24 hours to process the repository for the first time. Then check Integrations → Repositories again to confirm it now appears correctly.
If it still doesn't appear after 24 hours, contact Pensero through the product chat with the repository's exact name and URL, and screenshots of the sharing/permission settings, so we can investigate on our end.
Step 4: Check the person's profile mapping
Reach this step if repository coverage looks correct (Steps 1–3), but a specific person's data still looks off, for example, they show 0 PRs merged even though the repository and team-level activity are healthy.
Pensero uses third-party usernames to connect work from repositories, ticketing systems, and AI tools to each person's profile. If a mapping is missing or incorrect, that part of their work won't show up, even if everything else is set up correctly.
Step 4.1: Check the person's profile
Open the person's profile from Contributors and go to Integrations. You'll see a table of connected tools and the username linked to this person for each one.
Each person needs these accounts correctly mapped:
A repository account (GitHub, GitLab, Bitbucket) so their pull requests are attributed to them.
A ticketing account (Jira, YouTrack, Linear) so their tickets and cycle time data are linked.
A document account (Notion, Confluence, Google Drive) so their document contributions are attributed to them.
A messaging/calendar account (Google Calendar, Outlook Calendar) so meetings and availability are correctly reflected.
An AI tool account (GitHub Copilot, Claude Code, Cursor, AI co-author, AWS Bedrock, Cline, OpenAI Codex, Devin, Gemini Code Assist, etc.).
For each connected system, click Check to confirm Pensero can actually process data for this user, not just that a username is filled in.
Passes: Integration is working. No action needed.
If you're still missing a specific PR even after validating the repository (Steps 1–3) and confirming the username is correctly mapped, contact Pensero through the product chat with the PR URL, the person's name, and the repository name, so we can investigate on our end.
Fails: You'll see the reason, e.g. "User not found in GitHub organization members" or "No PRs or reviews found for this user." Continue below. Go to Step 4.2.
Step 4.2: Fix the mapping
Scenario 1: Username is missing entirely
Action: Go to the person's Integrations tab and add the correct username for that system.
Resolution: Pensero will reprocess historical data for that person. Run Check again to confirm it's now processed. Once it passes, wait ~24 hours for Pensero to reprocess this person's historical data, then come back and review their profile to confirm all the data is now connected correctly.
Scenario 2: Username doesn't match what this person actually uses
Action: Update the username in the Integrations tab to the one they actually use in that tool.
Resolution: Pensero will reprocess historical data for that person. Run Check again to confirm it's now processed. Once it passes, wait ~24 hours for Pensero to reprocess this person's historical data, then come back and review their profile to confirm all the data is now connected correctly.
Scenario 3: Missing attribution from a second username
A common case: this person already has one username mapped and showing activity, but they also work under a second username in the same tool, for example, a personal GitHub account alongside their organization account, and that second one isn't linked yet. Since it's not mapped, that work isn't being attributed to them.
Pensero supports linking multiple usernames to the same integration for one person, so this doesn't require picking one over the other.
Action: Add the missing username as an additional mapping for that integration in the Integrations tab, rather than replacing the existing one.
Resolution: Run Check again to confirm it's now processed. Once it passes, wait ~24 hours for Pensero to reprocess this person's historical data, then come back and review their profile to confirm all the data is now connected correctly.
Scenario 4: Username is valid, but no activity is found
Sometimes the org membership check passes, meaning the username itself exists and is correctly recognized, but the PR/review activity check fails with "No PRs or reviews found for this user." This usually means the person's real work is happening under a different username that isn't linked yet, most commonly a second personal or legacy account.
Action: Confirm directly with the person which username(s) they've actually been committing under. If they have a second account, add it as an additional username for that integration, don't replace the existing one, since Pensero supports multiple usernames per integration for the same person.
Resolution: Run Check again to confirm it now passes. Once it passes, wait ~24 hours for Pensero to reprocess this person's historical data, then come back and review their profile to confirm the activity now shows up.
If it still fails after this, contact Pensero through the Product Chat with: the person's name, the affected integration, and the healthcheck ID shown in the logs.
Scenario 5: Username not found in the organization
When both checks fail together, "User '[username]' not found in GitHub organization members" and "No PRs or reviews found for this user", it usually means the username itself is incorrect or outdated, it doesn't exist in the connected GitHub organization at all, so naturally no activity can be found either.
This is different from Scenario 4: there, the username was valid but just missing activity. Here, the username itself isn't recognized as a member of the org.
Action: Confirm with the person their current, correct username in that tool. Common causes: a typo when the mapping was first set up, the username was changed since, or they were removed/re-added to the organization under a different handle. Update the Integrations tab with the correct username.
Resolution: Run Check again to confirm both checks now pass. Once they pass, wait ~24 hours for Pensero to reprocess this person's historical data, then come back and review their profile to confirm the activity now shows up.
If it still fails after correcting the username, contact Pensero through the Product Chat with: the person's name, the affected integration, the username used, and the healthcheck ID shown in the logs.











