Skip to content

Morningstar Advisor Workstation

Morningstar Advisor Workstation is a read-only integration that allows advisors to generate portfolio analysis reports based on client holdings. Unlike Morningstar Office which syncs data INTO RightCapital, this integration pushes data OUT to Morningstar for report generation.

AttributeValue
Integration TypeReport Generation (Read-only)
AuthenticationSAML 2.0 with X509 certificates
Data FlowRightCapital → Morningstar (outbound only)
Data SyncNone - on-demand report generation
OwnerQianwei Hao

Morningstar Advisor Workstation is a professional portfolio analysis platform from Morningstar. It provides in-depth investment analysis tools including the famous Portfolio X-Ray that reveals hidden exposures across asset classes, sectors, and regions.

RightCapital’s integration allows advisors to generate these reports using holdings data stored in RightCapital, without manually re-entering positions in Morningstar.

ReportDescription
Portfolio SnapshotComprehensive portfolio analytics: composition, investment style, sector weightings, regional exposure, performance metrics
Portfolio X-RayCondensed portfolio strategy overview - the most popular report for client communication
Investment DetailPer-holding breakdown with investment-type-specific information
Intersection ReportShows 50 largest holdings with overlap analysis across multiple funds
Snapshot & IntersectionCombined report
ComparisonCompare multiple portfolios (backend supported, not exposed in UI)

The X-Ray report provides analysis across these dimensions:

  • Asset Class - Distribution across stocks, bonds, cash, etc.
  • Stock Sector - Concentration across 12 industry sectors
  • World Regions - Geographic exposure
  • Fees & Expenses - Cost analysis
  • Stock Stats - Key ratios (P/E, P/B, etc.)
  • Equity Style Box - Large/Mid/Small × Value/Blend/Growth matrix
  • Fixed-Income Style Box - Interest rate sensitivity × Credit quality
  • Holdings Breakdown - Individual security contribution analysis
sequenceDiagram
    participant A as Advisor
    participant RC as RightCapital
    participant M as Morningstar

    A->>RC: Select accounts, choose report type
    RC->>RC: Extract positions from database
    RC->>RC: Filter: Morningstar securities with non-zero value
    RC->>RC: Generate signed SAML2 Assertion with holdings XML
    RC->>A: Return SAML response + Morningstar URL
    A->>M: POST SAMLResponse to Morningstar
    M->>M: Validate SAML, parse holdings
    M->>A: Render report in new browser window
  1. No data stored at Morningstar - Holdings are sent on-demand for each report
  2. SAML2 authentication - Signed assertions with 3-minute validity
  3. Position filtering - Only includes securities with:
    • Source = Morningstar (has secid)
    • Non-zero market value
    • Valid symbol
  • Morningstar Advisor Workstation subscription
  • Three credentials from Morningstar:
    • Institution ID - Found in Help > Support
    • Login ID - Your username
    • Access Code - Found in File > User Profile > Integrations
  1. Login to Advisor Portal
  2. Navigate to Integrations
  3. Select Morningstar Advisor Workstation
  4. Enter the three credentials
  5. Click Connect
  1. Open a client’s Plan in Client Portal
  2. Go to Report menu
  3. Select “Morningstar Advisor Workstation report”
  4. Choose report type (Snapshot, X-Ray, etc.)
  5. Select accounts to include
  6. Click Open report
  7. Report opens in new browser window on Morningstar’s site
ComponentPath
Backend Integrationretail-api/app/Integrations/MorningstarAdvisorWorkstation/
Connector (SAML)Connector.php
Report HandlerReport.php
XML Payload GeneratorXmlHelper.php
ControllerController.php
Frontend OAuthfrontend/app/src/application/advisor/integrations/services/oauth-connect/morningstar-advisor-workstation.service.ts
Frontend Report UIfrontend/app/src/application/client/plan/report/integration-report/morningstar-advisor-workstation.component.tsx
Help Textfrontend/app/src/application/advisor/integrations/detail-view/components/help-text/morningstar-advisor-workstation.component.tsx

Environment variables in config/integrations.php:

'morningstar_advisor_workstation' => [
'saml2_institution_id' => env('MORNINGSTAR_ADVISOR_WORKSTATION_SAML2_INSTITUTION_ID'),
'saml2_investment_detail_report_endpoint' => env('MORNINGSTAR_ADVISOR_WORKSTATION_SAML2_INVESTMENT_DETAIL_REPORT_ENDPOINT'),
'saml2_issuer' => env('MORNINGSTAR_ADVISOR_WORKSTATION_SAML2_ISSUER'),
'saml2_login_endpoint' => env('MORNINGSTAR_ADVISOR_WORKSTATION_SAML2_LOGIN_ENDPOINT'),
'saml2_private_key' => env('MORNINGSTAR_ADVISOR_WORKSTATION_SAML2_PRIVATE_KEY'),
]

Certificate location: certs/integrations/morningstar_advisor_workstation/saml2_idp_cert.crt

InstId - Advisor's Morningstar Institution ID
LoginId - Advisor's Morningstar Login ID
AccessCode - Advisor's Morningstar Access Code
UserStatus - "1" (active)
ClientSide - "1"
Role - "AD" (Advisor)
Application - "PortReport20"
Payload - XML with holdings data (for non-Investment Detail reports)
PurposeURL Pattern
Login/Reports{login_endpoint}/SamlLogin.aspx
Validation{login_endpoint}/SamlIntegrationValidation.aspx
Investment Detail{detail_endpoint}/OpenGlobalHypoReportEngine.aspx
public const array REPORT_TYPES = [
'comparison' => ['title' => 'Portfolio Comparison', 'value' => 5],
'intersection' => ['title' => 'Stock Intersection', 'value' => 3],
'investment_detail' => ['title' => 'Investment Detail Report', 'value' => 10],
'snapshot' => ['title' => 'Snapshot Report', 'value' => 2],
'snapshot_and_intersection' => ['title' => 'Snapshot and Stock Intersection', 'value' => 1],
'x_ray' => ['title' => 'X-Ray Report', 'value' => 4],
];
AspectMorningstar OfficeMorningstar Advisor Workstation
PurposeData importReport generation
Data FlowInbound (M* → RC)Outbound (RC → M*)
AuthenticationOAuth 2.0SAML 2.0
SyncNightly automaticOn-demand only
Data StoredYes (households, accounts, holdings)No
StatusSunset 2026/2/28Active

Symptom: “Reports can only be generated if there are holdings in at least one investment account”

Cause: Selected accounts have no positions matching criteria (Morningstar security source, non-zero value)

Solution: Ensure accounts have positions with Morningstar-matched securities

Symptom: Report fails to load

Cause: Invalid credentials or expired certificate

Solution: Verify Institution ID, Login ID, and Access Code are correct; check certificate expiry

Symptom: Morningstar page loads but shows no data

Cause: Holdings XML not properly parsed by Morningstar

Solution: Check logs for XML generation errors; verify security symbols are valid