generated: '2026-07-22' method: derived source: openapi/ components.schemas $ref containment across 117 refined specs entity_count: 1149 top_entities: - name: OutputMetadata defined_in_specs: 55 - name: OutputIdentifiers defined_in_specs: 51 - name: OutputMetadataMessages defined_in_specs: 51 - name: OutputErrorDetails defined_in_specs: 45 - name: OutputInvalidInvestments defined_in_specs: 44 - name: CodeMappingString defined_in_specs: 19 - name: CodeMappingBoolean defined_in_specs: 17 - name: ErrorResponse defined_in_specs: 11 - name: OutputCategory defined_in_specs: 9 - name: OutputInvestmentsMetadata defined_in_specs: 9 - name: ErrorResponse500 defined_in_specs: 8 - name: ErrorResponse400 defined_in_specs: 8 - name: ErrorResponse502 defined_in_specs: 8 - name: ResponseTimeSeriesSingleObservation defined_in_specs: 8 - name: OutputTimeSeriesSingleObservation defined_in_specs: 8 - name: OutputInvestmentSingleObservation defined_in_specs: 8 - name: OutputMetadataMessageInvestment defined_in_specs: 8 - name: DataModelSingleObservation defined_in_specs: 8 - name: CodeMappingLong defined_in_specs: 7 - name: ErrorResponse404 defined_in_specs: 7 - name: Morningstar.PortfolioAnalysis.Models.Input.BenchmarkInput defined_in_specs: 6 - name: Morningstar.PortfolioAnalysis.Models.Input.BenchmarkInputHolding defined_in_specs: 6 - name: Morningstar.PortfolioAnalysis.Models.Input.PortfolioInput defined_in_specs: 6 - name: Morningstar.PortfolioAnalysis.Models.Input.PortfolioInputHolding defined_in_specs: 6 - name: CodeMappingInt defined_in_specs: 6 - name: ErrorDetails defined_in_specs: 5 - name: OutputShareClassInformation defined_in_specs: 5 - name: holding defined_in_specs: 5 - name: Holdings defined_in_specs: 5 - name: OutputProfitability defined_in_specs: 4 - name: OutputEnterpriseValueCalculations defined_in_specs: 4 - name: idType defined_in_specs: 4 - name: OutputCompanyInformation defined_in_specs: 4 - name: Morningstar.PortfolioAnalysis.Models.Input.AssetClassConfig defined_in_specs: 4 - name: Morningstar.PortfolioAnalysis.Models.Output.DataItem_System.String_ defined_in_specs: 4 - name: Morningstar.PortfolioAnalysis.Models.Input.AssetClassGroupConfig defined_in_specs: 4 - name: Morningstar.PortfolioAnalysis.Models.Output.SecurityItem defined_in_specs: 4 - name: Morningstar.PortfolioAnalysis.Models.Input.AssetClassGroupConfigs defined_in_specs: 4 - name: InputPortfolio defined_in_specs: 4 - name: OutputAggregationEnterpriseValueCalculations defined_in_specs: 3 relationships: - from: OutputMetadataMessages relation: has_many to: OutputInvalidInvestments via: investments - from: OutputMetadata relation: has_many to: OutputMetadataMessages via: messages - from: ResponseTimeSeriesSingleObservation relation: has_many to: OutputInvestmentSingleObservation via: investments - from: OutputTimeSeriesSingleObservation relation: has_many to: OutputCategory via: categories - from: OutputTimeSeriesSingleObservation relation: has_many to: DataModelSingleObservation via: data - from: OutputInvestmentSingleObservation relation: has_one to: OutputTimeSeriesSingleObservation via: timeSeries - from: OutputInvestmentSingleObservation relation: has_one to: OutputInvestmentsMetadata via: metadata - from: OutputMetadataMessages relation: has_many to: OutputMetadataMessageInvestment via: investments - from: ResponseTimeSeriesSingleObservation relation: has_one to: OutputMetadata via: metadata - from: OutputInvestmentSingleObservation relation: has_one to: OutputIdentifiers via: identifiers - from: OutputMetadata relation: has_one to: OutputMetadataMessages via: messages - from: Morningstar.PortfolioAnalysis.Models.Input.BenchmarkInput relation: has_many to: Morningstar.PortfolioAnalysis.Models.Input.BenchmarkInputHolding via: Holdings - from: Morningstar.PortfolioAnalysis.Models.Input.PortfolioInput relation: has_many to: Morningstar.PortfolioAnalysis.Models.Input.PortfolioInputHolding via: Holdings - from: Morningstar.PortfolioAnalysis.Models.Input.PortfolioInput relation: has_one to: Morningstar.PortfolioAnalysis.Models.Input.BenchmarkInput via: Benchmark - from: OutputShareClassInformation relation: has_one to: CodeMappingBoolean via: directInvest - from: OutputShareClassInformation relation: has_one to: CodeMappingBoolean via: dividendReinvest - from: OutputShareClassInformation relation: has_one to: CodeMappingString via: investmentPrimaryIssuer - from: OutputShareClassInformation relation: has_one to: CodeMappingBoolean via: isMainShare - from: OutputShareClassInformation relation: has_one to: CodeMappingBoolean via: isPrimaryPerformanceId - from: OutputShareClassInformation relation: has_one to: CodeMappingString via: performanceStatus - from: OutputShareClassInformation relation: has_one to: CodeMappingString via: tradingStatus - from: Holdings relation: has_many to: holding via: holdings - from: OutputEnterpriseValueCalculations relation: has_one to: CodeMappingString via: currencyCode - from: OutputCompanyInformation relation: has_one to: CodeMappingString via: businessCountryCode - from: OutputCompanyInformation relation: has_one to: CodeMappingString via: companyStatus - from: OutputCompanyInformation relation: has_one to: CodeMappingString via: domicileCountryCode - from: OutputCompanyInformation relation: has_one to: CodeMappingLong via: fiscalYearEnd - from: OutputCompanyInformation relation: has_one to: CodeMappingString via: globalTemplateIndustryTemplateCode - from: OutputCompanyInformation relation: has_one to: CodeMappingBoolean via: isBusinessDevelopmentCompany - from: OutputCompanyInformation relation: has_one to: CodeMappingBoolean via: isLimitedLiabilityCompany - from: OutputCompanyInformation relation: has_one to: CodeMappingBoolean via: isLimitedPartnership - from: OutputCompanyInformation relation: has_one to: CodeMappingBoolean via: isMasterLimitedPartnership - from: OutputCompanyInformation relation: has_one to: CodeMappingBoolean via: isReit - from: OutputCompanyInformation relation: has_one to: CodeMappingBoolean via: isShellCompany - from: OutputCompanyInformation relation: has_one to: CodeMappingBoolean via: isSpecialPurposeAcquisitionCompany - from: OutputCompanyInformation relation: has_one to: CodeMappingLong via: morningstarIndustryCode - from: OutputCompanyInformation relation: has_one to: CodeMappingLong via: morningstarIndustryGroupCode - from: OutputCompanyInformation relation: has_one to: CodeMappingLong via: morningstarSectorCode - from: OutputCompanyInformation relation: has_one to: CodeMappingLong via: morningstarSuperSectorCode - from: OutputCompanyInformation relation: has_one to: CodeMappingString via: operationStatus - from: OutputCompanyInformation relation: has_one to: CodeMappingBoolean via: isIpo - from: Morningstar.PortfolioAnalysis.Models.Input.AssetClassGroupConfig relation: has_many to: Morningstar.PortfolioAnalysis.Models.Input.AssetClassConfig via: AssetClassConfig - from: Morningstar.PortfolioAnalysis.Models.Input.AssetClassGroupConfigs relation: has_many to: Morningstar.PortfolioAnalysis.Models.Input.AssetClassGroupConfig via: AssetClassGroupConfig - from: OutputProfitability relation: has_one to: CodeMappingString via: currencyCode - from: OutputProfitabilityPerShare relation: has_one to: CodeMappingString via: currencyCode - from: ComfortRangesPayloadResponse relation: has_one to: Ranges via: tooMuchRisk - from: ComfortRangesPayloadResponse relation: has_one to: Ranges via: marginalUpper - from: ComfortRangesPayloadResponse relation: has_one to: Ranges via: okRisk - from: ComfortRangesPayloadResponse relation: has_one to: Ranges via: marginalLower - from: ComfortRangesPayloadResponse relation: has_one to: Ranges via: tooLittleRisk - from: OutputDilutedEnterpriseValueCalculations relation: has_one to: CodeMappingString via: currencyCode - from: InputAssetClassGroupConfigs relation: has_many to: InputAssetClassGroupConfig via: AssetClassGroupConfig - from: Morningstar.PortfolioAnalysis.Models.Output.Performance.IllustrationReturnSecurityItem relation: has_many to: Morningstar.PortfolioAnalysis.Models.Output.DataItem_Morningstar.PortfolioAnalysis.Models.IllustrationReturnTimePeriod_ via: TimePeriods - from: Morningstar.PortfolioAnalysis.Models.Output.Performance.StandardizedAndTaxAdjustedReturnsSecurity relation: has_one to: Morningstar.PortfolioAnalysis.Models.Output.Performance.StandardizedReturns via: StandardizedReturns - from: Morningstar.PortfolioAnalysis.Models.Output.Performance.StandardizedAndTaxAdjustedReturnsSecurity relation: has_one to: Morningstar.PortfolioAnalysis.Models.Output.Performance.AfterTaxReturns via: AfterTaxReturns - from: Morningstar.PortfolioAnalysis.Models.Output.Performance.CalendarYearReturn relation: has_many to: Morningstar.PortfolioAnalysis.Models.Output.DataItem_System.Int32_ via: CalendarYear - from: Morningstar.PortfolioAnalysis.Models.Output.Performance.PerformanceHistory relation: has_one to: Morningstar.PortfolioAnalysis.Models.Output.Performance.PerformanceHistoryItem via: Portfolio - from: Morningstar.PortfolioAnalysis.Models.Output.Performance.PerformanceHistory relation: has_one to: Morningstar.PortfolioAnalysis.Models.Output.Performance.PerformanceHistoryItem via: Benchmark - from: Morningstar.PortfolioAnalysis.Models.Output.Performance.RollingReturnsItem relation: has_many to: Morningstar.PortfolioAnalysis.Models.Output.DataItem_System.String_ via: Data - from: Morningstar.PortfolioAnalysis.Models.Output.Performance.StandardizedReturns relation: has_many to: Morningstar.PortfolioAnalysis.Models.Output.Performance.StandardizedReturnsTimePeriodItem via: TimePeriod - from: Morningstar.PortfolioAnalysis.Models.Output.Performance.RollingReturns relation: has_many to: Morningstar.PortfolioAnalysis.Models.Output.Performance.RollingReturn via: RollingReturn - from: Morningstar.PortfolioAnalysis.Models.Output.Performance.BestWorstTimePeriods relation: has_many to: Morningstar.PortfolioAnalysis.Models.Output.Performance.BestWorstTimePeriod via: BestTimePeriod - from: Morningstar.PortfolioAnalysis.Models.Output.Performance.BestWorstTimePeriods relation: has_many to: Morningstar.PortfolioAnalysis.Models.Output.Performance.BestWorstTimePeriod via: WorstTimePeriod - from: Morningstar.PortfolioAnalysis.Models.Output.Performance.TrailingReturnsItem relation: has_many to: Morningstar.PortfolioAnalysis.Models.Output.DataItem_Morningstar.PortfolioAnalysis.Models.TrailingTimePeriod_ via: TimePeriod - from: Morningstar.PortfolioAnalysis.Models.Output.Performance.NonStdLoadAdjustedReturnsSecurity relation: has_many to: Morningstar.PortfolioAnalysis.Models.Output.DataItem_Morningstar.PortfolioAnalysis.Models.TimePeriod_ via: TimePeriod - from: Morningstar.PortfolioAnalysis.Models.Output.Performance.TrailingReturns relation: has_one to: Morningstar.PortfolioAnalysis.Models.Output.Performance.TrailingReturnsItem via: Portfolio - from: Morningstar.PortfolioAnalysis.Models.Output.Performance.TrailingReturns relation: has_one to: Morningstar.PortfolioAnalysis.Models.Output.Performance.TrailingReturnsItem via: Benchmark - from: Morningstar.PortfolioAnalysis.Models.Output.Performance.NonStdLoadAdjustedReturns relation: has_many to: Morningstar.PortfolioAnalysis.Models.Output.Performance.NonStdLoadAdjustedReturnsSecurity via: Security - from: Morningstar.PortfolioAnalysis.Models.Output.Performance.IllustrationReturns relation: has_many to: Morningstar.PortfolioAnalysis.Models.Output.Performance.IllustrationReturnSecurityItem via: Security - from: Morningstar.PortfolioAnalysis.Models.Output.Performance.SecurityReturns relation: has_one to: Morningstar.PortfolioAnalysis.Models.Output.Performance.NonStdLoadAdjustedReturns via: NonStdLoadAdjustedReturns - from: Morningstar.PortfolioAnalysis.Models.Output.Performance.SecurityReturns relation: has_one to: Morningstar.PortfolioAnalysis.Models.Output.Performance.StandardizedAndTaxAdjustedReturns via: StandardizedAndTaxAdjustedReturns - from: Morningstar.PortfolioAnalysis.Models.Output.Performance.AfterTaxReturns relation: has_many to: Morningstar.PortfolioAnalysis.Models.Output.DataItem_Morningstar.PortfolioAnalysis.Models.TimePeriod_ via: OnDistributionAndSalesOfShares - from: Morningstar.PortfolioAnalysis.Models.Output.Performance.AfterTaxReturns relation: has_many to: Morningstar.PortfolioAnalysis.Models.Output.DataItem_Morningstar.PortfolioAnalysis.Models.TimePeriod_ via: OnDistributionReturn - from: Morningstar.PortfolioAnalysis.Models.Output.Performance.InvestmentActivity relation: has_many to: Morningstar.PortfolioAnalysis.Models.Output.Performance.InvestmentActivityItem via: Portfolio - from: Morningstar.PortfolioAnalysis.Models.Output.Performance.InvestmentActivity relation: has_many to: Morningstar.PortfolioAnalysis.Models.Output.Performance.InvestmentActivityItem via: Benchmark - from: Morningstar.PortfolioAnalysis.Models.Output.Performance.Returns relation: has_one to: Morningstar.PortfolioAnalysis.Models.Output.Performance.BestWorstTimePeriods via: BestWorstTimePeriods - from: Morningstar.PortfolioAnalysis.Models.Output.Performance.Returns relation: has_one to: Morningstar.PortfolioAnalysis.Models.Output.Performance.TrailingReturns via: TrailingReturns - from: Morningstar.PortfolioAnalysis.Models.Output.Performance.Returns relation: has_one to: Morningstar.PortfolioAnalysis.Models.Output.Performance.CalendarYearReturns via: CalendarYearReturn - from: Morningstar.PortfolioAnalysis.Models.Output.Performance.Returns relation: has_one to: Morningstar.PortfolioAnalysis.Models.Output.Performance.RollingReturns via: RollingReturns - from: Morningstar.PortfolioAnalysis.Models.Output.Performance.Returns relation: has_one to: Morningstar.PortfolioAnalysis.Models.Output.Performance.IllustrationReturns via: IllustrationReturns - from: Morningstar.PortfolioAnalysis.Models.Output.Performance.Returns relation: has_one to: Morningstar.PortfolioAnalysis.Models.Output.Performance.PerformanceHistorys via: PerformanceHistorys - from: Morningstar.PortfolioAnalysis.Models.Output.Performance.Returns relation: has_one to: Morningstar.PortfolioAnalysis.Models.Output.Performance.InvestmentActivity via: InvestmentActivity - from: Morningstar.PortfolioAnalysis.Models.Output.Performance.Returns relation: has_one to: Morningstar.PortfolioAnalysis.Models.Output.Performance.SecurityReturns via: SecurityReturns - from: Morningstar.PortfolioAnalysis.Models.Output.Performance.CalendarYearReturns relation: has_one to: Morningstar.PortfolioAnalysis.Models.Output.Performance.CalendarYearReturn via: Portfolio - from: Morningstar.PortfolioAnalysis.Models.Output.Performance.CalendarYearReturns relation: has_one to: Morningstar.PortfolioAnalysis.Models.Output.Performance.CalendarYearReturn via: Benchmark - from: Morningstar.PortfolioAnalysis.Models.Output.Performance.RollingReturn relation: has_one to: Morningstar.PortfolioAnalysis.Models.Output.Performance.RollingReturnsItem via: Portfolio - from: Morningstar.PortfolioAnalysis.Models.Output.Performance.RollingReturn relation: has_one to: Morningstar.PortfolioAnalysis.Models.Output.Performance.RollingReturnsItem via: Benchmark - from: Morningstar.PortfolioAnalysis.Models.Output.Performance.StandardizedAndTaxAdjustedReturns relation: has_many to: Morningstar.PortfolioAnalysis.Models.Output.Performance.StandardizedAndTaxAdjustedReturnsSecurity via: Security - from: Morningstar.PortfolioAnalysis.Models.Output.Performance.PerformanceHistoryItem relation: has_many to: Morningstar.PortfolioAnalysis.Models.Output.DataItem_System.Int32_ via: Data - from: Morningstar.PortfolioAnalysis.Models.Output.Performance.PerformanceHistorys relation: has_many to: Morningstar.PortfolioAnalysis.Models.Output.Performance.PerformanceHistory via: PerformanceHistory - from: OutputAggregationFinancialStatementsSimpleSummation relation: has_one to: CodeMappingString via: currencyCode - from: ResponseMessage relation: has_many to: InvestmentLookupInputDetails via: investments - from: ResponseMessage relation: has_one to: MessageType via: type - from: ResponseMetadataWithMessages relation: has_many to: ResponseMessage via: messages - from: OutputCompanyAddress relation: has_one to: CodeMappingString via: addressType - from: OutputCompanyAddress relation: has_one to: CodeMappingString via: countryCode - from: OutputCompanyAddress relation: has_one to: CodeMappingString via: languageCode - from: SectionRiskToleranceScorePayload relation: has_many to: ParagraphReport via: paragraphs - from: SectionRiskToleranceScorePayload relation: has_one to: ComparedToInvestorsPayload via: payloadComparedToInvestors - from: SectionRiskGroupPayload relation: has_many to: ParagraphReport via: paragraphs - from: SectionRiskGroupPayload relation: has_one to: RiskGroupPayload via: payloadRiskGroup - from: YourDifferencesPayload relation: has_many to: QuestionReport via: questions - from: ComparedToInvestorsPayload relation: has_many to: RiskGroupLabel via: riskGroupLabels - from: SuitabilityScorePayload relation: has_many to: InvestmentPolicyReport via: investmentPolicies - from: QuestionReport relation: has_many to: OptionReport via: options - from: QuestionReport relation: has_many to: DifferencePayload via: difference - from: SectionPayload relation: has_many to: ParagraphReport via: paragraphs - from: ReportResponsePayload relation: has_one to: SectionPayload via: sectionRiskTolerance - from: ReportResponsePayload relation: has_one to: SectionPayload via: sectionUsingYourProfile - from: ReportResponsePayload relation: has_one to: SectionRiskToleranceScorePayload via: sectionRiskToleranceScore - from: ReportResponsePayload relation: has_one to: SectionRiskGroupPayload via: sectionRiskGroup - from: ReportResponsePayload relation: has_one to: SectionYourDifferencesPayload via: sectionYourDifferences - from: ReportResponsePayload relation: has_one to: SectionSuitabilityScorePayload via: sectionSuitabilityScore - from: ReportResponsePayload relation: has_one to: SectionPayload via: sectionFooter - from: InvestmentPolicyReport relation: has_many to: AssetClassPayload via: assetClass - from: SectionSuitabilityScorePayload relation: has_many to: ParagraphReport via: paragraphs - from: SectionSuitabilityScorePayload relation: has_one to: SuitabilityScorePayload via: payloadSuitabilityScore - from: RiskGroupPayload relation: has_one to: MixInvestmentsHeader via: headers - from: RiskGroupPayload relation: has_many to: InvestmentPortfolio via: mixInvestmentsPortfolio - from: SectionYourDifferencesPayload relation: has_many to: ParagraphReport via: paragraphs - from: SectionYourDifferencesPayload relation: has_one to: YourDifferencesPayload via: payloadYourDifferences - from: OutputExecutiveStockAndOptionGrants relation: has_one to: CodeMappingString via: currencyCode - from: OutputExecutiveOutstandingStockAndOptionAwards relation: has_one to: CodeMappingString via: currencyCode - from: OutputExecutiveOptionsExercisedAndStockVested relation: has_one to: CodeMappingString via: currencyCode - from: OutputExecutiveOfficersCompensation relation: has_one to: CodeMappingBoolean via: isRestated - from: OutputExecutivePayRatioInformation relation: has_one to: CodeMappingString via: currencyCode - from: OutputCapitalRepayment relation: has_one to: CodeMappingString via: currencyCode - from: OutputRightsIssue relation: has_one to: CodeMappingString via: currencyCode - from: OutputStockSplit relation: has_one to: CodeMappingBoolean via: isFunctionalStockSplit - from: OutputCashDividend relation: has_one to: CodeMappingString via: currencyCode - from: OutputCashDividend relation: has_one to: CodeMappingShort via: frequency - from: OutputIncomeStatementCalculations relation: has_one to: CodeMappingString via: currencyCode - from: OutputIncomeStatementCalculationsPerShare relation: has_one to: CodeMappingString via: currencyCode - from: OutputEarningReport relation: has_one to: CodeMappingString via: currencyCode - from: OutputEarningReport relation: has_one to: CodeMappingBoolean via: isBestKnown - from: OutputEarningReport relation: has_one to: CodeMappingShort via: isCalculatedOrCopy - from: OutputEarningReport relation: has_one to: CodeMappingBoolean via: isConsolidated - from: OutputEarningReport relation: has_one to: CodeMappingBoolean via: isFiscalYearEndChange - from: OutputEarningReport relation: has_one to: CodeMappingBoolean via: isIncomplete - from: OutputEarningReport relation: has_one to: CodeMappingBoolean via: isIrregularPeriod - from: OutputEarningReport relation: has_one to: CodeMappingString via: templateCode - from: OutputBalanceSheetCalculations relation: has_one to: CodeMappingString via: currencyCode - from: OutputCashFlowCalculations relation: has_one to: CodeMappingString via: currencyCode - from: OutputCashFlowCalculationsPerShare relation: has_one to: CodeMappingString via: currencyCode - from: OutputIncomeStatement relation: has_one to: CodeMappingString via: currencyCode - from: OutputIncomeStatement relation: has_one to: CodeMappingBoolean via: isBestKnown - from: OutputIncomeStatement relation: has_one to: CodeMappingLong via: isCalculatedOrCopy - from: OutputIncomeStatement relation: has_one to: CodeMappingBoolean via: isConsolidated - from: OutputIncomeStatement relation: has_one to: CodeMappingBoolean via: isFiscalYearEndChange - from: OutputIncomeStatement relation: has_one to: CodeMappingBoolean via: isIncomplete notes: Relationship rows are schema-containment edges (property $ref = has_one, array items $ref = has_many) aggregated provider-wide; identifiers are Morningstar SecId/PerformanceId/portfolio ids rather than prefixed object ids.