Mostrar resposta bruta
{
"ok": true,
"evaluation": {
"engine_version": "2026-03-07-v5",
"score": 68.7999999999999971578290569595992565155029296875,
"health_score": 68.7999999999999971578290569595992565155029296875,
"status": "Good",
"status_key": "good",
"count": 10,
"weighted_score": 0.95999999999999996447286321199499070644378662109375,
"max_position_weight": 10,
"max_position_ticker": "JNJ",
"effective_positions": 10,
"weighted_beta": 0.419999999999999984456877655247808434069156646728515625,
"signal_mix": {
"buy": 30,
"hold": 70,
"sell": 0
},
"trend_alignment_pct": 30,
"trend_negative_pct": 40,
"weighted_grade_score": 3.899999999999999911182158029987476766109466552734375,
"weighted_dividend_score": 4.79999999999999982236431605997495353221893310546875,
"top_sector": "Consumer Defensive",
"top_sector_weight": 30,
"score_components": {
"signal": 69.099999999999994315658113919198513031005859375,
"diversification": 100,
"risk": 88.099999999999994315658113919198513031005859375,
"quality": 60.39999999999999857891452847979962825775146484375,
"trend": 41,
"macro": 0.200000000000000011102230246251565404236316680908203125
},
"trajectory": {
"direction": "stable",
"confidence": 3.79999999999999982236431605997495353221893310546875,
"summary": "Mixed signals"
},
"context_alignment": {
"score": 0.200000000000000011102230246251565404236316680908203125,
"coverage_pct": 100,
"matched_weight_pct": 100,
"top_sector_view": null
},
"forward_confidence": 62.7999999999999971578290569595992565155029296875,
"exposure_plan": {
"target_invested_pct": 58.10000000000000142108547152020037174224853515625,
"target_cash_pct": 41.89999999999999857891452847979962825775146484375,
"min_invested_pct": 45.7000000000000028421709430404007434844970703125,
"max_invested_pct": 70.5,
"min_cash_pct": 29.5,
"max_cash_pct": 54.2999999999999971578290569595992565155029296875,
"base_invested_pct": 55,
"stance": "balanced",
"deployment_speed": "gradual",
"confidence": 62.39999999999999857891452847979962825775146484375,
"market_regime_score": 50,
"market_regime_code": "",
"reason_codes": [
"positive_signal_balance",
"negative_trend_pressure"
],
"components": {
"market_adjustment": 0,
"signal_adjustment": 5.25,
"trend_adjustment": -1,
"sell_penalty": 0,
"concentration_penalty": 0
}
},
"holding_analysis": [
{
"ticker": "JNJ",
"weight_pct": 10,
"score": 2.660000000000000142108547152020037174224853515625,
"signal": "BUY",
"sector": "Healthcare",
"profile": "defensive",
"lens": "defensive_quality",
"classification_confidence": 74,
"classification_quality": "usable",
"classification_ambiguous": false,
"classification_reason_codes": [
"defensive_sector",
"beta_supports_defensive"
],
"factor_evidence_confidence": 0,
"factor_evidence_score": null,
"factor_match_count": 0,
"factor_required_count": 4,
"factor_has_sufficient_evidence": false,
"factor_matched_factors": [],
"top_factor": null,
"top_factor_direction": null,
"lens_confidence": 74
},
{
"ticker": "PG",
"weight_pct": 10,
"score": 0,
"signal": "HOLD",
"sector": "Consumer Defensive",
"profile": "core",
"lens": "core_quality",
"classification_confidence": 28,
"classification_quality": "weak",
"classification_ambiguous": false,
"classification_reason_codes": [
"fallback_core"
],
"factor_evidence_confidence": 0,
"factor_evidence_score": null,
"factor_match_count": 0,
"factor_required_count": 5,
"factor_has_sufficient_evidence": false,
"factor_matched_factors": [],
"top_factor": null,
"top_factor_direction": null,
"lens_confidence": 28
},
{
"ticker": "KO",
"weight_pct": 10,
"score": 5.79999999999999982236431605997495353221893310546875,
"signal": "BUY",
"sector": "Consumer Defensive",
"profile": "core",
"lens": "core_quality",
"classification_confidence": 28,
"classification_quality": "weak",
"classification_ambiguous": false,
"classification_reason_codes": [
"fallback_core"
],
"factor_evidence_confidence": 0,
"factor_evidence_score": null,
"factor_match_count": 0,
"factor_required_count": 5,
"factor_has_sufficient_evidence": false,
"factor_matched_factors": [],
"top_factor": null,
"top_factor_direction": null,
"lens_confidence": 28
},
{
"ticker": "PEP",
"weight_pct": 10,
"score": -1.9199999999999999289457264239899814128875732421875,
"signal": "HOLD",
"sector": "Consumer Defensive",
"profile": "turnaround",
"lens": "recovery",
"classification_confidence": 68,
"classification_quality": "usable",
"classification_ambiguous": false,
"classification_reason_codes": [
"negative_medium_score"
],
"factor_evidence_confidence": 0,
"factor_evidence_score": null,
"factor_match_count": 0,
"factor_required_count": 5,
"factor_has_sufficient_evidence": false,
"factor_matched_factors": [],
"top_factor": null,
"top_factor_direction": null,
"lens_confidence": 68
},
{
"ticker": "MCD",
"weight_pct": 10,
"score": -1.6699999999999999289457264239899814128875732421875,
"signal": "HOLD",
"sector": "Consumer Cyclical",
"profile": "turnaround",
"lens": "recovery",
"classification_confidence": 68,
"classification_quality": "usable",
"classification_ambiguous": false,
"classification_reason_codes": [
"negative_medium_score"
],
"factor_evidence_confidence": 0,
"factor_evidence_score": null,
"factor_match_count": 0,
"factor_required_count": 5,
"factor_has_sufficient_evidence": false,
"factor_matched_factors": [],
"top_factor": null,
"top_factor_direction": null,
"lens_confidence": 68
},
{
"ticker": "XOM",
"weight_pct": 10,
"score": 0,
"signal": "HOLD",
"sector": "Energy",
"profile": "cyclical",
"lens": "macro_cyclical",
"classification_confidence": 64,
"classification_quality": "usable",
"classification_ambiguous": false,
"classification_reason_codes": [
"cyclical_sector"
],
"factor_evidence_confidence": 0,
"factor_evidence_score": null,
"factor_match_count": 0,
"factor_required_count": 5,
"factor_has_sufficient_evidence": false,
"factor_matched_factors": [],
"top_factor": null,
"top_factor_direction": null,
"lens_confidence": 64
},
{
"ticker": "CVX",
"weight_pct": 10,
"score": 0,
"signal": "HOLD",
"sector": "Energy",
"profile": "cyclical",
"lens": "macro_cyclical",
"classification_confidence": 64,
"classification_quality": "usable",
"classification_ambiguous": false,
"classification_reason_codes": [
"cyclical_sector"
],
"factor_evidence_confidence": 0,
"factor_evidence_score": null,
"factor_match_count": 0,
"factor_required_count": 5,
"factor_has_sufficient_evidence": false,
"factor_matched_factors": [],
"top_factor": null,
"top_factor_direction": null,
"lens_confidence": 64
},
{
"ticker": "ABBV",
"weight_pct": 10,
"score": 7.03000000000000024868995751603506505489349365234375,
"signal": "BUY",
"sector": "Healthcare",
"profile": "defensive",
"lens": "defensive_quality",
"classification_confidence": 74,
"classification_quality": "usable",
"classification_ambiguous": false,
"classification_reason_codes": [
"defensive_sector",
"beta_supports_defensive"
],
"factor_evidence_confidence": 0,
"factor_evidence_score": null,
"factor_match_count": 0,
"factor_required_count": 4,
"factor_has_sufficient_evidence": false,
"factor_matched_factors": [],
"top_factor": null,
"top_factor_direction": null,
"lens_confidence": 74
},
{
"ticker": "MMM",
"weight_pct": 10,
"score": -0.39000000000000001332267629550187848508358001708984375,
"signal": "HOLD",
"sector": "Industrials",
"profile": "cyclical",
"lens": "macro_cyclical",
"classification_confidence": 74,
"classification_quality": "usable",
"classification_ambiguous": false,
"classification_reason_codes": [
"cyclical_sector",
"beta_supports_cyclical"
],
"factor_evidence_confidence": 0,
"factor_evidence_score": null,
"factor_match_count": 0,
"factor_required_count": 5,
"factor_has_sufficient_evidence": false,
"factor_matched_factors": [],
"top_factor": null,
"top_factor_direction": null,
"lens_confidence": 74
},
{
"ticker": "T",
"weight_pct": 10,
"score": -1.95999999999999996447286321199499070644378662109375,
"signal": "HOLD",
"sector": "Communication Services",
"profile": "income",
"lens": "income",
"classification_confidence": 86,
"classification_quality": "strong",
"classification_ambiguous": false,
"classification_reason_codes": [
"high_dividend_score",
"high_dgps"
],
"factor_evidence_confidence": 0,
"factor_evidence_score": null,
"factor_match_count": 0,
"factor_required_count": 3,
"factor_has_sufficient_evidence": false,
"factor_matched_factors": [],
"top_factor": null,
"top_factor_direction": null,
"lens_confidence": 86
}
],
"coverage": {
"beta_pct": 100,
"grade_pct": 90,
"dividend_pct": 100,
"trend_pct": 100,
"macro_pct": 100
},
"diagnostics": {
"risk_level": "low",
"risk_profile": {
"target_max_weight": 0.200000000000000011102230246251565404236316680908203125,
"target_sector_weight": 0.299999999999999988897769753748434595763683319091796875,
"target_sell_weight": 0.1000000000000000055511151231257827021181583404541015625,
"target_effective_positions": 10,
"beta_band_min": 0.59999999999999997779553950749686919152736663818359375,
"beta_band_max": 1
},
"profile_mix": {
"cyclical": 30,
"defensive": 20,
"core": 20,
"turnaround": 20,
"income": 10
},
"lens_mix": {
"macro_cyclical": 30,
"defensive_quality": 20,
"core_quality": 20,
"recovery": 20,
"income": 10
},
"classification": {
"avg_confidence": 62.7999999999999971578290569595992565155029296875,
"quality": "usable",
"low_confidence_weight_pct": 20,
"ambiguous_weight_pct": 0,
"weak_count": 2,
"low_confidence_tickers": [
"PG",
"KO"
]
},
"factor_evidence": {
"avg_confidence": 0,
"quality": "weak",
"low_confidence_weight_pct": 100,
"missing_weight_pct": 100,
"aligned_weight_pct": 0,
"avg_lens_confidence": 62.7999999999999971578290569595992565155029296875
},
"sector_context": {
"scores": [],
"top_sector": "Consumer Defensive",
"top_sector_score": null,
"top_sector_detail": null
},
"market_regime": {
"selected_code": "",
"mode": "missing",
"score": null,
"weights_pct": {
"OSL": 0,
"US": 0,
"GLOBAL": 0
},
"selected_regime": null
},
"data_gaps": [
"Missing grade data for part of the portfolio",
"Missing lens-specific factor evidence for large parts of the portfolio",
"Weak factor evidence confidence reduces forward-looking reliability"
]
},
"insights": [
{
"id": "weighted_score",
"value": 0.95999999999999996447286321199499070644378662109375,
"tone": "warn",
"status_key": "good"
},
{
"id": "target_invested_pct",
"value": 58.10000000000000142108547152020037174224853515625,
"cash_pct": 41.89999999999999857891452847979962825775146484375,
"stance": "balanced",
"confidence": 62.39999999999999857891452847979962825775146484375,
"tone": "warn"
},
{
"id": "effective_positions",
"value": 10,
"tone": "good"
},
{
"id": "largest_position",
"value": 10,
"ticker": "JNJ",
"tone": "good"
},
{
"id": "top_sector",
"value": 30,
"sector": "Consumer Defensive",
"tone": "good"
},
{
"id": "signal_mix",
"buy": 30,
"hold": 70,
"sell": 0,
"tone": "good"
},
{
"id": "portfolio_trajectory",
"value": "stable",
"tone": "warn",
"confidence": 3.79999999999999982236431605997495353221893310546875
},
{
"id": "weighted_beta",
"value": 0.419999999999999984456877655247808434069156646728515625,
"tone": "good"
},
{
"id": "macro_alignment",
"value": 0.200000000000000011102230246251565404236316680908203125,
"tone": "risk"
},
{
"id": "lens_confidence",
"value": 62.7999999999999971578290569595992565155029296875,
"tone": "warn"
}
],
"suggestions": [
{
"tone": "warn",
"code": "diversify_sector",
"sector": "Consumer Defensive",
"weight_pct": 30
},
{
"tone": "risk",
"code": "hold_higher_cash_buffer",
"cash_pct": 41.89999999999999857891452847979962825775146484375,
"invested_pct": 58.10000000000000142108547152020037174224853515625,
"deployment_speed": "gradual"
},
{
"tone": "warn",
"code": "expand_factor_coverage",
"missing_weight_pct": 100
},
{
"tone": "risk",
"code": "review_weak_positions",
"tickers": [
"T",
"PEP",
"MCD"
]
}
],
"portfolio_input": {
"cash_balance": 0,
"holdings_value": 100000,
"total_value": 100000,
"cash_pct": 0,
"invested_pct": 100,
"missing_tickers": []
}
}
}