生レスポンスを表示
{
"ok": true,
"evaluation": {
"engine_version": "2026-03-07-v5",
"score": 60.2999999999999971578290569595992565155029296875,
"health_score": 60.2999999999999971578290569595992565155029296875,
"status": "Neutral",
"status_key": "neutral",
"count": 10,
"weighted_score": 0.299999999999999988897769753748434595763683319091796875,
"max_position_weight": 10,
"max_position_ticker": "EQNR.OL",
"effective_positions": 10,
"weighted_beta": 0.25,
"signal_mix": {
"buy": 30,
"hold": 40,
"sell": 30
},
"trend_alignment_pct": 40,
"trend_negative_pct": 40,
"weighted_grade_score": 3.79999999999999982236431605997495353221893310546875,
"weighted_dividend_score": 3.060000000000000053290705182007513940334320068359375,
"top_sector": "Energy",
"top_sector_weight": 20,
"score_components": {
"signal": 56,
"diversification": 100,
"risk": 64.599999999999994315658113919198513031005859375,
"quality": 50.60000000000000142108547152020037174224853515625,
"trend": 46,
"macro": 0.1000000000000000055511151231257827021181583404541015625
},
"trajectory": {
"direction": "stable",
"confidence": 11,
"summary": "Mixed signals"
},
"context_alignment": {
"score": 0.1000000000000000055511151231257827021181583404541015625,
"coverage_pct": 100,
"matched_weight_pct": 100,
"top_sector_view": null
},
"forward_confidence": 50.7999999999999971578290569595992565155029296875,
"exposure_plan": {
"target_invested_pct": 70,
"target_cash_pct": 30,
"min_invested_pct": 56.89999999999999857891452847979962825775146484375,
"max_invested_pct": 83.099999999999994315658113919198513031005859375,
"min_cash_pct": 16.89999999999999857891452847979962825775146484375,
"max_cash_pct": 43.10000000000000142108547152020037174224853515625,
"base_invested_pct": 72,
"stance": "balanced",
"deployment_speed": "gradual",
"confidence": 54.2000000000000028421709430404007434844970703125,
"market_regime_score": 50,
"market_regime_code": "",
"reason_codes": [
"negative_trend_pressure",
"high_sell_weight",
"low_forward_confidence"
],
"components": {
"market_adjustment": 0,
"signal_adjustment": 1.6599999999999999200639422269887290894985198974609375,
"trend_adjustment": 0,
"sell_penalty": 4.5,
"concentration_penalty": 0
}
},
"holding_analysis": [
{
"ticker": "EQNR.OL",
"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": "DNB.OL",
"weight_pct": 10,
"score": 0.01000000000000000020816681711721685132943093776702880859375,
"signal": "HOLD",
"sector": "Financial Services",
"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": "NHY.OL",
"weight_pct": 10,
"score": -4.30999999999999960920149533194489777088165283203125,
"signal": "SELL",
"sector": "Basic Materials",
"profile": "turnaround",
"lens": "recovery",
"classification_confidence": 68,
"classification_quality": "usable",
"classification_ambiguous": true,
"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": "MOWI.OL",
"weight_pct": 10,
"score": 4.019999999999999573674358543939888477325439453125,
"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": "TEL.OL",
"weight_pct": 10,
"score": -2.390000000000000124344978758017532527446746826171875,
"signal": "SELL",
"sector": "Communication Services",
"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": "KOG.OL",
"weight_pct": 10,
"score": 2.29000000000000003552713678800500929355621337890625,
"signal": "BUY",
"sector": "Industrials",
"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": "AKRBP.OL",
"weight_pct": 10,
"score": 5.3300000000000000710542735760100185871124267578125,
"signal": "BUY",
"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": "YAR.OL",
"weight_pct": 10,
"score": -2.95000000000000017763568394002504646778106689453125,
"signal": "SELL",
"sector": "Basic Materials",
"profile": "turnaround",
"lens": "recovery",
"classification_confidence": 68,
"classification_quality": "usable",
"classification_ambiguous": true,
"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": "ORK.OL",
"weight_pct": 10,
"score": 1.850000000000000088817841970012523233890533447265625,
"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": "STB.OL",
"weight_pct": 10,
"score": -0.82999999999999996003197111349436454474925994873046875,
"signal": "HOLD",
"sector": "Financial Services",
"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
}
],
"coverage": {
"beta_pct": 100,
"grade_pct": 90,
"dividend_pct": 100,
"trend_pct": 100,
"macro_pct": 100
},
"diagnostics": {
"risk_level": "medium",
"risk_profile": {
"target_max_weight": 0.299999999999999988897769753748434595763683319091796875,
"target_sector_weight": 0.40000000000000002220446049250313080847263336181640625,
"target_sell_weight": 0.200000000000000011102230246251565404236316680908203125,
"target_effective_positions": 8,
"beta_band_min": 0.75,
"beta_band_max": 1.25
},
"profile_mix": {
"core": 40,
"cyclical": 30,
"turnaround": 30
},
"lens_mix": {
"core_quality": 40,
"macro_cyclical": 30,
"recovery": 30
},
"classification": {
"avg_confidence": 50.7999999999999971578290569595992565155029296875,
"quality": "weak",
"low_confidence_weight_pct": 40,
"ambiguous_weight_pct": 20,
"weak_count": 4,
"low_confidence_tickers": [
"DNB.OL",
"MOWI.OL",
"ORK.OL",
"STB.OL"
]
},
"factor_evidence": {
"avg_confidence": 0,
"quality": "weak",
"low_confidence_weight_pct": 100,
"missing_weight_pct": 100,
"aligned_weight_pct": 0,
"avg_lens_confidence": 50.7999999999999971578290569595992565155029296875
},
"sector_context": {
"scores": [],
"top_sector": "Energy",
"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",
"Weak stock-type classification confidence 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.299999999999999988897769753748434595763683319091796875,
"tone": "warn",
"status_key": "neutral"
},
{
"id": "target_invested_pct",
"value": 70,
"cash_pct": 30,
"stance": "balanced",
"confidence": 54.2000000000000028421709430404007434844970703125,
"tone": "risk"
},
{
"id": "effective_positions",
"value": 10,
"tone": "good"
},
{
"id": "largest_position",
"value": 10,
"ticker": "EQNR.OL",
"tone": "good"
},
{
"id": "top_sector",
"value": 20,
"sector": "Energy",
"tone": "good"
},
{
"id": "signal_mix",
"buy": 30,
"hold": 40,
"sell": 30,
"tone": "risk"
},
{
"id": "portfolio_trajectory",
"value": "stable",
"tone": "warn",
"confidence": 11
},
{
"id": "weighted_beta",
"value": 0.25,
"tone": "good"
},
{
"id": "macro_alignment",
"value": 0.1000000000000000055511151231257827021181583404541015625,
"tone": "risk"
},
{
"id": "lens_confidence",
"value": 50.7999999999999971578290569595992565155029296875,
"tone": "risk"
}
],
"suggestions": [
{
"tone": "risk",
"code": "lower_sell_exposure",
"sell_pct": 30
},
{
"tone": "risk",
"code": "hold_higher_cash_buffer",
"cash_pct": 30,
"invested_pct": 70,
"deployment_speed": "gradual"
},
{
"tone": "warn",
"code": "expand_factor_coverage",
"missing_weight_pct": 100
},
{
"tone": "warn",
"code": "lower_forward_confidence",
"lens_confidence": 50.7999999999999971578290569595992565155029296875
},
{
"tone": "risk",
"code": "review_weak_positions",
"tickers": [
"NHY.OL",
"YAR.OL",
"TEL.OL"
]
}
],
"portfolio_input": {
"cash_balance": 0,
"holdings_value": 100000,
"total_value": 100000,
"cash_pct": 0,
"invested_pct": 100,
"missing_tickers": []
}
}
}