Track how completely every client is set up, and who owns each gap
Account Readiness measures how completely each client is set up in MSPortal.ai, scores it out of 100, and tells you which team member owns every remaining gap. The Companies view evaluates current configuration when you open it; historical snapshots support comparison. It is not a continuous live monitor.
Account Readiness is the Readiness tab of MSP Tools > Client Success. Saved links to the Account Readiness page and to the Company Audit address /settings/companies/audit open the Readiness tab.
Before you start
This is an MSP staff view. Company users cannot open Account Readiness.
You need Account Readiness: Read to open it. Changing requirements needs Account Readiness: Manage. The By owner view has its own permission, so a scorecard of named staff is never granted by accident.
Requirements assign owners by Team Role, so assign people to roles on each company’s Team tab. See Account teams and Team Roles.
Open Account Readiness
1
Open the Readiness tab
In the left sidebar under MSP Tools, click Client Success, then select the Readiness tab.
2
Choose your scope
Use the company selector at the top of the page to look at one client, your assigned clients, or the whole portfolio.
3
Pick a view
Use the Companies and By owner switch beside the tabs. Companies shows the grid and By owner shows the per-person rollup. The switch appears when your role can see the By owner view.
Summary cards
Card
Description
Companies
Companies in the current scope, excluding any marked as excluded from readiness
Well configured
Score of 80% or higher
Needs attention
Score between 60% and 79%
Critical
Score below 60%
How the score works
The score is the share of a company’s requirements that are ready:
A company that satisfies every requirement scores 100%. Exempt checks are removed from the denominator entirely, so exempting something never quietly lowers a score.
If there are no applicable requirements, the view can show No score. Exemption is an administrative decision, not evidence that missing configuration was fixed.
Check states
State
Meaning
Ready
The requirement is satisfied
Unconfirmed
The value is present, but a person still has to confirm it is the right value
Missing
The requirement is not satisfied
Not applicable
Someone exempted this requirement for this client, with a reason
Ready and Unconfirmed are separate on purpose. Some values can be present but wrong, and for those a person confirms once that the value is correct. If the underlying value later changes, the confirmation lapses automatically and the check returns to Unconfirmed.
A check can never be marked ready by a person while the data says it is missing. Confirming only ever applies on top of a check that already passes.
The fleet grid
Rows are companies. Columns are your requirements, grouped by area: Profile, Team, Integrations, Delivery, Engagement, and Operations.Checks with a setup destination link to the relevant page, so you can open a gap in a new tab with cmd-click or middle-click without losing your place in the grid. Requirements added in the last 30 days carry a New badge, so a score that moved because the bar was raised is easy to tell apart from a score that slipped.
Filtering
Every column filters in place, including:
Company, as a multi-select list
Score and Open, as numeric ranges
Worst status, to find every client with something missing
Owning role, to see everything a role is behind on
Owner, to see everything one person is behind on
Filters combine and page through matching companies. Use Check owner to select Mine, Everyone or an available owner; scores and totals then reflect that owner’s checks. Hide completed checks hides requirement columns that are ready or not applicable for every company on the current page. It does not exempt requirements or remove completed records.
Freshness
Read Current configuration, evaluated when you open this page or the displayed snapshot date to identify the evidence being shown. Reopen after correcting source configuration. Nightly snapshots support history; a successful settings save is not proof of a new historical snapshot.
Bulk changes
1
Select companies
With Manage permission, tick companies on the current page, then click Bulk update. For one company, use the row’s Update readiness action instead. The selection covers only the current page. Changing page, filters, sorting, or scope clears it.
2
Choose the change
In Update readiness, review the named companies. In Change, choose Exempt a requirement, Remove an exemption, Confirm a requirement, Clear a confirmation, Exclude from readiness, or Include in readiness.
3
Fill in the details
Choose the Requirement where asked. An exemption also needs a reason. Confirming needs every selected company to already satisfy the check and require a person’s confirmation.
4
Apply
Click Apply to N companies. Click Cancel to close without saving.
Confirm a requirement loads complete checks for the selected companies, even when Check owner limits the grid. The Requirement list offers only checks that every selected company can confirm. Wait for the checks to load; if loading fails, click Retry. Changing Change clears the selected requirement so you can choose one that applies to the new action.
The check menu’s Exclude check and Remove exclusion actions can save immediately. Inspect the company and requirement before using them; there is no page-level Save to undo them.
Company drilldown
Click a company name to open its drilldown. This evaluates live rather than reading the overnight snapshot, and lists everything still open, worst first. Each item shows:
What the requirement is and what state it is in
What the check actually found, for example which fields are blank or which roles have no holder
Who owns it
A Fix button that opens the page that resolves it
Two actions are available with the Manage permission:
Confirm
Records that a person has checked the value and it is correct. Available on checks in the Unconfirmed state. The confirmation lapses automatically if the value changes afterwards.
Mark as not applicable
Exempts one requirement for one client, with a required reason. The check stops counting toward that client’s score until the exemption is removed. Exemptions do not expire, and they survive a requirement being switched off and back on.
Confirmations and exemptions are both listed further down the drilldown so either can be withdrawn later. Confirm, clearing a confirmation and removing an exemption are immediate actions. Marking a check not applicable opens a reason dialog and requires its submission; closing it does not save.
Readiness by owner
The By owner view rolls readiness up per person, based on who holds the primary owning role for each requirement at each company.
Column
Description
Person
The team member who holds the owning role
Roles
Which owning roles they hold
Companies
How many clients they own readiness for
Ready
Share of their checks that are ready
vs team
Their ready rate as a multiple of the team average
Trend
Change in their ready rate across the period
Open
Checks still missing or unconfirmed
Interpret vs team with the number and nature of assigned checks, client coverage and the period. Readiness is a configuration measure; it does not by itself establish an employee’s quality of work. People below the minimum client count are marked Small book and are left out of the team average so a very small book cannot skew everyone else’s baseline.Trend deliberately ignores requirements that did not exist at the start of the period. Adding a new requirement raises the bar, and that should not read as everyone regressing.
Configure requirements
1
Open the settings
Go to Settings > MSP Tools > Account Readiness, or click Configure in the header of the Readiness tab. You need Account Readiness: Manage.
2
Add a requirement
Click Add requirement. To change one, edit its row.
3
Choose what it checks
In What does this check?, pick a kind, such as Company profile fields or Integration company mapping. Then fill in its specifics, picked from your own data, such as your roles, custom fields, compliance groups, or report templates.
4
Set the owner
Choose a Primary owner role. Add Supporting roles if others can fix it. The score counts the check once, against the primary owner.
5
Choose the options
Optionally set a Name (optional), and turn on Needs a person to confirm it if someone must confirm the value on top of the data check.
6
Save
Click Save. Use the On switch to turn a requirement off or on, and Move up or Move down to reorder.
Each requirement has these settings.
Setting
Purpose
What does this check?
The kind of check, such as a company field, an integration mapping, or a record that must exist
Configuration
The specifics, picked from your own data: your roles, your custom fields, your compliance groups, your report templates
Name (optional)
A label that replaces the default one
Primary owner
The role that carries this in the score
Supporting roles
Other roles that should see the work
Needs a person to confirm it
Requires a confirmation on top of the data check
On
Whether the requirement is measured at all
Save behavior
Create or edit a requirement in its dialog and click Save. Changing its On switch or moving it in the requirements list saves immediately. Delete uses confirmation and is not staged for a later page Save. Bulk requirement editing applies the fields selected in its dialog; review the chosen requirements before saving.
Check kinds
Kind
What it measures
Company profile fields
Named fields on the company record are filled in
Company custom fields
Named company custom fields are filled in
Integration company mapping
The company is mapped to its counterpart in a given integration
Team role assigned
The named roles have a holder at this company
Compliance applied
Compliance checks are assigned, and optionally a compliance schedule is set
Report schedule active
An active report schedule covers this company
Standards linked
Every standard has been triaged, and optionally planned
Record exists
At least N of a record type exist, such as locations, devices, goals, or a budget
A report schedule counts as covering a company whether it targets that company directly, its company group, its industry, or all active companies. You do not need a separate schedule per client for this check to pass.
Primary owner versus supporting roles
The split matters. The work list shows a failing check to every role that could fix it, so nobody is left out. The score counts each check once, against the primary owner, so a portfolio total always matches the real number of gaps.
Excluding a company
Some clients are not meant to be measured at all. Use the company row or bulk Exclude from readiness operation to remove the company from readiness measurement. Review excluded companies in Readiness settings and restore them there when appropriate. Excluding a company does not delete the company or fix its setup.
Requirements you cannot fix in MSPortal.ai
Primary contact is read from your PSA and there is no page in MSPortal.ai that sets it. It ships as a confirm-required check: set the contact in the PSA, then confirm it here once. If the PSA contact changes later, the check returns to Unconfirmed on its own.
Best practices
Start with the defaults, then tighten
Every tenant starts with a default requirement set that covers company details, team ownership, compliance, reporting, standards, and the core records. Run with it for a couple of weeks, then add the requirements that reflect how your team actually works.
Give every requirement an owner
A requirement with no owning role still shows in the grid, but it will not appear in anyone’s rollup. Assigning owning roles is what turns the grid into a work list.
Use exemptions instead of switching requirements off
If a requirement genuinely does not apply to one client, exempt it there with a reason. Switching the requirement off removes it for everyone.
Review by owner in one-on-ones
The By owner view is built for that conversation: review the assigned work, coverage and context rather than treating the score as a complete performance ranking.
Troubleshooting
Problem
What to do
The Readiness tab is missing from Client Success
You need Account Readiness: Read. Ask an administrator.
A company shows No score
It has no applicable requirements. Check the requirements and exemptions.
A check shows Unconfirmed again
The underlying value changed, so the confirmation lapsed. Check the value, then confirm it again.
A requirement says it is misconfigured
Edit it in Settings > MSP Tools > Account Readiness and fill in the missing specifics.
The score looks out of date
The grid evaluates current configuration when you open it. Reopen the Readiness tab after you fix the source.
Bulk update shows no companies
Tick companies on the current page. Changing page or filters clears the selection.
A company is missing from the grid
It may be excluded. Restore it in the readiness settings under Excluded companies.
Frequently asked questions
Can Company users open Account Readiness?
No. This is an MSP staff view. Read, Manage and By owner access are separate permissions.
Is Account Readiness a continuous live monitor?
No. The Companies view evaluates current configuration when opened and history uses snapshots. Check the evaluation message or date before drawing conclusions.
Does Unconfirmed mean the value is missing?
No. The underlying requirement is satisfied but needs human confirmation. A genuinely missing requirement cannot be made ready by confirmation alone.
Does exempting a requirement fix its underlying data?
No. It removes that requirement from the company’s applicable score denominator and records the reason. The configuration itself is unchanged.
Does Bulk update select every matching company?
No. Review the named selected companies. Page, filter, sorting and scope changes clear the selection; the grid does not select all result pages.
Does Hide completed checks disable requirements?
No. It hides columns completed for every company on the current page. It does not change requirements or exemptions.
Does Check owner leave the score unchanged?
No. The owner scope changes which checks contribute to the shown scores and totals. Confirm the owner scope before comparing results.
Is there one final Save for readiness changes?
No. Confirmation and exemption-removal actions, requirement switches and reorder controls can save immediately. Requirement and bulk dialogs have their own submit actions.
Does excluding a company delete it?
No. It removes it from readiness measurement. Restore excluded companies in Readiness settings when they should be measured again.
Does vs team prove someone is performing better?
No. It compares readiness rates within the available coverage. Consider assigned checks, client mix, small-book flags and the period before interpreting it.
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"MSPortal.ai Documentation","colors":{"primary":"#0C8376","light":"#15B79E","dark":"#107569"},"logo":{"light":"https://mintcdn.com/msportal/KnbwIXtZSTlVJTt6/logo/light.svg?fit=max\u0026auto=format\u0026n=KnbwIXtZSTlVJTt6\u0026q=85\u0026s=eb69f6d6bf16b2c401770aef19ade1d2","dark":"https://mintcdn.com/msportal/KnbwIXtZSTlVJTt6/logo/dark.svg?fit=max\u0026auto=format\u0026n=KnbwIXtZSTlVJTt6\u0026q=85\u0026s=03f8df7191e7a8ea7da084df57f6107f"},"favicon":"https://mintcdn.com/msportal/KjsKytvp08K0bejm/favicon-16x16.png?fit=max\u0026auto=format\u0026n=KjsKytvp08K0bejm\u0026q=85\u0026s=378df7f039bbff7885231fec799d29ac","navbar":{"links":[{"href":"/release-notes/roadmap","label":"Roadmap"},{"href":"mailto:support@msportal.ai","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://app.msportal.ai"}},"footer":{"socials":{"linkedin":"https://linkedin.com/company/msportal"},"links":[{"header":"Resources","items":[{"label":"MSPortal.ai","href":"https://msportal.ai"},{"label":"Support","href":"mailto:support@msportal.ai"},{"label":"Status","href":"https://status.msportal.ai"}]}]},"fonts":{"family":"Inter"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"msportal","hasAudioNarration":false,"actualSubdomain":"msportal","customDomains":["docs.msportal.ai"],"gitSource":{"type":"github","owner":"msportal-ai","repo":"mintlify-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"feedback":{"thumbs":true},"entitlements":{},"buildId":"6af75ae5643517979ab0f116","clientVersion":"0.0.4138","searchFilterCounts":[{"language":"default","tag":"MSP Guides","count":470},{"language":"default","tag":"API Reference","count":433},{"language":"default","tag":"Operations","count":126},{"language":"default","tag":"Planning","count":101},{"language":"default","tag":"Integrations","count":95},{"language":"default","tag":"Projects","count":75},{"language":"default","tag":"Protection","count":59},{"language":"default","tag":"Standards","count":56},{"language":"default","tag":"Client Onboarding","count":48},{"language":"default","tag":"Compliance","count":45}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","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":"rbac-expansion","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":"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":"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":"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":"editor-metadata","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},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","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}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"#page-title{font-size:1.75rem;line-height:2.125rem}#header .prose.text-lg{font-size:1rem;line-height:1.5rem;color:rgb(var(--gray-500))}#content-area .prose{font-size:0.9375rem;line-height:1.6}#content-area .mdx-content{margin-top:1.5rem}#content-area .mdx-content h2{font-size:1.25rem;line-height:1.75rem;margin-top:2.25rem;margin-bottom:0.75rem}#content-area .mdx-content h3{font-size:1.0625rem;line-height:1.5rem;margin-top:1.75rem;margin-bottom:0.5rem}#content-area .mdx-content li{margin-top:0.25em;margin-bottom:0.25em}#content-area .steps{margin-top:1rem}#content-area .step{padding-bottom:0.75rem}#content-area [data-component-part=\"step-title\"]{margin-top:0.25rem;margin-bottom:0.375rem}#content-area [data-component-part=\"accordion-content\"] td,#content-area [data-component-part=\"accordion-content\"] th{min-width:0}@media (max-width: 639px){#content-area [data-component-part=\"accordion-content\"] td:last-child{min-width:16rem}}#content-area [data-table-wrapper]>[data-component-part=\"scroll-area-viewport\"]{-webkit-mask-image:linear-gradient(\n to right,\n transparent 0,\n black min(var(--scroll-area-fade-size), var(--scroll-area-overflow-x-start, 0px)),\n black calc(100% - min(var(--scroll-area-fade-size), var(--scroll-area-overflow-x-end, 0px))),\n transparent 100%\n );mask-image:linear-gradient(\n to right,\n transparent 0,\n black min(var(--scroll-area-fade-size), var(--scroll-area-overflow-x-start, 0px)),\n black calc(100% - min(var(--scroll-area-fade-size), var(--scroll-area-overflow-x-end, 0px))),\n transparent 100%\n )}#content-area [data-table-wrapper]>[data-component-part=\"scroll-area-scrollbar\"][data-has-overflow-x]{opacity:1;pointer-events:auto}#sidebar-content li>a,#sidebar-content li>button{font-size:0.875rem;line-height:1.25rem;padding-top:0.3125rem;padding-bottom:0.3125rem}#sidebar-content li>a span{hyphens:manual}#sidebar-content a.nav-anchor{margin-bottom:0.25rem;font-size:0.875rem}#sidebar-content ul:has(>li>a.nav-anchor){margin-bottom:1rem;padding-bottom:0.5rem;border-bottom:1px solid rgb(var(--gray-100))}.dark #sidebar-content ul:has(>li>a.nav-anchor){border-bottom-color:rgb(255 255 255 / 0.1)}#table-of-contents{font-size:0.8125rem;line-height:1.25rem}#sidebar-content li>a>div:first-child:has(>svg,>img){display:none}:root{--sidebar-width: 16rem}@media (min-width: 1024px){#navbar .max-w-8xl,#body-content{max-width:none}#content-container{max-width:88rem;margin-left:0;padding-left:2.5rem;padding-right:2rem;column-gap:2.5rem;justify-content:space-between}}@media (min-width: 1280px){#content-area{width:calc(100% - 16.5rem);max-width:52rem;margin-left:0}#navbar.is-wide~#body-content #content-container{max-width:none}#navbar.is-wide~#body-content #content-area{width:100%;max-width:none}#table-of-contents-layout{width:14rem;padding-left:0}#table-of-contents{width:14rem}}.roadmap-embed{display:block;border:0;background:transparent;color-scheme:light}.dark .roadmap-embed{color-scheme:dark}#content-area img[width=\"390\"],#content-area img[width=\"780\"]{width:100%!important;max-width:300px!important;height:auto!important;margin-left:auto;margin-right:auto}"}],"page":{"pagePath":"user-guides/company-overview/audit","slug":"/user-guides/company-overview/audit","pageMetadata":{"title":"Account Readiness","description":"Track how completely every client is set up, and who owns each gap","icon":"clipboard-check","href":"/user-guides/company-overview/audit"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Track how completely every client is set up, and who owns each gap\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"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`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,CodeBlock,Heading,Note,Step,Steps,Table,Tip}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Account Readiness measures how completely each client is set up in MSPortal.ai, scores it out of 100, and tells you which team member owns every remaining gap. The Companies view evaluates current configuration when you open it; historical snapshots support comparison. It is not a continuous live monitor.`}),`\n`,_jsxs(Note,{children:[`Account Readiness is the `,_jsx(_components.strong,{children:`Readiness`}),` tab of `,_jsx(_components.strong,{children:`MSP Tools > Client Success`}),`. Saved links to the Account Readiness page and to the Company Audit address `,_jsx(_components.code,{children:`/settings/companies/audit`}),` open the `,_jsx(_components.strong,{children:`Readiness`}),` tab.`]}),`\n`,_jsx(Heading,{level:`2`,id:`before-you-start`,children:`Before you start`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`This is an MSP staff view. Company users cannot open Account Readiness.`}),`\n`,_jsxs(_components.li,{children:[`You need `,_jsx(_components.strong,{children:`Account Readiness: Read`}),` to open it. Changing requirements needs `,_jsx(_components.strong,{children:`Account Readiness: Manage`}),`. The `,_jsx(_components.strong,{children:`By owner`}),` view has its own permission, so a scorecard of named staff is never granted by accident.`]}),`\n`,_jsxs(_components.li,{children:[`Requirements assign owners by Team Role, so assign people to roles on each company’s `,_jsx(_components.strong,{children:`Team`}),` tab. See `,_jsx(_components.a,{href:`/user-guides/getting-started/onboarding/company-roles`,children:`Account teams and Team Roles`}),`.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`open-account-readiness`,children:`Open Account Readiness`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open the Readiness tab`,children:_jsxs(_components.p,{children:[`In the left sidebar under `,_jsx(_components.strong,{children:`MSP Tools`}),`, click `,_jsx(_components.strong,{children:`Client Success`}),`, then select the `,_jsx(_components.strong,{children:`Readiness`}),` tab.`]})}),_jsx(Step,{title:`Choose your scope`,children:_jsx(_components.p,{children:`Use the company selector at the top of the page to look at one client, your assigned clients, or the whole portfolio.`})}),_jsx(Step,{title:`Pick a view`,children:_jsxs(_components.p,{children:[`Use the `,_jsx(_components.strong,{children:`Companies`}),` and `,_jsx(_components.strong,{children:`By owner`}),` switch beside the tabs. `,_jsx(_components.strong,{children:`Companies`}),` shows the grid and `,_jsx(_components.strong,{children:`By owner`}),` shows the per-person rollup. The switch appears when your role can see the `,_jsx(_components.strong,{children:`By owner`}),` view.`]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`summary-cards`,children:`Summary cards`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Card`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Companies`})}),_jsx(_components.td,{children:`Companies in the current scope, excluding any marked as excluded from readiness`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Well configured`})}),_jsx(_components.td,{children:`Score of 80% or higher`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Needs attention`})}),_jsx(_components.td,{children:`Score between 60% and 79%`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Critical`})}),_jsx(_components.td,{children:`Score below 60%`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`how-the-score-works`,children:`How the score works`}),`\n`,_jsx(_components.p,{children:`The score is the share of a company’s requirements that are ready:`}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`score = ready checks / (total checks - exempt checks) x 100`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`A company that satisfies every requirement scores 100%. Exempt checks are removed from the denominator entirely, so exempting something never quietly lowers a score.`}),`\n`,_jsxs(Note,{children:[`If there are no applicable requirements, the view can show `,_jsx(_components.strong,{children:`No score`}),`. Exemption is an administrative decision, not evidence that missing configuration was fixed.`]}),`\n`,_jsx(Heading,{level:`2`,id:`check-states`,children:`Check states`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`State`}),_jsx(_components.th,{children:`Meaning`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Ready`})}),_jsx(_components.td,{children:`The requirement is satisfied`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Unconfirmed`})}),_jsx(_components.td,{children:`The value is present, but a person still has to confirm it is the right value`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Missing`})}),_jsx(_components.td,{children:`The requirement is not satisfied`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Not applicable`})}),_jsx(_components.td,{children:`Someone exempted this requirement for this client, with a reason`})]})]})]}),`\n`,_jsx(_components.p,{children:`Ready and Unconfirmed are separate on purpose. Some values can be present but wrong, and for those a person confirms once that the value is correct. If the underlying value later changes, the confirmation lapses automatically and the check returns to Unconfirmed.`}),`\n`,_jsx(Tip,{children:`A check can never be marked ready by a person while the data says it is missing. Confirming only ever applies on top of a check that already passes.`}),`\n`,_jsx(Heading,{level:`2`,id:`the-fleet-grid`,children:`The fleet grid`}),`\n`,_jsx(_components.p,{children:`Rows are companies. Columns are your requirements, grouped by area: Profile, Team, Integrations, Delivery, Engagement, and Operations.`}),`\n`,_jsxs(_components.p,{children:[`Checks with a setup destination link to the relevant page, so you can open a gap in a new tab with cmd-click or middle-click without losing your place in the grid. Requirements added in the last 30 days carry a `,_jsx(_components.strong,{children:`New`}),` badge, so a score that moved because the bar was raised is easy to tell apart from a score that slipped.`]}),`\n`,_jsx(Heading,{level:`3`,id:`filtering`,children:`Filtering`}),`\n`,_jsx(_components.p,{children:`Every column filters in place, including:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Company`}),`, as a multi-select list`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Score`}),` and `,_jsx(_components.strong,{children:`Open`}),`, as numeric ranges`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Worst status`}),`, to find every client with something missing`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Owning role`}),`, to see everything a role is behind on`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Owner`}),`, to see everything one person is behind on`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Filters combine and page through matching companies. Use `,_jsx(_components.strong,{children:`Check owner`}),` to select `,_jsx(_components.strong,{children:`Mine`}),`, `,_jsx(_components.strong,{children:`Everyone`}),` or an available owner; scores and totals then reflect that owner’s checks. `,_jsx(_components.strong,{children:`Hide completed checks`}),` hides requirement columns that are ready or not applicable for every company on the current page. It does not exempt requirements or remove completed records.`]}),`\n`,_jsx(Heading,{level:`3`,id:`freshness`,children:`Freshness`}),`\n`,_jsxs(_components.p,{children:[`Read `,_jsx(_components.strong,{children:`Current configuration, evaluated when you open this page`}),` or the displayed snapshot date to identify the evidence being shown. Reopen after correcting source configuration. Nightly snapshots support history; a successful settings save is not proof of a new historical snapshot.`]}),`\n`,_jsx(Heading,{level:`3`,id:`bulk-changes`,children:`Bulk changes`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Select companies`,children:_jsxs(_components.p,{children:[`With Manage permission, tick companies on the current page, then click `,_jsx(_components.strong,{children:`Bulk update`}),`. For one company, use the row’s `,_jsx(_components.strong,{children:`Update readiness`}),` action instead. The selection covers only the current page. Changing page, filters, sorting, or scope clears it.`]})}),_jsx(Step,{title:`Choose the change`,children:_jsxs(_components.p,{children:[`In `,_jsx(_components.strong,{children:`Update readiness`}),`, review the named companies. In `,_jsx(_components.strong,{children:`Change`}),`, choose `,_jsx(_components.strong,{children:`Exempt a requirement`}),`, `,_jsx(_components.strong,{children:`Remove an exemption`}),`, `,_jsx(_components.strong,{children:`Confirm a requirement`}),`, `,_jsx(_components.strong,{children:`Clear a confirmation`}),`, `,_jsx(_components.strong,{children:`Exclude from readiness`}),`, or `,_jsx(_components.strong,{children:`Include in readiness`}),`.`]})}),_jsx(Step,{title:`Fill in the details`,children:_jsxs(_components.p,{children:[`Choose the `,_jsx(_components.strong,{children:`Requirement`}),` where asked. An exemption also needs a reason. Confirming needs every selected company to already satisfy the check and require a person’s confirmation.`]})}),_jsx(Step,{title:`Apply`,children:_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Apply to N companies`}),`. Click `,_jsx(_components.strong,{children:`Cancel`}),` to close without saving.`]})})]}),`\n`,_jsxs(Note,{children:[_jsx(_components.strong,{children:`Confirm a requirement`}),` loads complete checks for the selected companies, even when `,_jsx(_components.strong,{children:`Check owner`}),` limits the grid. The Requirement list offers only checks that every selected company can confirm. Wait for the checks to load; if loading fails, click `,_jsx(_components.strong,{children:`Retry`}),`. Changing `,_jsx(_components.strong,{children:`Change`}),` clears the selected requirement so you can choose one that applies to the new action.`]}),`\n`,_jsxs(_components.p,{children:[`The check menu’s `,_jsx(_components.strong,{children:`Exclude check`}),` and `,_jsx(_components.strong,{children:`Remove exclusion`}),` actions can save immediately. Inspect the company and requirement before using them; there is no page-level Save to undo them.`]}),`\n`,_jsx(Heading,{level:`2`,id:`company-drilldown`,children:`Company drilldown`}),`\n`,_jsx(_components.p,{children:`Click a company name to open its drilldown. This evaluates live rather than reading the overnight snapshot, and lists everything still open, worst first. Each item shows:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`What the requirement is and what state it is in`}),`\n`,_jsx(_components.li,{children:`What the check actually found, for example which fields are blank or which roles have no holder`}),`\n`,_jsx(_components.li,{children:`Who owns it`}),`\n`,_jsxs(_components.li,{children:[`A `,_jsx(_components.strong,{children:`Fix`}),` button that opens the page that resolves it`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Two actions are available with the Manage permission:`}),`\n`,_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`Confirm`,id:`confirm`,children:_jsx(_components.p,{children:`Records that a person has checked the value and it is correct. Available on checks in the Unconfirmed state. The confirmation lapses automatically if the value changes afterwards.`})}),_jsx(Accordion,{title:`Mark as not applicable`,id:`mark-as-not-applicable`,children:_jsx(_components.p,{children:`Exempts one requirement for one client, with a required reason. The check stops counting toward that client’s score until the exemption is removed. Exemptions do not expire, and they survive a requirement being switched off and back on.`})})]}),`\n`,_jsxs(_components.p,{children:[`Confirmations and exemptions are both listed further down the drilldown so either can be withdrawn later. `,_jsx(_components.strong,{children:`Confirm`}),`, clearing a confirmation and removing an exemption are immediate actions. Marking a check not applicable opens a reason dialog and requires its submission; closing it does not save.`]}),`\n`,_jsx(Heading,{level:`2`,id:`readiness-by-owner`,children:`Readiness by owner`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.strong,{children:`By owner`}),` view rolls readiness up per person, based on who holds the primary owning role for each requirement at each company.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Column`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Person`})}),_jsx(_components.td,{children:`The team member who holds the owning role`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Roles`})}),_jsx(_components.td,{children:`Which owning roles they hold`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Companies`})}),_jsx(_components.td,{children:`How many clients they own readiness for`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Ready`})}),_jsx(_components.td,{children:`Share of their checks that are ready`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`vs team`})}),_jsx(_components.td,{children:`Their ready rate as a multiple of the team average`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Trend`})}),_jsx(_components.td,{children:`Change in their ready rate across the period`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Open`})}),_jsx(_components.td,{children:`Checks still missing or unconfirmed`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`Interpret `,_jsx(_components.strong,{children:`vs team`}),` with the number and nature of assigned checks, client coverage and the period. Readiness is a configuration measure; it does not by itself establish an employee’s quality of work. People below the minimum client count are marked `,_jsx(_components.strong,{children:`Small book`}),` and are left out of the team average so a very small book cannot skew everyone else’s baseline.`]}),`\n`,_jsx(_components.p,{children:`Trend deliberately ignores requirements that did not exist at the start of the period. Adding a new requirement raises the bar, and that should not read as everyone regressing.`}),`\n`,_jsx(Heading,{level:`2`,id:`configure-requirements`,children:`Configure requirements`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open the settings`,children:_jsxs(_components.p,{children:[`Go to `,_jsx(_components.strong,{children:`Settings > MSP Tools > Account Readiness`}),`, or click `,_jsx(_components.strong,{children:`Configure`}),` in the header of the `,_jsx(_components.strong,{children:`Readiness`}),` tab. You need `,_jsx(_components.strong,{children:`Account Readiness: Manage`}),`.`]})}),_jsx(Step,{title:`Add a requirement`,children:_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Add requirement`}),`. To change one, edit its row.`]})}),_jsx(Step,{title:`Choose what it checks`,children:_jsxs(_components.p,{children:[`In `,_jsx(_components.strong,{children:`What does this check?`}),`, pick a kind, such as `,_jsx(_components.strong,{children:`Company profile fields`}),` or `,_jsx(_components.strong,{children:`Integration company mapping`}),`. Then fill in its specifics, picked from your own data, such as your roles, custom fields, compliance groups, or report templates.`]})}),_jsx(Step,{title:`Set the owner`,children:_jsxs(_components.p,{children:[`Choose a `,_jsx(_components.strong,{children:`Primary owner`}),` role. Add `,_jsx(_components.strong,{children:`Supporting roles`}),` if others can fix it. The score counts the check once, against the primary owner.`]})}),_jsx(Step,{title:`Choose the options`,children:_jsxs(_components.p,{children:[`Optionally set a `,_jsx(_components.strong,{children:`Name (optional)`}),`, and turn on `,_jsx(_components.strong,{children:`Needs a person to confirm it`}),` if someone must confirm the value on top of the data check.`]})}),_jsx(Step,{title:`Save`,children:_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Save`}),`. Use the `,_jsx(_components.strong,{children:`On`}),` switch to turn a requirement off or on, and `,_jsx(_components.strong,{children:`Move up`}),` or `,_jsx(_components.strong,{children:`Move down`}),` to reorder.`]})})]}),`\n`,_jsx(_components.p,{children:`Each requirement has these settings.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Setting`}),_jsx(_components.th,{children:`Purpose`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`What does this check?`})}),_jsx(_components.td,{children:`The kind of check, such as a company field, an integration mapping, or a record that must exist`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Configuration`})}),_jsx(_components.td,{children:`The specifics, picked from your own data: your roles, your custom fields, your compliance groups, your report templates`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Name (optional)`})}),_jsx(_components.td,{children:`A label that replaces the default one`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Primary owner`})}),_jsx(_components.td,{children:`The role that carries this in the score`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Supporting roles`})}),_jsx(_components.td,{children:`Other roles that should see the work`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Needs a person to confirm it`})}),_jsx(_components.td,{children:`Requires a confirmation on top of the data check`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`On`})}),_jsx(_components.td,{children:`Whether the requirement is measured at all`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`save-behavior`,children:`Save behavior`}),`\n`,_jsxs(_components.p,{children:[`Create or edit a requirement in its dialog and click `,_jsx(_components.strong,{children:`Save`}),`. Changing its `,_jsx(_components.strong,{children:`On`}),` switch or moving it in the requirements list saves immediately. Delete uses confirmation and is not staged for a later page Save. Bulk requirement editing applies the fields selected in its dialog; review the chosen requirements before saving.`]}),`\n`,_jsx(Heading,{level:`3`,id:`check-kinds`,children:`Check kinds`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Kind`}),_jsx(_components.th,{children:`What it measures`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Company profile fields`})}),_jsx(_components.td,{children:`Named fields on the company record are filled in`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Company custom fields`})}),_jsx(_components.td,{children:`Named company custom fields are filled in`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Integration company mapping`})}),_jsx(_components.td,{children:`The company is mapped to its counterpart in a given integration`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Team role assigned`})}),_jsx(_components.td,{children:`The named roles have a holder at this company`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Compliance applied`})}),_jsx(_components.td,{children:`Compliance checks are assigned, and optionally a compliance schedule is set`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Report schedule active`})}),_jsx(_components.td,{children:`An active report schedule covers this company`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Standards linked`})}),_jsx(_components.td,{children:`Every standard has been triaged, and optionally planned`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Record exists`})}),_jsx(_components.td,{children:`At least N of a record type exist, such as locations, devices, goals, or a budget`})]})]})]}),`\n`,_jsx(Note,{children:`A report schedule counts as covering a company whether it targets that company directly, its company group, its industry, or all active companies. You do not need a separate schedule per client for this check to pass.`}),`\n`,_jsx(Heading,{level:`3`,id:`primary-owner-versus-supporting-roles`,children:`Primary owner versus supporting roles`}),`\n`,_jsx(_components.p,{children:`The split matters. The work list shows a failing check to every role that could fix it, so nobody is left out. The score counts each check once, against the primary owner, so a portfolio total always matches the real number of gaps.`}),`\n`,_jsx(Heading,{level:`2`,id:`excluding-a-company`,children:`Excluding a company`}),`\n`,_jsxs(_components.p,{children:[`Some clients are not meant to be measured at all. Use the company row or bulk `,_jsx(_components.strong,{children:`Exclude from readiness`}),` operation to remove the company from readiness measurement. Review excluded companies in Readiness settings and restore them there when appropriate. Excluding a company does not delete the company or fix its setup.`]}),`\n`,_jsx(Heading,{level:`2`,id:`requirements-you-cannot-fix-in-msportal-ai`,children:`Requirements you cannot fix in MSPortal.ai`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Primary contact`}),` is read from your PSA and there is no page in MSPortal.ai that sets it. It ships as a confirm-required check: set the contact in the PSA, then confirm it here once. If the PSA contact changes later, the check returns to Unconfirmed on its own.`]}),`\n`,_jsx(Heading,{level:`2`,id:`best-practices`,children:`Best practices`}),`\n`,_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`Start with the defaults, then tighten`,id:`start-with-the-defaults-then-tighten`,children:_jsx(_components.p,{children:`Every tenant starts with a default requirement set that covers company details, team ownership, compliance, reporting, standards, and the core records. Run with it for a couple of weeks, then add the requirements that reflect how your team actually works.`})}),_jsx(Accordion,{title:`Give every requirement an owner`,id:`give-every-requirement-an-owner`,children:_jsx(_components.p,{children:`A requirement with no owning role still shows in the grid, but it will not appear in anyone’s rollup. Assigning owning roles is what turns the grid into a work list.`})}),_jsx(Accordion,{title:`Use exemptions instead of switching requirements off`,id:`use-exemptions-instead-of-switching-requirements-off`,children:_jsx(_components.p,{children:`If a requirement genuinely does not apply to one client, exempt it there with a reason. Switching the requirement off removes it for everyone.`})}),_jsx(Accordion,{title:`Review by owner in one-on-ones`,id:`review-by-owner-in-one-on-ones`,children:_jsx(_components.p,{children:`The By owner view is built for that conversation: review the assigned work, coverage and context rather than treating the score as a complete performance ranking.`})})]}),`\n`,_jsx(Heading,{level:`2`,id:`troubleshooting`,children:`Troubleshooting`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Problem`}),_jsx(_components.th,{children:`What to do`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[`The `,_jsx(_components.strong,{children:`Readiness`}),` tab is missing from `,_jsx(_components.strong,{children:`Client Success`})]}),_jsxs(_components.td,{children:[`You need `,_jsx(_components.strong,{children:`Account Readiness: Read`}),`. Ask an administrator.`]})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[`A company shows `,_jsx(_components.strong,{children:`No score`})]}),_jsx(_components.td,{children:`It has no applicable requirements. Check the requirements and exemptions.`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[`A check shows `,_jsx(_components.strong,{children:`Unconfirmed`}),` again`]}),_jsx(_components.td,{children:`The underlying value changed, so the confirmation lapsed. Check the value, then confirm it again.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`A requirement says it is misconfigured`}),_jsxs(_components.td,{children:[`Edit it in `,_jsx(_components.strong,{children:`Settings > MSP Tools > Account Readiness`}),` and fill in the missing specifics.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`The score looks out of date`}),_jsxs(_components.td,{children:[`The grid evaluates current configuration when you open it. Reopen the `,_jsx(_components.strong,{children:`Readiness`}),` tab after you fix the source.`]})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`Bulk update`}),` shows no companies`]}),_jsx(_components.td,{children:`Tick companies on the current page. Changing page or filters clears the selection.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`A company is missing from the grid`}),_jsxs(_components.td,{children:[`It may be excluded. Restore it in the readiness settings under `,_jsx(_components.strong,{children:`Excluded companies`}),`.`]})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`frequently-asked-questions`,children:`Frequently asked questions`}),`\n`,_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`Can Company users open Account Readiness?`,id:`can-company-users-open-account-readiness`,children:_jsx(_components.p,{children:`No. This is an MSP staff view. Read, Manage and By owner access are separate permissions.`})}),_jsx(Accordion,{title:`Is Account Readiness a continuous live monitor?`,id:`is-account-readiness-a-continuous-live-monitor`,children:_jsx(_components.p,{children:`No. The Companies view evaluates current configuration when opened and history uses snapshots. Check the evaluation message or date before drawing conclusions.`})}),_jsx(Accordion,{title:`Does Unconfirmed mean the value is missing?`,id:`does-unconfirmed-mean-the-value-is-missing`,children:_jsx(_components.p,{children:`No. The underlying requirement is satisfied but needs human confirmation. A genuinely missing requirement cannot be made ready by confirmation alone.`})}),_jsx(Accordion,{title:`Does exempting a requirement fix its underlying data?`,id:`does-exempting-a-requirement-fix-its-underlying-data`,children:_jsx(_components.p,{children:`No. It removes that requirement from the company’s applicable score denominator and records the reason. The configuration itself is unchanged.`})}),_jsx(Accordion,{title:`Does Bulk update select every matching company?`,id:`does-bulk-update-select-every-matching-company`,children:_jsx(_components.p,{children:`No. Review the named selected companies. Page, filter, sorting and scope changes clear the selection; the grid does not select all result pages.`})}),_jsx(Accordion,{title:`Does Hide completed checks disable requirements?`,id:`does-hide-completed-checks-disable-requirements`,children:_jsx(_components.p,{children:`No. It hides columns completed for every company on the current page. It does not change requirements or exemptions.`})}),_jsx(Accordion,{title:`Does Check owner leave the score unchanged?`,id:`does-check-owner-leave-the-score-unchanged`,children:_jsx(_components.p,{children:`No. The owner scope changes which checks contribute to the shown scores and totals. Confirm the owner scope before comparing results.`})}),_jsx(Accordion,{title:`Is there one final Save for readiness changes?`,id:`is-there-one-final-save-for-readiness-changes`,children:_jsx(_components.p,{children:`No. Confirmation and exemption-removal actions, requirement switches and reorder controls can save immediately. Requirement and bulk dialogs have their own submit actions.`})}),_jsx(Accordion,{title:`Does excluding a company delete it?`,id:`does-excluding-a-company-delete-it`,children:_jsx(_components.p,{children:`No. It removes it from readiness measurement. Restore excluded companies in Readiness settings when they should be measured again.`})}),_jsx(Accordion,{title:`Does vs team prove someone is performing better?`,id:`does-vs-team-prove-someone-is-performing-better`,children:_jsx(_components.p,{children:`No. It compares readiness rates within the available coverage. Consider assigned checks, client mix, small-book flags and the period before interpreting it.`})})]}),`\n`,_jsx(Heading,{level:`2`,id:`related-guides`,children:`Related guides`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/user-guides/company-overview/index`,children:`Company overview`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/user-guides/settings/companies`,children:`Company settings`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/user-guides/msp-tools/client-health`,children:`Client Health`})}),`\n`]})]})}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":"Account Readiness","description":"Track how completely every client is set up, and who owns each gap","icon":"clipboard-check","href":"/user-guides/company-overview/audit"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Before you start","slug":"before-you-start","depth":2,"children":[]},{"title":"Open Account Readiness","slug":"open-account-readiness","depth":2,"children":[]},{"title":"Summary cards","slug":"summary-cards","depth":2,"children":[]},{"title":"How the score works","slug":"how-the-score-works","depth":2,"children":[]},{"title":"Check states","slug":"check-states","depth":2,"children":[]},{"title":"The fleet grid","slug":"the-fleet-grid","depth":2,"children":[{"title":"Filtering","slug":"filtering","depth":3,"children":[]},{"title":"Freshness","slug":"freshness","depth":3,"children":[]},{"title":"Bulk changes","slug":"bulk-changes","depth":3,"children":[]}]},{"title":"Company drilldown","slug":"company-drilldown","depth":2,"children":[]},{"title":"Readiness by owner","slug":"readiness-by-owner","depth":2,"children":[]},{"title":"Configure requirements","slug":"configure-requirements","depth":2,"children":[{"title":"Save behavior","slug":"save-behavior","depth":3,"children":[]},{"title":"Check kinds","slug":"check-kinds","depth":3,"children":[]},{"title":"Primary owner versus supporting roles","slug":"primary-owner-versus-supporting-roles","depth":3,"children":[]}]},{"title":"Excluding a company","slug":"excluding-a-company","depth":2,"children":[]},{"title":"Requirements you cannot fix in MSPortal.ai","slug":"requirements-you-cannot-fix-in-msportal-ai","depth":2,"children":[]},{"title":"Best practices","slug":"best-practices","depth":2,"children":[]},{"title":"Troubleshooting","slug":"troubleshooting","depth":2,"children":[]},{"title":"Frequently asked questions","slug":"frequently-asked-questions","depth":2,"children":[]},{"title":"Related guides","slug":"related-guides","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/msportal/d65dc731b8cde0aa/roadmap-embed.js"],"subdomain":"msportal","siteName":"MSPortal.ai Documentation","title":"Account Readiness - MSPortal.ai Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-12T18:56:46.009Z","originalFileLocation":"user-guides/company-overview/audit.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=\"description\" content=\"Track how completely every client is set up, and who owns each gap\">\u003cmeta data-mint-head name=\"application-name\" content=\"MSPortal.ai Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/msportal/MdEo74vho503Sp8Y/_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/msportal/MdEo74vho503Sp8Y/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/msportal/MdEo74vho503Sp8Y/_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/msportal/MdEo74vho503Sp8Y/_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/msportal/MdEo74vho503Sp8Y/_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/msportal/MdEo74vho503Sp8Y/_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/msportal/MdEo74vho503Sp8Y/_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/msportal/MdEo74vho503Sp8Y/_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/msportal/MdEo74vho503Sp8Y/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Account Readiness - MSPortal.ai Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Track how completely every client is set up, and who owns each gap\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"MSPortal.ai Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.msportal.ai/user-guides/company-overview/audit\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://msportal.mintlify.site/_mintlify/api/og/v2?division=Client+Success\u0026amp;title=Account+Readiness\u0026amp;description=Track+how+completely+every+client+is+set+up%2C+and+who+owns+each+gap\u0026amp;theme=88706d4dcbb07b7aeafbf701\u0026amp;signature=3bc50c7c32ebe2f60263629f0f205a99e41375befb84dfbcc58a2bdb17ee4326\">\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=\"Account Readiness - MSPortal.ai Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Track how completely every client is set up, and who owns each gap\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://msportal.mintlify.site/_mintlify/api/og/v2?division=Client+Success\u0026amp;title=Account+Readiness\u0026amp;description=Track+how+completely+every+client+is+set+up%2C+and+who+owns+each+gap\u0026amp;theme=88706d4dcbb07b7aeafbf701\u0026amp;signature=3bc50c7c32ebe2f60263629f0f205a99e41375befb84dfbcc58a2bdb17ee4326\">\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/msportal/MdEo74vho503Sp8Y/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"MSPortal.ai Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0C8376\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.msportal.ai/user-guides/company-overview/audit\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/user-guides/company-overview/audit.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.msportal.ai/#organization\",\"name\":\"MSPortal.ai Documentation\",\"url\":\"https://docs.msportal.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/msportal/KnbwIXtZSTlVJTt6/logo/light.svg?fit=max\u0026auto=format\u0026n=KnbwIXtZSTlVJTt6\u0026q=85\u0026s=eb69f6d6bf16b2c401770aef19ade1d2\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.msportal.ai#website\",\"name\":\"MSPortal.ai Documentation\",\"url\":\"https://docs.msportal.ai\",\"publisher\":{\"@id\":\"https://docs.msportal.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.msportal.ai/user-guides/company-overview/audit#webpage\",\"url\":\"https://docs.msportal.ai/user-guides/company-overview/audit\",\"name\":\"Account Readiness\",\"description\":\"Track how completely every client is set up, and who owns each gap\",\"dateModified\":\"2026-11-12T18:56:46.009Z\",\"isPartOf\":{\"@id\":\"https://docs.msportal.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.msportal.ai/user-guides/company-overview/audit#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.msportal.ai/user-guides/company-overview/audit#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Client Success\",\"item\":\"https://docs.msportal.ai/user-guides/msp-tools/client-health\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Account Readiness\",\"item\":\"https://docs.msportal.ai/user-guides/company-overview/audit\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.msportal.ai/user-guides/company-overview/audit#article\",\"headline\":\"Account Readiness\",\"name\":\"Account Readiness\",\"description\":\"Track how completely every client is set up, and who owns each gap\",\"url\":\"https://docs.msportal.ai/user-guides/company-overview/audit\",\"mainEntityOfPage\":{\"@id\":\"https://docs.msportal.ai/user-guides/company-overview/audit#webpage\"},\"dateModified\":\"2026-11-12T18:56:46.009Z\",\"publisher\":{\"@id\":\"https://docs.msportal.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.msportal.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"MSPortal.ai Documentation\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"MSPortal.ai Documentation\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/user-guides/company-overview/audit.md","siteName":"MSPortal.ai Documentation","nav":{"global":null,"tabs":[{"tab":"Company Guides","pages":[{"title":"Company Guides","href":"/user-guides/account/manage-your-profile"}]},{"tab":"MSP Guides","anchors":[{"anchor":"Getting started","icon":"rocket","pages":[{"title":"Getting started","href":"/user-guides/getting-started"}]},{"anchor":"Planning","icon":"compass","pages":[{"title":"Planning","href":"/user-guides/company-overview"}]},{"anchor":"Operations","icon":"briefcase","pages":[{"title":"Operations","href":"/user-guides/client-onboarding"}]},{"anchor":"Protection","icon":"shield-halved","pages":[{"title":"Protection","href":"/user-guides/cloud"}]},{"anchor":"MSP Tools","icon":"toolbox","groups":[{"group":"Tools","pages":[{"title":"MSP Tools","icon":"toolbox","href":"/user-guides/msp-tools"},{"title":"Plan vCIO workload and pricing","href":"/user-guides/msp-tools/calculators"},{"title":"Ticket Trends","icon":"chart-line","href":"/user-guides/msp-tools/ticket-trends"},{"title":"Cleanup","icon":"broom","href":"/user-guides/msp-tools/cleanup"}]},{"group":"Client Success","pages":[{"title":"Client Health","icon":"heart-pulse","href":"/user-guides/msp-tools/client-health"},{"title":"Find companies in Client Health","icon":"heart-pulse","href":"/user-guides/msp-tools/find-client-health"},{"title":"Read a company's health details","icon":"chart-line","href":"/user-guides/msp-tools/read-client-health-details"},{"title":"Understand Client Health scoring and evidence","icon":"scale-balanced","href":"/user-guides/msp-tools/understand-health-scoring"},{"title":"Manage manual Client Health risk flags","icon":"flag","href":"/user-guides/msp-tools/manage-client-risk-flags"},{"title":"Run a Traffic Light Review","icon":"traffic-light","href":"/user-guides/msp-tools/traffic-light-review"},{"title":"Refresh Client Health scores","icon":"arrows-rotate","href":"/user-guides/msp-tools/refresh-client-health"},{"title":"Financial Reporting","icon":"dollar-sign","href":"/user-guides/msp-tools/financial-reporting"},{"title":"Where Financial Reporting data comes from","description":"See which PSA records feed revenue, how revenue categories are chosen, and how support hours, endpoints and grades are calculated.","icon":"magnifying-glass-dollar","href":"/msp-guides/msp-tools/financial-reporting-data-sources"},{"title":"Account Readiness","icon":"clipboard-check","href":"/user-guides/company-overview/audit"}]},{"group":"Standards","pages":[{"title":"Standards","description":"Track which recommended tools and practices each client has deployed, in one matrix linked to Planner.","icon":"wrench","href":"/user-guides/msp-tools/standards"},{"title":"Standards vs. Compliance","icon":"scale-balanced","href":"/user-guides/msp-tools/standards-vs-compliance"},{"title":"Read the Standards matrix","icon":"table-cells","href":"/user-guides/msp-tools/read-standards-matrix"},{"title":"Update a company's Standards deployments","icon":"circle-check","href":"/user-guides/msp-tools/update-standard-deployments"},{"title":"Update Standards in bulk","icon":"table-cells","href":"/user-guides/msp-tools/bulk-update-standards"},{"title":"Exclude or include companies in Standards","icon":"eye-slash","href":"/user-guides/msp-tools/manage-standards-exclusions"}]},{"group":"Broadcasts","pages":[{"title":"Broadcasts","icon":"tower-broadcast","href":"/user-guides/broadcasts/index"}]}]},{"anchor":"Administration","icon":"gear","pages":[{"title":"Administration","href":"/user-guides/settings"}]},{"anchor":"Integrations","icon":"plug","pages":[{"title":"Integrations","href":"/user-guides/integrations"}]}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/budgets/list-budgets"}]},{"tab":"Release Notes","pages":[{"title":"Release Notes","href":"/release-notes"}]}]},"basePath":"","title":"Account Readiness - MSPortal.ai Documentation","buildId":"dpl_715YoAgvjTGBDdo8RtXmHKM22b5p","deploymentId":"dpl_715YoAgvjTGBDdo8RtXmHKM22b5p","dynamics":[],"chunks":[]}