Logic · learning

Read-only view of active client JSON

{
    "version": "2026-05-27.v1_complete_split",
    "file_name": "03_learning_engine.json",
    "engine": "END_OF_DAY_FULL_DATA_LEARNING",
    "enabled": true,
    "schedule": {
        "timezone": "America\/New_York",
        "weekdays_after_close": "17:15:00",
        "also_run_premarket_review": "08:30:00"
    },
    "purpose": "Pull the whole day of public data to identify what we took, rejected, missed, exited too early, chased too late, or should update before next session.",
    "pull_full_day_data_from": [
        "Benzinga_news_and_UOA",
        "Reuters_Bloomberg_DowJones_if_available",
        "Massive_stock_trades_quotes_bars",
        "Massive_or_Tradier_options_quotes",
        "Tradier_option_chains_orders_fills_positions",
        "Polymarket_events_odds_orderbook_trades",
        "Helius_Birdeye_wallet_cluster_signals",
        "Telegram_alerts_and_user_confirmations",
        "PostgreSQL_raw_payloads",
        "Redis_event_stream_archives"
    ],
    "must_analyze": [
        "all_major_market_moving_news",
        "all_scanner_hits",
        "all_rejected_signals",
        "all_missed_movers",
        "news_to_first_reaction_latency",
        "news_to_decision_latency",
        "news_to_order_latency",
        "premium_snapshots_3s_10s_30s_60s_90s_5m_15m_30m",
        "spread_and_slippage",
        "best_available_contract_at_signal",
        "actual_or_paper_fill",
        "exit_quality",
        "max_favorable_excursion",
        "max_adverse_excursion",
        "whether_exit_was_early",
        "whether_entry_was_chasing",
        "whether_fast_news_or_a_plus_was_better_path"
    ],
    "separate_tracks": {
        "fast_news": {
            "questions": [
                "Was headline fresh and severe enough?",
                "Was ticker mapping direct?",
                "Did first 30s reaction confirm?",
                "Was premium underextended?",
                "Would local rules beat ChatGPT latency?",
                "Was setup missed due to scanner gap?"
            ]
        },
        "a_plus": {
            "questions": [
                "Did VWAP\/ORB\/volume confirm later?",
                "Was manual entry alert timely?",
                "Did option contract behave correctly?",
                "Was stop\/trim\/final target optimal?",
                "Was this better as watchlist instead of fast news?"
            ]
        }
    },
    "output_reports": {
        "daily_json_report": true,
        "csv_style_log": true,
        "telegram_summary": true,
        "dashboard_snapshot": true,
        "rule_update_suggestions": true
    },
    "weight_update_rules": {
        "auto_apply_enabled": false,
        "manual_approval_required": true,
        "allow_auto_apply_only_for": [
            "scanner_category_addition_to_watch_only",
            "typo_or_schema_fix"
        ],
        "never_auto_apply": [
            "position_size_increase",
            "live_execution_enable",
            "risk_limit_increase",
            "remove_guardrail"
        ],
        "evidence_required_before_weight_change": {
            "minimum_occurrences": 3,
            "minimum_days_observed": 2,
            "requires_premium_replay": true
        }
    },
    "daily_log_schema": [
        "date",
        "session",
        "ticker",
        "headline",
        "source",
        "event_id",
        "news_category",
        "news_time_utc",
        "news_received_at",
        "first_market_reaction_time",
        "signal_time",
        "decision_time",
        "entry_time",
        "exit_time",
        "direction",
        "strategy_path",
        "score",
        "selected_contract",
        "entry_premium",
        "exit_premium",
        "highest_premium",
        "lowest_premium",
        "spread_percent",
        "slippage_percent",
        "fees",
        "gross_pnl",
        "net_pnl",
        "taken_or_rejected",
        "rejection_reason",
        "missed_reason",
        "lesson",
        "rule_update_needed"
    ],
    "missed_trade_classification": {
        "missed_due_to_scanner_gap": "Add scanner category or source.",
        "missed_due_to_latency": "Improve local rule path or reduce OpenAI dependency.",
        "missed_due_to_premium_repriced": "Do not chase; log as late.",
        "missed_due_to_wide_spread": "Valid no-trade, keep rejection.",
        "missed_due_to_duplicate_error": "Fix duplicate date\/session\/event logic.",
        "missed_better_as_a_plus": "Add to A+ watchlist rules, not Fast News."
    }
}