Skip to content

Morningstar Office

Morningstar Office is a data sync integration that imports portfolio data from Morningstar’s wealth management platform into RightCapital. Unlike Morningstar Advisor Workstation which generates reports on-demand, this integration synchronizes client data on a nightly basis.

AttributeValue
Integration TypeData Sync (Inbound)
AuthenticationOAuth 2.0
Data FlowMorningstar → RightCapital (inbound only)
Sync ScheduleNightly automatic sync
OwnerWinston Li
StatusSunset: 2026/02/28

Client households are the top-level entity containing profile information:

  • Household ID (reference)
  • Name
  • Address, Email, Phone
  • Profile details (birthday, age)

Investment accounts (portfolios) linked to households:

CategoryExamples
Retirement401(k), 403(b), 457, Traditional IRA, Roth IRA, SEP IRA, SIMPLE IRA
TaxableIndividual, Joint (JTWROS), Tenants in Common, TOD
Education529 Plan, Coverdell, UGMA/UTMA
TrustTrust, Revocable Trust, Charitable Trust
InsuranceVA (Variable Annuity), VL/VUL

Security positions within each account:

FieldDescription
secidMorningstar security ID
symbolTicker symbol
market-valueCurrent market value
quantityNumber of shares/units
priceCurrent price
sequenceDiagram
    participant A as Advisor
    participant RC as RightCapital
    participant M as Morningstar Office

    A->>RC: Connect via OAuth 2.0
    RC->>M: Request authorization
    M->>A: Login & consent
    M->>RC: Authorization code
    RC->>M: Exchange for access token

    Note over RC,M: Nightly Sync Process
    RC->>M: GET /office-household/v2/profiles
    M->>RC: Household list (paginated)
    loop For each household
        RC->>M: GET /office-portfolio/v2/profiles
        M->>RC: Account list
        RC->>M: GET /office-portfolio/v2/holdings
        M->>RC: Holdings data
    end
  1. Login to Advisor Portal
  2. Navigate to Integrations
  3. Select Morningstar Office
  4. Click Connect to initiate OAuth flow
  5. Login to Morningstar and authorize access
Terminal window
# Command
php artisan morningstar_office:sync
# Queue
retail-integration-morningstar-office-nightly-sync
ComponentPath
Backend Integrationretail-api/app/Integrations/MorningstarOffice/
Connector (OAuth)Connector.php
IntegratorIntegrator.php
OAuth2 ProviderOAuth2/Provider.php
ModelsModels/Household.php, InvestmentAccount.php, Holding.php
Sync Commandapp/Console/Commands/Integrations/MorningstarOffice/Sync.php
PurposeEndpoint
List HouseholdsGET /office-household/v2/profiles
List AccountsGET /office-portfolio/v2/profiles?householdIds={id}
Get HoldingsGET /office-portfolio/v2/holdings?portfolioIds={ids}

Comparison with Morningstar Advisor Workstation

Section titled “Comparison with Morningstar Advisor Workstation”
AspectMorningstar OfficeMorningstar Advisor Workstation
PurposeData importReport generation
Data FlowInbound (M* → RC)Outbound (RC → M*)
AuthenticationOAuth 2.0SAML 2.0
SyncNightly automaticOn-demand only
Data StoredYesNo
StatusSunset 2026/2/28Active

Symptom: invalid_grant error during sync

Solution: Advisor needs to reconnect via Advisor Portal

Symptom: Accounts sync but holdings are empty

Solution: Holdings are fetched in batches of 10 to avoid timeouts; check logs for errors