{"ok":true,"status":"READY","readonly":true,"version":"TSC Portfolio Center V7.1.1-R3 Monthly Report Fast Readonly Summary","monthly_report_version":"V7.1.1-R3","checkpoint":"TSC Portfolio Center V7.1.1-R3 Monthly Report Fast Readonly Summary Adapter","source_checkpoint":"TSC Portfolio Center V6.7.6 Monthly Report contract, fast readonly adapter","lts_reference":"V7.0.0 Stable Release Candidate OK","checked_at_utc":"2026-07-16T19:28:04Z","monthly_report_readiness":{"status":"READY","fast_summary_adapter_active":true,"legacy_monthly_aggregation_called":false,"canonical_contract_preserved":true,"db_count_readonly_status":"READY"},"report":{"report_month":"2026-07","report_month_label":"2026-07","report_status":"READY","report_score":98,"report_label":"SEHR_GUT","generated_at_utc":"2026-07-16T19:28:04Z","kpis":{"portfolio_total_value_eur":11687.1149,"position_market_value_eur":11687.1149,"cash_total_eur":0.0,"free_cash_now_eur":0.0,"unrealized_pl_eur":220.3364,"unrealized_pl_pct":1.9215,"top3_concentration_pct":null,"target_sum_pct":null,"underweight_count":null,"overweight_count":null,"dividend_forecast_year_eur":null,"dividend_forecast_monthly_eur":null,"dividend_yield_pct":null,"monthly_net_after_budget_eur":null,"projected_cash_12m_eur":null,"buy_candidate_count":null,"trim_candidate_count":null,"proposed_buy_total_eur":null,"proposed_trim_total_eur":null,"cash_coverage_pct":null,"quality_score":98,"quality_label":"SEHR_GUT"},"action_items":[{"title":"Fast monthly summary active","status":"READY","description":"Legacy Monthly Aggregation wird für diesen Summary-Endpunkt nicht mehr ausgeführt.","readonly":true,"source":"V7.1.1-R3"}],"sections":[{"title":"Portfolio","status":"READY","summary":{"portfolio_total_value_eur":11687.1149,"position_market_value_eur":11687.1149,"unrealized_pl_eur":220.3364,"unrealized_pl_pct":1.9215},"readonly":true,"source":"/portfolio/api/unified-dashboard/status"},{"title":"Zielgewichtung","status":"READY_FAST_CONTRACT","summary":{"target_sum_pct":null,"underweight_count":null,"overweight_count":null},"readonly":true,"source":"fast_summary_adapter"},{"title":"Dividenden","status":"READY_FAST_CONTRACT","summary":{"dividend_forecast_year_eur":null,"dividend_forecast_monthly_eur":null,"dividend_yield_pct":null},"readonly":true,"source":"fast_summary_adapter"},{"title":"Cashflow","status":"READY_FAST_CONTRACT","summary":{"free_cash_now_eur":0.0,"monthly_net_after_budget_eur":null,"projected_cash_12m_eur":null},"readonly":true,"source":"fast_summary_adapter"},{"title":"Rebalancing","status":"READY_FAST_CONTRACT","summary":{"buy_candidate_count":null,"trim_candidate_count":null,"proposed_buy_total_eur":null,"proposed_trim_total_eur":null},"readonly":true,"source":"fast_summary_adapter"},{"title":"System Health","status":"OK","summary":{"quality_score":98,"quality_label":"SEHR_GUT","counts":{"portfolio_transactions":143,"portfolio_cash":0,"portfolio_positions":786,"portfolio_price_cache":731,"portfolio_overview_snapshots":46,"portfolio_import_batches":3,"portfolio_import_rows":7,"portfolio_transaction_drafts":12,"portfolio_settings":547}},"readonly":true,"source":"/portfolio/api/quality/report"}],"module_statuses":[{"title":"Portfolio","status":"READY","source":"/portfolio/api/unified-dashboard/status","readonly":true,"duration_seconds":0.096023},{"title":"Zielgewichtung","status":"READY_FAST_CONTRACT","source":"fast_summary_adapter","readonly":true,"duration_seconds":null},{"title":"Dividenden","status":"READY_FAST_CONTRACT","source":"fast_summary_adapter","readonly":true,"duration_seconds":null},{"title":"Cashflow","status":"READY_FAST_CONTRACT","source":"fast_summary_adapter","readonly":true,"duration_seconds":null},{"title":"Rebalancing","status":"READY_FAST_CONTRACT","source":"fast_summary_adapter","readonly":true,"duration_seconds":null},{"title":"System Health","status":"REVIEW","source":"/portfolio/api/stable-lock/status","readonly":true,"duration_seconds":0.643924}]},"kpis":{"portfolio_total_value_eur":11687.1149,"position_market_value_eur":11687.1149,"cash_total_eur":0.0,"free_cash_now_eur":0.0,"unrealized_pl_eur":220.3364,"unrealized_pl_pct":1.9215,"top3_concentration_pct":null,"target_sum_pct":null,"underweight_count":null,"overweight_count":null,"dividend_forecast_year_eur":null,"dividend_forecast_monthly_eur":null,"dividend_yield_pct":null,"monthly_net_after_budget_eur":null,"projected_cash_12m_eur":null,"buy_candidate_count":null,"trim_candidate_count":null,"proposed_buy_total_eur":null,"proposed_trim_total_eur":null,"cash_coverage_pct":null,"quality_score":98,"quality_label":"SEHR_GUT"},"sections":[{"title":"Portfolio","status":"READY","summary":{"portfolio_total_value_eur":11687.1149,"position_market_value_eur":11687.1149,"unrealized_pl_eur":220.3364,"unrealized_pl_pct":1.9215},"readonly":true,"source":"/portfolio/api/unified-dashboard/status"},{"title":"Zielgewichtung","status":"READY_FAST_CONTRACT","summary":{"target_sum_pct":null,"underweight_count":null,"overweight_count":null},"readonly":true,"source":"fast_summary_adapter"},{"title":"Dividenden","status":"READY_FAST_CONTRACT","summary":{"dividend_forecast_year_eur":null,"dividend_forecast_monthly_eur":null,"dividend_yield_pct":null},"readonly":true,"source":"fast_summary_adapter"},{"title":"Cashflow","status":"READY_FAST_CONTRACT","summary":{"free_cash_now_eur":0.0,"monthly_net_after_budget_eur":null,"projected_cash_12m_eur":null},"readonly":true,"source":"fast_summary_adapter"},{"title":"Rebalancing","status":"READY_FAST_CONTRACT","summary":{"buy_candidate_count":null,"trim_candidate_count":null,"proposed_buy_total_eur":null,"proposed_trim_total_eur":null},"readonly":true,"source":"fast_summary_adapter"},{"title":"System Health","status":"OK","summary":{"quality_score":98,"quality_label":"SEHR_GUT","counts":{"portfolio_transactions":143,"portfolio_cash":0,"portfolio_positions":786,"portfolio_price_cache":731,"portfolio_overview_snapshots":46,"portfolio_import_batches":3,"portfolio_import_rows":7,"portfolio_transaction_drafts":12,"portfolio_settings":547}},"readonly":true,"source":"/portfolio/api/quality/report"}],"action_items":[{"title":"Fast monthly summary active","status":"READY","description":"Legacy Monthly Aggregation wird für diesen Summary-Endpunkt nicht mehr ausgeführt.","readonly":true,"source":"V7.1.1-R3"}],"report_score":98,"module_statuses":[{"title":"Portfolio","status":"READY","source":"/portfolio/api/unified-dashboard/status","readonly":true,"duration_seconds":0.096023},{"title":"Zielgewichtung","status":"READY_FAST_CONTRACT","source":"fast_summary_adapter","readonly":true,"duration_seconds":null},{"title":"Dividenden","status":"READY_FAST_CONTRACT","source":"fast_summary_adapter","readonly":true,"duration_seconds":null},{"title":"Cashflow","status":"READY_FAST_CONTRACT","source":"fast_summary_adapter","readonly":true,"duration_seconds":null},{"title":"Rebalancing","status":"READY_FAST_CONTRACT","source":"fast_summary_adapter","readonly":true,"duration_seconds":null},{"title":"System Health","status":"REVIEW","source":"/portfolio/api/stable-lock/status","readonly":true,"duration_seconds":0.643924}],"counts":{"portfolio_transactions":143,"portfolio_cash":0,"portfolio_positions":786,"portfolio_price_cache":731,"portfolio_overview_snapshots":46,"portfolio_import_batches":3,"portfolio_import_rows":7,"portfolio_transaction_drafts":12,"portfolio_settings":547},"quality_summary":{"ok":true,"status":"OK","quality_score":98,"quality_label":"SEHR_GUT","error_count":2,"warning_count":null,"info_count":null},"current_system":{"ok":true,"status":"READY","module_statuses":[{"title":"Portfolio","status":"READY","source":"/portfolio/api/unified-dashboard/status","readonly":true,"duration_seconds":0.096023},{"title":"Zielgewichtung","status":"READY_FAST_CONTRACT","source":"fast_summary_adapter","readonly":true,"duration_seconds":null},{"title":"Dividenden","status":"READY_FAST_CONTRACT","source":"fast_summary_adapter","readonly":true,"duration_seconds":null},{"title":"Cashflow","status":"READY_FAST_CONTRACT","source":"fast_summary_adapter","readonly":true,"duration_seconds":null},{"title":"Rebalancing","status":"READY_FAST_CONTRACT","source":"fast_summary_adapter","readonly":true,"duration_seconds":null},{"title":"System Health","status":"REVIEW","source":"/portfolio/api/stable-lock/status","readonly":true,"duration_seconds":0.643924}],"insights":null,"target_planner":null,"dividend_forecast":null,"cashflow":null,"rebalancing":null,"system_health":{"quality_report":{"ok":true,"status":"OK","readonly":true,"driver":"psycopg","version":"TSC Portfolio Center V6.4.2 Portfolio Data Quality Checks","data_quality_version":"V6.4.2","quality_score":98,"quality_label":"SEHR_GUT","severity_counts":{"ERROR":0,"WARNING":0,"INFO":2,"OK":0},"category_counts":{"cash":1,"prices":1},"issue_count":2,"issues":[{"severity":"INFO","category":"cash","code":"NO_ACTIVE_CASH_ROWS","title":"Keine aktiven Cash-Zeilen gefunden","message":"Die aktive Cash-Tabelle ist leer oder wurde noch nicht aufgebaut.","action_href":"/portfolio/rebuild","details":{}},{"severity":"INFO","category":"prices","code":"STALE_PRICE_CACHE_ROWS","title":"Veraltete Kurse","message":"529 Kurszeile(n) sind älter als 7 Tage.","action_href":"/portfolio/prices","details":{"stale_rows":529,"threshold_days":7,"sample":[{"asset_key":"ALIBABA","age_days":15.24,"price_eur":84.0235,"timestamp":"2026-07-01T15:38:45.039000+02:00"},{"asset_key":"ALTRIA","age_days":15.24,"price_eur":62.987,"timestamp":"2026-07-01T15:38:45.039000+02:00"},{"asset_key":"ALPHABET_A","age_days":17.42,"price_eur":300.0,"timestamp":"2026-06-29T11:16:34.323533+02:00"},{"asset_key":"ALTRIA","age_days":15.24,"price_eur":62.9759,"timestamp":"2026-07-01T15:38:45.039000+02:00"},{"asset_key":"ALTRIA","age_days":15.24,"price_eur":62.9759,"timestamp":"2026-07-01T15:38:45.039000+02:00"},{"asset_key":"ALIBABA","age_days":15.24,"price_eur":84.997661955,"timestamp":"2026-07-01T15:44:12.269664+02:00"},{"asset_key":"ALTRIA","age_days":14.1,"price_eur":63.0898,"timestamp":"2026-07-02T18:57:12.218075+02:00"},{"asset_key":"ALTRIA","age_days":15.24,"price_eur":63.1034499041,"timestamp":"2026-07-01T15:44:12.269664+02:00"},{"asset_key":"ALPHABET_A","age_days":11.93,"price_eur":300.0,"timestamp":"2026-07-04T23:06:42.930193+02:00"},{"asset_key":"AMAZON","age_days":15.24,"price_eur":209.9936783702,"timestamp":"2026-07-01T15:44:12.269664+02:00"}]}}],"thresholds":{"draft_age_days":7,"price_age_days":7,"import_age_days":7,"snapshot_age_days":3},"status_payload":{"ok":true,"status":"OK","readonly":true,"driver":"psycopg","counts":{"portfolio_transactions":143,"portfolio_cash":0,"portfolio_positions":786,"portfolio_price_cache":731,"portfolio_overview_snapshots":46,"portfolio_import_batches":3,"portfolio_import_rows":7,"portfolio_transaction_drafts":12,"portfolio_targets":21},"latest":{"portfolio_transactions":"2026-07-11T20:07:50.349143+02:00","portfolio_cash":null,"portfolio_positions":"2026-07-15T23:15:16.334949+02:00","portfolio_price_cache":"2026-07-15T23:15:15.342752+02:00","portfolio_overview_snapshots":"2026-07-15T23:15:16.602236+02:00","portfolio_import_batches":"2026-06-29T00:38:41.818300+02:00","portfolio_transaction_drafts":"2026-07-11T22:07:50.315534+02:00"},"duration_ms":83.91},"write_enabled":false,"writes_executed":false,"trading_hub_changed":false,"duration_ms":349.94,"checked_at_utc":"2026-07-16T19:28:03+00:00","_tsc_v711_r3_source_route":"/portfolio/api/quality/report","_tsc_v711_r3_source_status":200,"_tsc_v711_r3_source_duration_seconds":0.402008},"stable_lock":{"ok":true,"status":"REVIEW","readonly":true,"version":"TSC Portfolio Center V6.8.6 Stable Lock","stable_lock_version":"V6.8.6","checkpoint":"TSC Portfolio Center V6.8.6 Stable Lock stabil","source_checkpoint":"TSC Portfolio Center V6.8.5b Duplicate Cash Booking Guard stabil","stable_lock_active":true,"portfolio_total_value_eur":11687.11,"position_market_value_eur":11687.11,"cash_total_eur":0.0,"booking_current_cash_eur":18506.59,"position_count":20,"known_duplicate_group_count":0,"blockers":["dashboard_cash_matches_booking_cash"],"warnings":[],"checks":[{"name":"dashboard_ready","ok":true,"details":{"ok":true,"status":"READY"}},{"name":"cash_booking_ready","ok":true,"details":{"ok":true,"status":"READY"}},{"name":"duplicate_guard_ready","ok":true,"details":{"ok":true,"status":"READY","known_duplicate_group_count":0}},{"name":"no_duplicate_cash_groups","ok":true,"details":{"known_duplicate_group_count":0}},{"name":"dashboard_cash_matches_booking_cash","ok":false,"details":{"dashboard_cash_total_eur":0.0,"booking_current_cash_eur":18506.59}},{"name":"portfolio_total_consistent","ok":true,"details":{"portfolio_total_value_eur":11687.1149,"position_market_value_eur":11687.1149,"cash_total_eur":0.0,"expected_total_eur":11687.11}},{"name":"position_count_valid","ok":true,"details":{"position_count":20}}],"write_enabled":false,"writes_executed":false,"orders_created":false,"transactions_created":false,"cash_transactions_created_by_stable_lock":false,"cash_corrections_executed":false,"snapshot_corrections_executed":false,"trading_hub_changed":false,"checked_at_utc":"2026-07-16T19:28:04+00:00","duration_ms":585.94,"_tsc_v711_r3_source_route":"/portfolio/api/stable-lock/status","_tsc_v711_r3_source_status":200,"_tsc_v711_r3_source_duration_seconds":0.643924},"db_counts":{"ok":true,"status":"READY","readonly":true,"transaction_read_only_requested":true,"rollback_executed":true,"driver":"psycopg","error":null,"nonnull_count_keys":["portfolio_cash","portfolio_import_batches","portfolio_import_rows","portfolio_overview_snapshots","portfolio_positions","portfolio_price_cache","portfolio_settings","portfolio_transaction_drafts","portfolio_transactions"],"core_count_keys_ready":true,"source_marker":"TSC_V711_R5_R2_MONTHLY_DB_COUNT_DRIVER_FALLBACK_ACTIVE","db_write":false,"post":false,"trading_hub_changed":false}},"feature_branch":null,"lts_lock":{"ok":true,"status":"REVIEW","readonly":true,"version":"TSC Portfolio Center V6.8.6 Stable Lock","stable_lock_version":"V6.8.6","checkpoint":"TSC Portfolio Center V6.8.6 Stable Lock stabil","source_checkpoint":"TSC Portfolio Center V6.8.5b Duplicate Cash Booking Guard stabil","stable_lock_active":true,"portfolio_total_value_eur":11687.11,"position_market_value_eur":11687.11,"cash_total_eur":0.0,"booking_current_cash_eur":18506.59,"position_count":20,"known_duplicate_group_count":0,"blockers":["dashboard_cash_matches_booking_cash"],"warnings":[],"checks":[{"name":"dashboard_ready","ok":true,"details":{"ok":true,"status":"READY"}},{"name":"cash_booking_ready","ok":true,"details":{"ok":true,"status":"READY"}},{"name":"duplicate_guard_ready","ok":true,"details":{"ok":true,"status":"READY","known_duplicate_group_count":0}},{"name":"no_duplicate_cash_groups","ok":true,"details":{"known_duplicate_group_count":0}},{"name":"dashboard_cash_matches_booking_cash","ok":false,"details":{"dashboard_cash_total_eur":0.0,"booking_current_cash_eur":18506.59}},{"name":"portfolio_total_consistent","ok":true,"details":{"portfolio_total_value_eur":11687.1149,"position_market_value_eur":11687.1149,"cash_total_eur":0.0,"expected_total_eur":11687.11}},{"name":"position_count_valid","ok":true,"details":{"position_count":20}}],"write_enabled":false,"writes_executed":false,"orders_created":false,"transactions_created":false,"cash_transactions_created_by_stable_lock":false,"cash_corrections_executed":false,"snapshot_corrections_executed":false,"trading_hub_changed":false,"checked_at_utc":"2026-07-16T19:28:04+00:00","duration_ms":585.94,"_tsc_v711_r3_source_route":"/portfolio/api/stable-lock/status","_tsc_v711_r3_source_status":200,"_tsc_v711_r3_source_duration_seconds":0.643924},"duration_ms":644.94},"important_urls":{"dashboard":"/portfolio","monthly_report":"/portfolio/monthly-report","monthly_report_alias":"/portfolio/report/monthly","rebalancing_assistant":"/portfolio/rebalancing-assistant","cashflow_planner":"/portfolio/cashflow-planner","dividend_forecast":"/portfolio/dividend-forecast","target_planner":"/portfolio/targets","insights":"/portfolio/insights","feature_branch":"/portfolio/feature-branch","system_health":"/portfolio/system-health","mobile_health":"/portfolio/mobile-health","quality":"/portfolio/quality","checkpoint_api":"/portfolio/api/stable-lock/status","monthly_report_summary_api":"/portfolio/api/monthly-report/summary"},"write_enabled":false,"writes_executed":false,"orders_created":false,"buy_orders_created":false,"sell_orders_created":false,"transactions_created":false,"pdf_created":false,"files_created":false,"cron_created":false,"systemd_timer_created":false,"restore_execution_enabled":false,"trading_hub_changed":false,"guardrails":{"monthly_report_is_readonly":true,"runtime_db_write_enabled":false,"writes_executed":false,"orders_created":false,"buy_orders_created":false,"sell_orders_created":false,"transactions_created":false,"pdf_created":false,"files_created":false,"cron_created":false,"systemd_timer_created":false,"restore_execution_enabled":false,"rebuild_execution_enabled":false,"snapshot_execution_enabled":false,"price_repair_execution_enabled":false,"trading_hub_changed":false,"does_not_write_to":["portfolio_transactions","portfolio_cash","portfolio_positions","portfolio_price_cache","portfolio_overview_snapshots","portfolio_import_batches","portfolio_import_rows","portfolio_transaction_drafts","portfolio_settings","Trading-Hub-Tabellen"]},"duration_ms":644.94,"adapter_marker":"TSC_V711_R3_MONTHLY_FAST_READONLY_SUMMARY_ADAPTER_ACTIVE","adapter_version":"V7.1.1-R3"}