The Velocity Dashboard provides a one-stop-shop into your software development lifecycle helping you and your teams understand any bottlenecks in your process. Get a clear view of PR cycle time to identify bottlenecks and spot inefficiencies, compare pull request size against commit activity, and visualize your team’s success rate across the entire review process — all in one place.
You can apply filters across for team, owner, repository, user label, and more to narrow down the set of data you are reviewing. To select filters, click Filter in the upper right corner of a graph.
For each metric, click on the card to drill down into the data for further analysis. After clicking into the card, you can segment the data and drill down further to view a list of data points:
Cycle time measures the complete journey of a pull request from first commit to merge into your main branch. Understanding this end-to-end process is crucial for identifying bottlenecks and optimizing your development workflow.Note: Cycle Time and Time to Open metrics are not supported for Azure DevOps or Bitbucket.The four stages of cycle time:
Time to open: Development phase: First commit to PR creation
Best practice: There is not an explicit industry benchmark for this metric, but note that increasing the time to open depends on an efficient triage of work; focus on minimizing idle time before work starts.
Time to approve: Review process: First review to final approval
Best practice: It is recommended to keep review time under 24 hours to maintain velocity and avoid a backlog of PRs.
Time to first review: Waiting period: PR opened to initial reviewer engagement
Best practice: It is recommended to target first review within 24 hours to ensure prompt feedback and smooth throughout.
Time to merge: Merge process: Approval to successful merge
Best practice: There is not an explicit benchmark for this metric, but note that reducing this time to under an hour boosts code velocity. Using a tool that enforces automated merges can cut down delays.
Most teams discover that one of these four areas makes up 50-60% of their overall cycle time, providing a clear picture of a focus area to improve overall velocity.
Choose from multiple statistical views (average, sum, max, min, P95, median) to analyze your data. The default average view provides a balanced perspective, while P95 highlights outliers that might indicate systemic issues.
Pull request size directly impacts development velocity. Larger PRs consistently correlate with longer cycle times across every stage of the development process - from initial review to final merge. This visualization helps you understand how PR size affects efficiency throughout your development lifecycle.Compare your pull request size to:
Smaller PRs move faster. They’re easier to review, less likely to introduce conflicts, and require fewer revision cycles. Teams that maintain smaller, focused PRs typically see 2-3x faster cycle times and higher code quality.
PR success rate measures the percentage of pull requests that successfully make it from creation to merge, providing critical insight into development efficiency and process waste. A high success rate indicates focused development work, while a low rate suggests potential issues with planning, scope creep, or unclear requirements.
A sudden drop in success rate often correlates with rushed feature development, unclear requirements, or experimental work that should happen in separate branches. High-performing teams maintain consistent success rates even during periods of increased PR volume.
Switch between viewing open, closed or merged PRs against success rate.
Last modified on September 9, 2026
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"Cortex","colors":{"primary":"#653EE8","light":"#9378EF","dark":"#5132BA"},"logo":{"light":"https://mintcdn.com/cortex-290c0c42/JcmXgfdiEzZzqS2M/logo/cortex-light.svg?fit=max\u0026auto=format\u0026n=JcmXgfdiEzZzqS2M\u0026q=85\u0026s=3d32dd91336a0de9463a57e04f9b8bb3","dark":"https://mintcdn.com/cortex-290c0c42/JcmXgfdiEzZzqS2M/logo/cortex-dark.svg?fit=max\u0026auto=format\u0026n=JcmXgfdiEzZzqS2M\u0026q=85\u0026s=e664b364295c3625385d56e02110b4a7"},"favicon":{"light":"https://mintcdn.com/cortex-290c0c42/09VjkT_e7zMKfZOT/images/favicon.png?fit=max\u0026auto=format\u0026n=09VjkT_e7zMKfZOT\u0026q=85\u0026s=1689c84dea2d7ff7c17603f1d27163ae","dark":"https://mintcdn.com/cortex-290c0c42/09VjkT_e7zMKfZOT/images/favicon.png?fit=max\u0026auto=format\u0026n=09VjkT_e7zMKfZOT\u0026q=85\u0026s=1689c84dea2d7ff7c17603f1d27163ae"},"api":{"playground":{"display":"interactive"},"examples":{"prefill":true}},"appearance":{"default":"system"},"background":{"decoration":"gradient"},"navbar":{"links":[{"icon":"/images/us-flag.png","href":"https://app.getcortexapp.com/","label":"US"},{"icon":"/images/eu-flag.png","href":"https://app.eu.cortex.io/","label":"EU"}],"primary":{"type":"button","label":"Get a Demo","href":"https://www.cortex.io/demo"}},"footer":{"socials":{"github":"https://github.com/cortexapps","linkedin":"https://www.linkedin.com/company/cortexapp","youtube":"https://www.youtube.com/@cortex611","x":"https://twitter.com/GetCortexApp"},"links":[{"header":"Cortex","items":[{"label":"Cortex website","href":"https://cortex.io"},{"label":"Product log in (US)","href":"https://app.getcortexapp.com/login"},{"label":"Product log in (EU)","href":"https://app.eu.cortex.io/login"},{"label":"Privacy Policy","href":"https://www.cortex.io/legal/privacy-policy"},{"label":"Security Policy","href":"https://www.cortex.io/legal/security-policy"},{"label":"Terms of Service","href":"https://www.cortex.io/legal/terms-of-service"},{"label":"Status Page","href":"https://status.cortex.io/"}]},{"header":"Resources","items":[{"label":"Cortex Academy","href":"https://academy.cortex.io/"},{"label":"Blog","href":"https://www.cortex.io/blog"},{"label":"Engineering Blog","href":"https://builders.cortex.io/"},{"label":"Braintrust","href":"https://www.braintrust.cortex.io/"},{"label":"Contact Support","href":"https://support.cortex.io/"}]}]},"fonts":{"heading":{"family":"Inter"},"body":{"family":"Inter"}},"icons":{"library":"fontawesome"},"styling":{"eyebrows":"breadcrumbs","latex":false},"contextual":{"options":["copy","view","chatgpt","claude","download-pdf"],"display":"header"},"interaction":{"drilldown":true},"metadata":{"timestamp":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"cortex-290c0c42","hasAudioNarration":false,"actualSubdomain":"cortex-290c0c42","customDomains":["docs.cortex.io"],"gitSource":{"type":"github","owner":"cortexapps","repo":"brainpower","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae383b93883977d5853e3c2","collectionId":"dd922e4e-ad1e-4601-9f2a-e6a8b4d4db61","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae383b93883977d5853e3c2"},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae383b93883977d5853e3c2","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"API Reference","count":557},{"language":"default","tag":"REST API operations","count":556},{"language":"default","tag":"Integrations","count":414},{"language":"default","tag":"Product Docs","count":176},{"language":"default","tag":"Connect data","count":96},{"language":"default","tag":"Cookbooks","count":39},{"language":"default","tag":"Product areas","count":38},{"language":"default","tag":"Workflows","count":38},{"language":"default","tag":"Scorecards","count":27},{"language":"default","tag":"Entities overview","count":27}],"searchSettings":{"showContentSnippets":true}},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"privacy":{"consentBanner":{"enabled":true}},"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":":where(img[src^=\"/images/\"]){display:block;margin-left:auto;margin-right:auto;max-width:100%;height:auto}#navbar li.navbar-link>a{background-color:rgb(3 7 18/.06)}#navbar li.navbar-link>a:hover{background-color:rgb(3 7 18/.12)}html.dark #navbar li.navbar-link>a{background-color:rgb(255 255 255/.07)}html.dark #navbar li.navbar-link>a:hover{background-color:rgb(255 255 255/.14)}#content-area .mdx-content{--tw-prose-links:#7458DB;--tw-prose-invert-links:#C0AFFF}html.dark #content-area .mdx-content :where(a):not(:where([class~=\"not-prose\"], [class~=\"not-prose\"] *)){color:#c0afff}.product-tab{background-color:#f3f4f6!important;color:#000!important}.product-tab[data-active=true]{background-color:#e6e7e9!important}html.dark .product-tab{background-color:rgb(255 255 255/.1)!important;color:#fff!important}html.dark .product-tab[data-active=true]{background-color:#653ee8!important}.product-item[data-active=true]{background-color:#e6e7e9}html.dark .product-item[data-active=true]{background-color:rgb(255 255 255/.05)}.product-item-arrow{opacity:0}.product-item-arrow svg{width:14px!important;height:14px!important;max-width:14px;max-height:14px;flex-shrink:0}.product-item-arrow[data-active=true]{opacity:1}#kapa-search-ask-row{display:flex;align-items:center;gap:.5rem;margin:0 .375rem .375rem;padding:.625rem .75rem;border-top:1px solid rgb(229 231 235);background:0 0;font-size:.875rem;font-weight:500;color:rgb(3 7 18);text-align:left;cursor:pointer}#kapa-search-ask-row[hidden]{display:none}#kapa-search-ask-row:hover{background:rgb(0 0 0/.03)}#kapa-search-ask-row svg{flex-shrink:0}#kapa-search-ask-row .kapa-search-ask-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#kapa-search-ask-row kbd{padding:0 .3rem;border:1px solid rgb(229 231 235);border-radius:.25rem;font-family:inherit;font-size:.75rem;color:rgb(107 114 128)}.dark #kapa-search-ask-row{border-top-color:rgb(255 255 255/.1);color:#fff}.dark #kapa-search-ask-row:hover{background:rgb(255 255 255/.05)}.dark #kapa-search-ask-row svg,html.dark #kapa-ask-button svg{color:rgb(var(--primary-light))}.dark #kapa-search-ask-row kbd{border-color:rgb(255 255 255/.1);color:rgb(156 163 175)}#assistant-entry,#assistant-entry-mobile{display:none!important}#kapa-ask-button{display:none;flex:none;align-items:center;gap:.375rem;height:2.25rem;margin-left:.5rem;padding:0 .875rem 0 .75rem;border-radius:9999px;background:rgb(3 7 18/.03);font-size:.875rem;font-weight:500;color:rgb(55 65 81);cursor:pointer}@media (min-width:1024px){#kapa-ask-button{display:flex}}#kapa-ask-button:hover{background:rgb(3 7 18/.1)}#kapa-ask-button svg,#kapa-search-ask-row svg{width:1rem;height:1rem;color:rgb(var(--primary))}html.dark #kapa-ask-button{background:rgb(255 255 255/.03);color:rgb(209 213 219)}html.dark #kapa-ask-button:hover{background:rgb(255 255 255/.1)}"},{"filePath":"status-tags.css","content":".nav-tag-pill[data-status]{background-color:var(--status-tag-color)!important;border-color:var(--status-tag-color)!important;color:#fff!important}.nav-tag-pill[data-status] .nav-tag-pill-text{color:#fff!important}.nav-tag-pill[data-status=research-preview]{--status-tag-color:#7B2D6B}.nav-tag-pill[data-status=public-beta]{--status-tag-color:#1D4ED8}.nav-tag-pill[data-status=private-beta]{--status-tag-color:#8C1D3A}"}],"page":{"pagePath":"improve/eng-intelligence/velocity-dashboard","slug":"/improve/eng-intelligence/velocity-dashboard","pageMetadata":{"title":"Velocity Dashboard","description":null,"href":"/improve/eng-intelligence/velocity-dashboard"},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Heading,OptimizedImage}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`The Velocity Dashboard provides a one-stop-shop into your software development lifecycle helping you and your teams understand any bottlenecks in your process. Get a clear view of PR cycle time to identify bottlenecks and spot inefficiencies, compare pull request size against commit activity, and visualize your team’s success rate across the entire review process — all in one place.`}),`\n`,_jsx(OptimizedImage,{src:`https://mintlify.s3.us-west-1.amazonaws.com/cortex-290c0c42/images/Screenshot%202025-07-23%20at%202.56.04%E2%80%AFPM.png`,alt:``}),`\n`,_jsx(Heading,{level:`2`,id:`using-the-velocity-dashboard`,children:`Using the Velocity Dashboard`}),`\n`,_jsxs(_components.p,{children:[`To view the dashboard, click `,_jsx(_components.strong,{children:`Eng Intelligence > Velocity Dashboard`}),` in the main nav.`]}),`\n`,_jsx(Heading,{level:`3`,id:`adjust-the-time-range`,children:`Adjust the time range`}),`\n`,_jsxs(_components.p,{children:[`By default, the dashboard displays data from the last 7 days. To change the date range, click `,_jsx(_components.strong,{children:`Last 7 days`}),` and select a new date.`]}),`\n`,_jsx(Heading,{level:`3`,id:`apply-a-filter-option`,children:`Apply a filter option`}),`\n`,_jsxs(_components.p,{children:[`You can apply filters across for team, owner, repository, user label, and more to narrow down the set of data you are reviewing. To select filters, click `,_jsx(_components.strong,{children:`Filter`}),` in the upper right corner of a graph.`]}),`\n`,_jsx(Heading,{level:`3`,id:`drill-down`,children:`Drill down`}),`\n`,_jsx(_components.p,{children:`For each metric, click on the card to drill down into the data for further analysis. After clicking into the card, you can segment the data and drill down further to view a list of data points:`}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/cortex-290c0c42/kiI3HgqRloEyGGgk/images/drill-down-diagram.jpg?fit=max\u0026auto=format\u0026n=kiI3HgqRloEyGGgk\u0026q=85\u0026s=633b7174415dff574644ac6ee483e687`,alt:`Click a metric card to see a visual and data that can be segmented. Drill further into that data to get a list of data points.`,\"data-og-width\":`1451`,width:`1451`,\"data-og-height\":`268`,height:`268`,\"data-path\":`images/drill-down-diagram.jpg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/cortex-290c0c42/kiI3HgqRloEyGGgk/images/drill-down-diagram.jpg?w=280\u0026fit=max\u0026auto=format\u0026n=kiI3HgqRloEyGGgk\u0026q=85\u0026s=eafd34c8390c14e851c86cf314e17710 280w, https://mintcdn.com/cortex-290c0c42/kiI3HgqRloEyGGgk/images/drill-down-diagram.jpg?w=560\u0026fit=max\u0026auto=format\u0026n=kiI3HgqRloEyGGgk\u0026q=85\u0026s=3f6ee1fe6bc77799e5664c8bb8b05f56 560w, https://mintcdn.com/cortex-290c0c42/kiI3HgqRloEyGGgk/images/drill-down-diagram.jpg?w=840\u0026fit=max\u0026auto=format\u0026n=kiI3HgqRloEyGGgk\u0026q=85\u0026s=7c8944e316af360026dd9fa9ab12d97c 840w, https://mintcdn.com/cortex-290c0c42/kiI3HgqRloEyGGgk/images/drill-down-diagram.jpg?w=1100\u0026fit=max\u0026auto=format\u0026n=kiI3HgqRloEyGGgk\u0026q=85\u0026s=f948d8eeb286135779a40e15dacea6de 1100w, https://mintcdn.com/cortex-290c0c42/kiI3HgqRloEyGGgk/images/drill-down-diagram.jpg?w=1650\u0026fit=max\u0026auto=format\u0026n=kiI3HgqRloEyGGgk\u0026q=85\u0026s=af69ce22cc4b40fc28ecb6d36367eabe 1650w, https://mintcdn.com/cortex-290c0c42/kiI3HgqRloEyGGgk/images/drill-down-diagram.jpg?w=2500\u0026fit=max\u0026auto=format\u0026n=kiI3HgqRloEyGGgk\u0026q=85\u0026s=4d9d179ca0f57afd0be9ccad29c7d152 2500w`}),`\n`,_jsx(Heading,{level:`2`,id:`cycle-time-breakdown`,children:`Cycle time breakdown`}),`\n`,_jsx(_components.p,{children:`Cycle time measures the complete journey of a pull request from first commit to merge into your main branch. Understanding this end-to-end process is crucial for identifying bottlenecks and optimizing your development workflow.`}),`\n`,_jsxs(_components.p,{children:[`Note: Cycle Time and Time to Open metrics are not supported for `,_jsx(_components.a,{href:`/ingesting-data-into-cortex/integrations/azuredevops`,children:`Azure DevOps`}),` or `,_jsx(_components.a,{href:`/ingesting-data-into-cortex/integrations/bitbucket`,children:`Bitbucket`}),`.`]}),`\n`,_jsx(_components.p,{children:`The four stages of cycle time:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Time to open:`}),` Development phase: First commit to PR creation`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Best practice`}),`: There is not an explicit industry benchmark for this metric, but note that increasing the time to open depends on an efficient triage of work; focus on minimizing idle time before work starts.`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Time to approve:`}),` Review process: First review to final approval`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Best practice`}),`: It is recommended to keep review time under 24 hours to maintain velocity and avoid a backlog of PRs.`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Time to first review:`}),` Waiting period: PR opened to initial reviewer engagement`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Best practice`}),`: It is recommended to target first review within 24 hours to ensure prompt feedback and smooth throughout.`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Time to merge:`}),` Merge process: Approval to successful merge`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Best practice`}),`: There is not an explicit benchmark for this metric, but note that reducing this time to under an hour boosts code velocity. Using a tool that enforces automated merges can cut down delays.`]}),`\n`]}),`\n`]}),`\n`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintlify.s3.us-west-1.amazonaws.com/cortex-290c0c42/images/Screenshot%202025-07-23%20at%203.05.09%E2%80%AFPM.png`,alt:``}),`\n`,_jsx(Heading,{level:`3`,id:`key-insight`,children:`Key insight`}),`\n`,_jsx(_components.p,{children:`Most teams discover that one of these four areas makes up 50-60% of their overall cycle time, providing a clear picture of a focus area to improve overall velocity.`}),`\n`,_jsx(Heading,{level:`3`,id:`cycle-time-best-practices`,children:`Cycle time best practices`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Set SLA targets for each stage (e.g., first review within 1 business day)`}),`\n`,_jsx(_components.li,{children:`Implement automated code review assignments to eliminate reviewer uncertainty`}),`\n`,_jsx(_components.li,{children:`Use draft PRs for work-in-progress to separate development time from review time`}),`\n`,_jsx(_components.li,{children:`Track P95 metrics to identify and address outlier PRs that skew team performance`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`visualization-options`,children:`Visualization options`}),`\n`,_jsx(_components.p,{children:`Choose from multiple statistical views (average, sum, max, min, P95, median) to analyze your data. The default average view provides a balanced perspective, while P95 highlights outliers that might indicate systemic issues.`}),`\n`,_jsx(Heading,{level:`2`,id:`cycle-time-x-pr-size`,children:`Cycle time x PR size`}),`\n`,_jsx(_components.p,{children:`Pull request size directly impacts development velocity. Larger PRs consistently correlate with longer cycle times across every stage of the development process - from initial review to final merge. This visualization helps you understand how PR size affects efficiency throughout your development lifecycle.`}),`\n`,_jsx(_components.p,{children:`Compare your pull request size to:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Time to open`}),`\n`,_jsx(_components.li,{children:`Time to first review`}),`\n`,_jsx(_components.li,{children:`Time to approve`}),`\n`,_jsx(_components.li,{children:`Time to merge`}),`\n`,_jsx(_components.li,{children:`Overall cycle time`}),`\n`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintlify.s3.us-west-1.amazonaws.com/cortex-290c0c42/images/Screenshot%202025-07-23%20at%203.24.17%E2%80%AFPM.png`,alt:``}),`\n`,_jsx(Heading,{level:`3`,id:`key-insight-2`,children:`Key insight`}),`\n`,_jsx(_components.p,{children:`Smaller PRs move faster. They’re easier to review, less likely to introduce conflicts, and require fewer revision cycles. Teams that maintain smaller, focused PRs typically see 2-3x faster cycle times and higher code quality.`}),`\n`,_jsx(Heading,{level:`3`,id:`pr-size-best-practices`,children:`PR size best practices`}),`\n`,_jsx(_components.p,{children:`Aim for PRs under 400 lines of code. Break larger features into smaller, logical chunks that can be reviewed and merged independently.`}),`\n`,_jsx(Heading,{level:`3`,id:`visualization-options-2`,children:`Visualization options`}),`\n`,_jsxs(_components.p,{children:[`Outliers are excluded by default. To include them, toggle on the `,_jsx(_components.strong,{children:`Show outliers`}),` option.`]}),`\n`,_jsx(Heading,{level:`2`,id:`pr-success-rate`,children:`PR success rate`}),`\n`,_jsx(_components.p,{children:`PR success rate measures the percentage of pull requests that successfully make it from creation to merge, providing critical insight into development efficiency and process waste. A high success rate indicates focused development work, while a low rate suggests potential issues with planning, scope creep, or unclear requirements.`}),`\n`,_jsx(OptimizedImage,{src:`https://mintlify.s3.us-west-1.amazonaws.com/cortex-290c0c42/images/Screenshot%202025-07-23%20at%203.27.14%E2%80%AFPM.png`,alt:``}),`\n`,_jsx(Heading,{level:`3`,id:`key-insights`,children:`Key insights`}),`\n`,_jsx(_components.p,{children:`A sudden drop in success rate often correlates with rushed feature development, unclear requirements, or experimental work that should happen in separate branches. High-performing teams maintain consistent success rates even during periods of increased PR volume.`}),`\n`,_jsx(Heading,{level:`3`,id:`pr-success-best-practices`,children:`PR success best practices`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Target a PR success rate above 80% for optimal efficiency`}),`\n`,_jsx(_components.li,{children:`Review closed (unmerged) PRs weekly to identify patterns and root causes`}),`\n`,_jsx(_components.li,{children:`Implement clearer definition-of-done criteria before starting development`}),`\n`,_jsx(_components.li,{children:`Use draft PRs for experimental work to separate exploration from production-ready code`}),`\n`,_jsx(_components.li,{children:`Track success rate alongside cycle time - both metrics together reveal process health`}),`\n`,_jsx(_components.li,{children:`Consider feature flags for risky changes instead of abandoning PRs`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`visualization-options-3`,children:`Visualization options`}),`\n`,_jsx(_components.p,{children:`Switch between viewing open, closed or merged PRs against success rate.`})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Velocity Dashboard","description":null,"href":"/improve/eng-intelligence/velocity-dashboard"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Using the Velocity Dashboard","slug":"using-the-velocity-dashboard","depth":2,"children":[{"title":"Adjust the time range","slug":"adjust-the-time-range","depth":3,"children":[]},{"title":"Apply a filter option","slug":"apply-a-filter-option","depth":3,"children":[]},{"title":"Drill down","slug":"drill-down","depth":3,"children":[]}]},{"title":"Cycle time breakdown","slug":"cycle-time-breakdown","depth":2,"children":[{"title":"Key insight","slug":"key-insight","depth":3,"children":[]},{"title":"Cycle time best practices","slug":"cycle-time-best-practices","depth":3,"children":[]},{"title":"Visualization options","slug":"visualization-options","depth":3,"children":[]}]},{"title":"Cycle time x PR size","slug":"cycle-time-x-pr-size","depth":2,"children":[{"title":"Key insight","slug":"key-insight-2","depth":3,"children":[]},{"title":"PR size best practices","slug":"pr-size-best-practices","depth":3,"children":[]},{"title":"Visualization options","slug":"visualization-options-2","depth":3,"children":[]}]},{"title":"PR success rate","slug":"pr-success-rate","depth":2,"children":[{"title":"Key insights","slug":"key-insights","depth":3,"children":[]},{"title":"PR success best practices","slug":"pr-success-best-practices","depth":3,"children":[]},{"title":"Visualization options","slug":"visualization-options-3","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/cortex-290c0c42/ed8d91d3153959c2/kapa.js","/_mintlify/custom/cortex-290c0c42/36b87f2caabcf780/status-tags.js"],"subdomain":"cortex-290c0c42","siteName":"Cortex","title":"Velocity Dashboard - Cortex","relatedPagesConfig":{"enabled":true,"limit":3,"mode":"automatic"},"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-29T17:36:40.057Z","gitLastModified":"2026-09-09T13:38:06.000Z","originalFileLocation":"improve/eng-intelligence/velocity-dashboard.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"application-name\" content=\"Cortex\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/cortex-290c0c42/GsIUSGAJ7s7HMHgE/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/cortex-290c0c42/GsIUSGAJ7s7HMHgE/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/cortex-290c0c42/GsIUSGAJ7s7HMHgE/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/cortex-290c0c42/GsIUSGAJ7s7HMHgE/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/cortex-290c0c42/GsIUSGAJ7s7HMHgE/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/cortex-290c0c42/GsIUSGAJ7s7HMHgE/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/cortex-290c0c42/GsIUSGAJ7s7HMHgE/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/cortex-290c0c42/GsIUSGAJ7s7HMHgE/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/cortex-290c0c42/GsIUSGAJ7s7HMHgE/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Velocity Dashboard - Cortex\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Cortex\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.cortex.io/improve/eng-intelligence/velocity-dashboard\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://cortex-290c0c42.mintlify.app/_mintlify/api/og/v2?division=Dashboards\u0026amp;title=Velocity+Dashboard\u0026amp;theme=f362d88979a16e7429bae890\u0026amp;signature=73b73743cce3d185dbb0c4b8bf1b62d5178ab166b08d212d7cd19e2e4e826e57\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Velocity Dashboard - Cortex\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://cortex-290c0c42.mintlify.app/_mintlify/api/og/v2?division=Dashboards\u0026amp;title=Velocity+Dashboard\u0026amp;theme=f362d88979a16e7429bae890\u0026amp;signature=73b73743cce3d185dbb0c4b8bf1b62d5178ab166b08d212d7cd19e2e4e826e57\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/cortex-290c0c42/GsIUSGAJ7s7HMHgE/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Cortex\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#653EE8\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.cortex.io/improve/eng-intelligence/velocity-dashboard\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/improve/eng-intelligence/velocity-dashboard.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.cortex.io/#organization\",\"name\":\"Cortex\",\"url\":\"https://docs.cortex.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/cortex-290c0c42/JcmXgfdiEzZzqS2M/logo/cortex-light.svg?fit=max\u0026auto=format\u0026n=JcmXgfdiEzZzqS2M\u0026q=85\u0026s=3d32dd91336a0de9463a57e04f9b8bb3\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.cortex.io#website\",\"name\":\"Cortex\",\"url\":\"https://docs.cortex.io\",\"publisher\":{\"@id\":\"https://docs.cortex.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.cortex.io/improve/eng-intelligence/velocity-dashboard#webpage\",\"url\":\"https://docs.cortex.io/improve/eng-intelligence/velocity-dashboard\",\"name\":\"Velocity Dashboard\",\"dateModified\":\"2026-09-09T13:38:06.000Z\",\"isPartOf\":{\"@id\":\"https://docs.cortex.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.cortex.io/improve/eng-intelligence/velocity-dashboard#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.cortex.io/improve/eng-intelligence/velocity-dashboard#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Improve\",\"item\":\"https://docs.cortex.io/improve/opex-review/configuring-opex\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Eng Intelligence\",\"item\":\"https://docs.cortex.io/improve/eng-intelligence\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Dashboards\",\"item\":\"https://docs.cortex.io/improve/eng-intelligence/dashboards\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Velocity Dashboard\",\"item\":\"https://docs.cortex.io/improve/eng-intelligence/velocity-dashboard\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.cortex.io/improve/eng-intelligence/velocity-dashboard#article\",\"headline\":\"Velocity Dashboard\",\"name\":\"Velocity Dashboard\",\"url\":\"https://docs.cortex.io/improve/eng-intelligence/velocity-dashboard\",\"mainEntityOfPage\":{\"@id\":\"https://docs.cortex.io/improve/eng-intelligence/velocity-dashboard#webpage\"},\"dateModified\":\"2026-09-09T13:38:06.000Z\",\"publisher\":{\"@id\":\"https://docs.cortex.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.cortex.io#website\"}}]}\u003c/script>","siteName":"Cortex","nav":{"global":null,"tabs":[{"tab":"Product Docs","icon":"books","groups":[{"group":"Cortex","pages":[{"title":"Home","mode":"frame","href":""}]},{"group":"Get Started","pages":[{"group":"Cortex quick start guide","root":{"title":"Cortex quick start guide","href":"/get-started/quickstart"},"pages":[{"title":"Getting started: Logging in to Cortex and configuring your workspace","href":"/get-started/quickstart/getting-started-logging-in-to-cortex-and-configuring-your-workspace"},{"title":"Laying the foundation: Data modeling, integrations, and identity mapping","href":"/get-started/quickstart/laying-the-foundation-data-modeling-integrations-and-identity-mapping"},{"title":"Building on the foundation: Catalogs, Scorecards, Workflows, and Eng Intelligence","href":"/get-started/quickstart/building-on-the-foundation-catalogs-scorecards-workflows-and-eng-intelligence"},{"title":"Going further with Cortex","href":"/get-started/quickstart/going-further-with-cortex"}]},{"group":"AI in Cortex","root":{"title":"AI in Cortex","href":"/get-started/cortex-ai-assistant"},"pages":[{"title":"Cortex AI prompt library","href":"/get-started/cortex-ai-assistant/library"},{"group":"Cortex MCP","root":{"title":"Cortex MCP","href":"/get-started/cortex-ai-assistant/mcp"},"pages":[{"title":"Configuring the Cortex MCP","href":"/get-started/cortex-ai-assistant/mcp/configuring-cortex-mcp"},{"title":"Using the Cortex MCP","href":"/get-started/cortex-ai-assistant/mcp/using-cortex-mcp"},{"title":"Signing in to the remote Cortex MCP with OAuth","tag":"PUBLIC BETA","href":"/get-started/cortex-ai-assistant/mcp/mcp-oauth"}]},{"title":"Cortex AI chat","tag":"RESEARCH PREVIEW","href":"/cortex-ai-chat"}]}]},{"group":"Connect data","pages":[{"title":"Ingesting data into Cortex","href":"/ingesting-data-into-cortex/overview"},{"group":"Entities overview","root":{"title":"Entities overview","href":"/ingesting-data-into-cortex/entities-overview"},"pages":[{"group":"Managing entities","root":{"title":"Managing entities","href":"/ingesting-data-into-cortex/entities-overview/entities"},"pages":[{"group":"Defining entities with YAML","root":{"title":"Defining entities with YAML","href":"/ingesting-data-into-cortex/entities-overview/entities/yaml"},"pages":[{"title":"YAML linter tool","href":"/ingesting-data-into-cortex/entities-overview/entities/yaml/linter"}]},{"group":"Adding entities","root":{"title":"Adding entities","href":"/ingesting-data-into-cortex/entities-overview/entities/adding-entities"},"pages":[{"title":"Adding services","href":"/ingesting-data-into-cortex/entities-overview/entities/adding-entities/add-services"},{"title":"Adding domains","href":"/ingesting-data-into-cortex/entities-overview/entities/adding-entities/domains"},{"group":"Adding teams","root":{"title":"Adding teams","href":"/ingesting-data-into-cortex/entities-overview/entities/adding-entities/teams"},"pages":[{"title":"Viewing teams","href":"/ingesting-data-into-cortex/entities-overview/entities/adding-entities/teams/viewing-teams"},{"title":"Team roles","href":"/ingesting-data-into-cortex/entities-overview/entities/adding-entities/teams/team-roles"},{"title":"Team ownership entity editing","href":"/ingesting-data-into-cortex/entities-overview/entities/adding-entities/teams/team-entity-editing"}]},{"group":"Adding custom entity types","root":{"title":"Adding custom entity types","href":"/ingesting-data-into-cortex/entities-overview/entities/adding-entities/entity-types"},"pages":[{"title":"Creating custom entities","href":"/ingesting-data-into-cortex/entities-overview/entities/adding-entities/entity-types/creating-custom-entities"},{"title":"Managing custom entities","href":"/ingesting-data-into-cortex/entities-overview/entities/adding-entities/entity-types/managing-custom-entities"},{"title":"Managing custom entity types","href":"/ingesting-data-into-cortex/entities-overview/entities/adding-entities/entity-types/managing-custom-entity-types"}]},{"title":"Defining dependencies","href":"/ingesting-data-into-cortex/entities-overview/entities/adding-entities/dependencies"}]},{"title":"Entity details page","href":"/ingesting-data-into-cortex/entities-overview/entities/details"},{"group":"Ownership","root":{"title":"How ownership works","href":"/ingesting-data-into-cortex/entities-overview/entities/ownership"},"pages":[{"title":"Ownership best practices","href":"/ingesting-data-into-cortex/entities-overview/entities/ownership/ownership-best-practices"},{"title":"Assigning owners to entities","href":"/ingesting-data-into-cortex/entities-overview/entities/ownership/assigning-owners-to-entities"},{"title":"Ownership inheritance","href":"/ingesting-data-into-cortex/entities-overview/entities/ownership/ownership-inheritance"},{"title":"Viewing and managing ownership","href":"/ingesting-data-into-cortex/entities-overview/entities/ownership/viewing-and-managing-ownership"},{"title":"Ownership sources reference","href":"/ingesting-data-into-cortex/entities-overview/entities/ownership/ownership-sources"}]},{"group":"Defining relationship types","root":{"title":"Defining relationship types","href":"/ingesting-data-into-cortex/entities-overview/entities/defining-relationship-types"},"pages":[{"title":"Managing relationships","href":"/ingesting-data-into-cortex/entities-overview/entities/defining-relationship-types/managing-relationships"}]},{"title":"Grouping entities","href":"/ingesting-data-into-cortex/entities-overview/entities/groups"},{"title":"Adding external documentation","href":"/ingesting-data-into-cortex/entities-overview/entities/external-docs"},{"title":"Adding deployment data via API","href":"/ingesting-data-into-cortex/entities-overview/entities/deploys"},{"title":"Adding custom data","href":"/ingesting-data-into-cortex/entities-overview/entities/custom-data"},{"title":"Discovered entities","href":"/ingesting-data-into-cortex/entities-overview/entities/discovery-audit"},{"group":"Archiving entities","root":{"title":"Archiving entities","href":"/ingesting-data-into-cortex/entities-overview/entities/archiving-entities"},"pages":[{"title":"Archiving entities automatically","href":"/ingesting-data-into-cortex/entities-overview/entities/archiving-entities/auto-archive"},{"title":"Archiving entities manually","href":"/ingesting-data-into-cortex/entities-overview/entities/archiving-entities/archiving-entities-manually"}]},{"title":"Relationship graph","href":"/ingesting-data-into-cortex/entities-overview/entities/relationship-graph"},{"title":"Using On-call Assistant for incident notifications","href":"/ingesting-data-into-cortex/entities-overview/entities/oncall-assistant"},{"group":"Managing Terraform infra in Cortex","root":{"title":"Managing Terraform infra in Cortex","href":"/ingesting-data-into-cortex/entities-overview/entities/terraform"},"pages":[{"title":"Manage entities using Cortex Terraform Provider","href":"/ingesting-data-into-cortex/entities-overview/entities/terraform/terraform-provider"}]}]}]},{"group":"Catalogs overview","root":{"title":"Catalogs overview","href":"/ingesting-data-into-cortex/catalogs"},"pages":[{"title":"Viewing catalogs","href":"/ingesting-data-into-cortex/catalogs/viewing-catalogs"},{"title":"Managing catalogs","href":"/ingesting-data-into-cortex/catalogs/managing-catalogs"}]},{"group":"Integrations","root":{"title":"Integrations","href":"/ingesting-data-into-cortex/integrations"},"pages":[{"title":"Internally hosted integrations","href":"/ingesting-data-into-cortex/integrations/axon-relay"},{"group":"Apiiro","root":{"title":"Apiiro","href":"/ingesting-data-into-cortex/integrations/apiiro"},"pages":[{"title":"Connecting entities to Apiiro","href":"/ingesting-data-into-cortex/integrations/apiiro/connecting-entities-to-apiiro"},{"title":"Using the integration for Apiiro","href":"/ingesting-data-into-cortex/integrations/apiiro/using-the-integration-for-apiiro"}]},{"title":"ArgoCD","href":"/ingesting-data-into-cortex/integrations/argocd"},{"group":"AWS","root":{"title":"AWS","href":"/ingesting-data-into-cortex/integrations/aws"},"pages":[{"title":"Importing entities from AWS","href":"/ingesting-data-into-cortex/integrations/aws/importing-entities-from-aws"},{"title":"Using the integration for AWS","href":"/ingesting-data-into-cortex/integrations/aws/using-the-integration-for-aws"}]},{"title":"Azure DevOps","href":"/ingesting-data-into-cortex/integrations/azuredevops"},{"title":"Azure Resources","href":"/ingesting-data-into-cortex/integrations/azureresources"},{"title":"BambooHR","href":"/ingesting-data-into-cortex/integrations/bamboohr"},{"title":"Bitbucket","href":"/ingesting-data-into-cortex/integrations/bitbucket"},{"title":"BugSnag","href":"/ingesting-data-into-cortex/integrations/bugsnag"},{"title":"Buildkite","href":"/ingesting-data-into-cortex/integrations/buildkite"},{"title":"Checkmarx","href":"/ingesting-data-into-cortex/integrations/checkmarx"},{"title":"CircleCI","href":"/ingesting-data-into-cortex/integrations/circleci"},{"title":"ClickUp","href":"/ingesting-data-into-cortex/integrations/clickup"},{"title":"Codecov","href":"/ingesting-data-into-cortex/integrations/codecov"},{"title":"Coralogix","href":"/ingesting-data-into-cortex/integrations/coralogix"},{"title":"Custom webhook integrations","href":"/ingesting-data-into-cortex/integrations/webhook"},{"group":"Datadog","root":{"title":"Datadog","href":"/ingesting-data-into-cortex/integrations/datadog"},"pages":[{"title":"Connecting entities to Datadog","href":"/ingesting-data-into-cortex/integrations/datadog/connecting-entities-to-datadog"},{"title":"Using the integration for Datadog","href":"/ingesting-data-into-cortex/integrations/datadog/using-the-integration-for-datadog"}]},{"title":"Dynatrace","href":"/ingesting-data-into-cortex/integrations/dynatrace"},{"title":"Entra ID","href":"/ingesting-data-into-cortex/integrations/entraid"},{"title":"FireHydrant","href":"/ingesting-data-into-cortex/integrations/firehydrant"},{"title":"GitHub","href":"/ingesting-data-into-cortex/integrations/github"},{"title":"GitLab","href":"/ingesting-data-into-cortex/integrations/gitlab"},{"group":"Google Cloud Platform","root":{"title":"Google Cloud Platform","href":"/ingesting-data-into-cortex/integrations/google"},"pages":[{"title":"Connecting entities to Google Cloud Platform","href":"/ingesting-data-into-cortex/integrations/google/connecting-entities-to-google-cloud-platform"},{"title":"Using the integration for Google Cloud Platform","href":"/ingesting-data-into-cortex/integrations/google/using-the-integration-for-google-cloud-platform"}]},{"title":"Grafana","href":"/ingesting-data-into-cortex/integrations/grafana"},{"group":"Harness","root":{"title":"Harness","href":"/ingesting-data-into-cortex/integrations/harness"},"pages":[{"title":"Importing data from Harness","tag":"PRIVATE BETA","href":"/ingesting-data-into-cortex/integrations/harness/importing-data-from-harness"},{"title":"Using the integration for Harness","href":"/ingesting-data-into-cortex/integrations/harness/using-the-integration-for-harness"}]},{"title":"Humanitec","href":"/ingesting-data-into-cortex/integrations/humanitec"},{"group":"incident.io","root":{"title":"incident.io","href":"/ingesting-data-into-cortex/integrations/incidentio"},"pages":[{"title":"Connecting entities to incident.io","href":"/ingesting-data-into-cortex/integrations/incidentio/connecting-entities-to-incident.io"},{"title":"Using the integration for incident.io","href":"/ingesting-data-into-cortex/integrations/incidentio/using-the-integration-for-incident.io"}]},{"title":"Instana","href":"/ingesting-data-into-cortex/integrations/instana"},{"title":"Jenkins","href":"/ingesting-data-into-cortex/integrations/jenkins"},{"title":"Jira","href":"/ingesting-data-into-cortex/integrations/jira"},{"group":"Kubernetes","root":{"title":"Kubernetes","href":"/ingesting-data-into-cortex/integrations/kubernetes"},"pages":[{"title":"Connecting entities to Kubernetes","href":"/ingesting-data-into-cortex/integrations/kubernetes/connecting-entities-to-kubernetes"},{"title":"Using the integration for Kubernetes","href":"/ingesting-data-into-cortex/integrations/kubernetes/using-the-integration-for-kubernetes"}]},{"title":"LaunchDarkly","href":"/ingesting-data-into-cortex/integrations/launchdarkly"},{"title":"Lightstep","href":"/ingesting-data-into-cortex/integrations/lightstep"},{"title":"Mend","href":"/ingesting-data-into-cortex/integrations/mend"},{"title":"Microsoft Teams","href":"/ingesting-data-into-cortex/integrations/microsoftteams"},{"title":"New Relic","href":"/ingesting-data-into-cortex/integrations/newrelic"},{"title":"Okta","href":"/ingesting-data-into-cortex/integrations/okta"},{"title":"Opsgenie","href":"/ingesting-data-into-cortex/integrations/opsgenie"},{"group":"PagerDuty","root":{"title":"PagerDuty","href":"/ingesting-data-into-cortex/integrations/pagerduty"},"pages":[{"title":"Connecting entities to PagerDuty","href":"/ingesting-data-into-cortex/integrations/pagerduty/connecting-entities-to-pagerduty"},{"title":"Using the integration for PagerDuty","href":"/ingesting-data-into-cortex/integrations/pagerduty/using-the-integration-for-pagerduty"}]},{"title":"Prometheus","href":"/ingesting-data-into-cortex/integrations/prometheus"},{"title":"Rollbar","href":"/ingesting-data-into-cortex/integrations/rollbar"},{"group":"Rootly","root":{"title":"Rootly","href":"/ingesting-data-into-cortex/integrations/rootly"},"pages":[{"title":"Connecting entities to Rootly","tag":"PRIVATE BETA","href":"/ingesting-data-into-cortex/integrations/rootly/connecting-entities-to-rootly"},{"title":"Using the integration for Rootly","href":"/ingesting-data-into-cortex/integrations/rootly/using-the-integration-for-rootly"}]},{"title":"Semgrep","href":"/ingesting-data-into-cortex/integrations/semgrep"},{"title":"Sentry","href":"/ingesting-data-into-cortex/integrations/sentry"},{"title":"ServiceNow","href":"/ingesting-data-into-cortex/integrations/servicenow"},{"group":"Slack","root":{"title":"Slack","href":"/ingesting-data-into-cortex/integrations/slack"},"pages":[{"title":"Using the integration for Slack","href":"/ingesting-data-into-cortex/integrations/slack/using-the-integration-for-slack-ai-assistant"},{"title":"Slack integration FAQ and troubleshooting","href":"/ingesting-data-into-cortex/integrations/slack/slack-integration-faq-and-troubleshooting"}]},{"title":"Snyk","href":"/ingesting-data-into-cortex/integrations/snyk"},{"title":"SonarQube","href":"/ingesting-data-into-cortex/integrations/sonarqube"},{"title":"Splunk Observability Cloud (SignalFx)","href":"/ingesting-data-into-cortex/integrations/splunk-observability"},{"title":"Splunk On-Call (VictorOps)","href":"/ingesting-data-into-cortex/integrations/splunk-oncall"},{"title":"Sumo Logic","href":"/ingesting-data-into-cortex/integrations/sumologic"},{"title":"Syntasso Kratix Enterprise (SKE)","href":"/ingesting-data-into-cortex/integrations/syntasso"},{"title":"Veracode","href":"/ingesting-data-into-cortex/integrations/veracode"},{"title":"Wiz","href":"/ingesting-data-into-cortex/integrations/wiz"},{"group":"Workday","root":{"title":"Workday","href":"/ingesting-data-into-cortex/integrations/workday"},"pages":[{"title":"Using the integration for Workday","href":"/ingesting-data-into-cortex/integrations/workday/using-the-integration-for-workday"}]},{"title":"xMatters","href":"/ingesting-data-into-cortex/integrations/xmatters"}]}]},{"group":"Standardize","pages":[{"group":"Scorecards overview","root":{"title":"Scorecards overview","href":"/standardize/scorecards"},"pages":[{"title":"Create a Scorecard","href":"/standardize/scorecards/create"},{"title":"Reviewing and evaluating Scorecards","href":"/standardize/scorecards/evaluate"},{"title":"Scorecard rule exemptions","href":"/standardize/scorecards/rule-exemptions"},{"title":"Scorecard rule filters","href":"/standardize/scorecards/scorecard-filters"},{"title":"Scorecard examples","href":"/standardize/scorecards/scorecard-examples"},{"title":"Scorecards as code","href":"/standardize/scorecards/scorecards-as-code"},{"title":"Scorecard troubleshooting and FAQ","href":"/standardize/scorecards/scorecard-troubleshooting-and-faq"}]},{"group":"Cortex Query Language (CQL)","root":{"title":"Cortex Query Language (CQL)","href":"/standardize/cql"},"pages":[{"title":"Running and saving CQL queries","href":"/standardize/cql/run"},{"title":"Using CQL reports","href":"/standardize/cql/cql-reports"},{"title":"Using JQ in Cortex","href":"/standardize/cql/using-jq"}]}]},{"group":"Improve","pages":[{"group":"OpEx Review","root":{"title":"OpEx Review","tag":"PUBLIC BETA","href":"/improve/opex-review"},"pages":[{"title":"Configuring OpEx Review","tag":"PUBLIC BETA","href":"/improve/opex-review/configuring-opex"},{"title":"Using the OpEx Review report","tag":"PUBLIC BETA","href":"/improve/opex-review/using-opex"},{"title":"Using Cortex AI in OpEx Review","tag":"RESEARCH PREVIEW","href":"/improve/opex-review/using-opex-ai-chat"},{"title":"OpEx Review FAQ","tag":"PUBLIC BETA","href":"/improve/opex-review/opex-faq"}]},{"group":"Eng Intelligence","root":{"title":"Eng Intelligence","hidden":true,"href":"/improve/eng-intelligence"},"pages":[{"group":"Dashboards","root":{"title":"Dashboards","href":"/improve/eng-intelligence/dashboards"},"pages":[{"title":"DORA Dashboard","description":null,"href":"/improve/eng-intelligence/dora-dashboard"},{"title":"Velocity Dashboard","href":"/improve/eng-intelligence/velocity-dashboard"},{"title":"AI impact dashboard for GitHub Copilot","tag":"PUBLIC BETA","description":null,"href":"/improve/eng-intelligence/dashboards/ai-impact"},{"group":"Custom dashboards","root":{"title":"Custom dashboards","href":"/improve/eng-intelligence/dashboards/custom"},"pages":[{"title":"Managing custom dashboards","href":"/improve/eng-intelligence/dashboards/custom/managing-custom-dashboards"}]}]},{"group":"Data Explorer","root":{"title":"Data Explorer","href":"/improve/eng-intelligence/data-explorer"},"pages":[{"title":"Available metrics in Data Explorer","href":"/improve/eng-intelligence/data-explorer/available-metrics-in-data-explorer"},{"title":"Data Explorer reference","href":"/improve/eng-intelligence/data-explorer/data-explorer-reference"}]},{"title":"Custom metrics","href":"/improve/eng-intelligence/custom-metrics"}]},{"group":"Initiatives and Action items","root":{"title":"Initiatives and Action items","href":"/improve/initiatives"},"pages":[{"title":"Creating issues based on Initiatives","href":"/improve/initiatives/issue-config"}]},{"group":"Reports","root":{"title":"Reports","href":"/improve/reports"},"pages":[{"title":"Executive report","href":"/improve/reports/executive-report"},{"title":"All Scorecards report","href":"/improve/reports/all-scorecards"},{"group":"Bird's eye report","root":{"title":"Bird's eye report","href":"/improve/reports/birds-eye"},"pages":[{"title":"Legacy Bird's Eye report","hidden":true,"href":"/improve/reports/birds-eye/legacy-birds-eye-report"}]},{"title":"Progress report","href":"/improve/reports/progress-report"},{"title":"Report card","href":"/improve/reports/report-card"}]}]},{"group":"Streamline","pages":[{"group":"Workflows","root":{"title":"Workflows","href":"/streamline/workflows"},"pages":[{"title":"Creating a Workflow","href":"/streamline/workflows/create"},{"title":"Configuring Workflow settings","href":"/streamline/workflows/configuring-workflow-settings"},{"group":"Adding blocks to a Workflow","root":{"title":"Adding blocks to a Workflow","href":"/streamline/workflows/blocks"},"pages":[{"title":"Using request signing with Workflow blocks","href":"/streamline/workflows/blocks/using-request-signing-with-workflow-blocks"},{"title":"Referencing a Workflow state in a block","href":"/streamline/workflows/blocks/states"},{"title":"Workflow block configuration reference","href":"/streamline/workflows/blocks/block-configuration-reference"}]},{"title":"Running a Workflow","href":"/streamline/workflows/run"},{"title":"Publishing a Workflow","href":"/streamline/workflows/publishing-a-workflow"},{"title":"Viewing Workflows","href":"/streamline/workflows/viewing-workflows"},{"title":"Workflows as code","href":"/streamline/workflows/workflows-as-code"},{"group":"Registering a Scaffolder template","root":{"title":"Registering a Scaffolder template","href":"/streamline/workflows/scaffolder"},"pages":[{"title":"Scaffolder advanced usage","href":"/streamline/workflows/scaffolder/advanced-usage"},{"title":"Convert a GitHub repo to a Cookiecutter template","href":"/streamline/workflows/scaffolder/convert-template"}]}]},{"group":"Plugins","root":{"title":"Plugins","href":"/streamline/plugins"},"pages":[{"title":"Plugin Marketplace","href":"/streamline/plugins/marketplace"},{"group":"Creating a plugin","root":{"title":"Creating a plugin","href":"/streamline/plugins/creating-plugins"},"pages":[{"title":"Creating a plugin proxy","href":"/streamline/plugins/creating-plugins/plugin-proxy"},{"title":"Editing a plugin","href":"/streamline/plugins/creating-plugins/editing-a-plugin"},{"title":"Plugin development reference","href":"/streamline/plugins/creating-plugins/plugin-development-reference"},{"title":"Styling plugins with theme tokens","href":"/styling-plugins-with-theme-tokens"}]},{"title":"Migrating Backstage plugins to Cortex","href":"/streamline/plugins/backstage-migration"},{"title":"Calling internal service endpoints via plugin proxy","href":"/streamline/plugins/calling-internal-service-endpoints-via-plugin-proxy"}]},{"title":"Engineering homepage","href":"/streamline/homepage"}]},{"group":"Configure","pages":[{"group":"Workspace Settings","root":{"title":"Workspace Settings","href":"/configure/settings"},"pages":[{"title":"Customizing your workspace","href":"/configure/settings/workspace-customization"},{"group":"Entity settings","root":{"title":"Entity settings","href":"/configure/settings/entity-settings"},"pages":[{"group":"Data verification","pages":[{"title":"Data verification","href":"/configure/settings/entity-settings/verification"},{"title":"Viewing and verifying data verifications","href":"/configure/settings/entity-settings/viewing-and-verifying-data-verifications"}]}]},{"title":"GitOps settings","href":"/configure/settings/gitops-settings"},{"group":"Notifications","root":{"title":"Notifications","href":"/configure/settings/notifications"},"pages":[{"title":"Notification logs","href":"/configure/settings/notifications/logs"}]},{"title":"Scorecard settings","href":"/configure/settings/scorecard"},{"group":"API keys, secrets, and tokens","root":{"title":"API keys, secrets, and tokens","href":"/configure/settings/api-keys"},"pages":[{"title":"Secrets","href":"/configure/settings/api-keys/secrets"},{"title":"Personal tokens","href":"/configure/settings/api-keys/personal-tokens"}]},{"title":"Audit logs","href":"/configure/settings/audit-logs"},{"title":"Adding an IP allowlist","href":"/configure/settings/ip-allowlist"},{"group":"Managing users and roles","root":{"title":"Managing users and roles","href":"/configure/settings/managing-users"},"pages":[{"group":"Roles and permissions","root":{"title":"Roles and permissions","href":"/configure/settings/managing-users/permissioning"},"pages":[{"title":"Custom roles","href":"/configure/settings/managing-users/permissioning/custom-roles"}]},{"group":"Configuring SSO for Cortex workspace logins","root":{"title":"Configuring SSO for Cortex workspace logins","href":"/configure/settings/managing-users/configuring-sso"},"pages":[{"title":"Entra ID SSO","href":"/configure/settings/managing-users/configuring-sso/entraid"},{"title":"Google SSO","href":"/configure/settings/managing-users/configuring-sso/google"},{"title":"Okta SSO","href":"/configure/settings/managing-users/configuring-sso/okta"},{"title":"Other OIDC SSO providers","href":"/configure/settings/managing-users/configuring-sso/oidc"}]},{"group":"Provisioning users with SCIM","root":{"title":"Provisioning Cortex users with SCIM","href":"/configure/settings/managing-users/scim/provisioning-users-with-scim"},"pages":[{"title":"Configuring SCIM in Cortex","href":"/configure/settings/managing-users/scim/configuring-scim"},{"title":"Configuring Microsoft Entra ID SCIM for Cortex","href":"/configure/settings/managing-users/scim/entraid-scim"},{"title":"Configuring Okta SCIM for Cortex","href":"/configure/settings/managing-users/scim/okta-scim"}]},{"title":"Configuring identity mappings","href":"/configure/settings/managing-users/identity-mapping"},{"title":"Onboarding management","href":"/configure/settings/managing-users/onboarding-mgmt"}]},{"title":"Using search in Cortex","href":"/configure/settings/search"}]},{"group":"GitOps for Cortex overview","root":{"title":"GitOps for Cortex overview","href":"/configure/gitops"},"pages":[{"title":"Using GitOps for Cortex","href":"/configure/gitops/using-gitops-for-cortex"},{"title":"GitOps logs","href":"/configure/gitops/gitops-logs"}]},{"title":"Cortex Command Line Interface","href":"/configure/cortex-command-line-interface"}]},{"group":"Resources","pages":[{"group":"Cortex beta program and release phases","root":{"title":"Cortex beta program and release phases","href":"/resources/beta"},"pages":[{"title":"AI impact dashboard for GitHub Copilot","hidden":true,"tag":"beta","href":"/resources/beta/ai-dashboard"},{"title":"Custom dashboards","hidden":true,"tag":"beta","href":"/resources/beta/custom-dashboards"},{"title":"Workflow Runs API","hidden":true,"href":"/resources/beta/workflow-runs-api"},{"title":"Entity Relationships Bird's Eye (Private Beta)","hidden":true,"href":"/resources/beta/entity-relationships-birds-eye-private-beta"},{"title":"Entity Relationships All Scorecards","hidden":true,"href":"/resources/beta/entity-relationships-birds-eye-private-beta-1"},{"title":"Incident.io: expanded incident functionality","tag":"private-beta","hidden":true,"href":"/resources/beta/incident-core-types-incident.io-private-beta"},{"title":"Incident.io On-call","tag":"private-beta","hidden":true,"href":"/resources/beta/incident.io-on-call"},{"title":"Data Explorer with Tabular View","hidden":true,"href":"/resources/beta/data-explorer-with-tabular-view"},{"title":"AWS Relationship Auto-Creation","hidden":true,"href":"/resources/beta/aws-relationship-auto-creation"}]},{"title":"Further help","href":"/resources/help"}]}]},{"tab":"Cookbooks","icon":"hat-chef","pages":[{"title":"Cookbooks","href":"/guides"}]},{"tab":"API Reference","icon":"brain","pages":[{"title":"API Reference","href":"/api"}]}]},"basePath":"","title":"Velocity Dashboard - Cortex","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":["a74be98ba7"],"chunks":["zoom-image-lightbox-BG6oD64b.js","lightbox-handle-r17bVUz3.js"]}