Executive Summary
AlphaWeave Capital is a multi-layer allocation intelligence and attribution system designed to improve the governance, risk profile, and measured contribution of existing strategies. Rather than replacing strategies with opaque AI predictions, AlphaWeave Capital augments them through a structured decision process that determines: which strategy to run, which assets to trade, how to allocate capital, and how to measure what helped under current market conditions.
AlphaWeave Capital is a governed allocation layer built on top of strategies - not a strategy itself.
The system operates in a sleeve-based architecture, where each sleeve represents a distinct objective (e.g., directional or market-neutral). Within each sleeve, AssetAllocationAgent selects the most relevant assets using a combination of market data, statistical signals, and strategy-specific asset fit profiles. In parallel, StrategyAllocationAgent evaluates candidate strategies based on current regime conditions and recent performance, selecting the most appropriate strategy or set of strategies for deployment. This ensures that strategy selection and asset selection are co-dependent.
For market-neutral or basket sleeves, AlphaWeave evaluates cross-asset relationships such as correlation stability, volatility alignment, liquidity compatibility, and spread behavior. This allows the system to construct portfolios aligned with the functional objective of the sleeve, rather than selecting standalone assets in isolation.
Once strategy and asset selection are determined, AlphaWeave evaluates the interaction between the selected setup and the market. A triage layer determines whether compact AI/PSM underwriting is worth spending LLM cycles, or whether the deterministic policy path should continue. In compact mode, prior realized outcomes, cached intelligence, and transition-tape evidence are compressed into the DecisionMakingAgent packet. In expanded mode, DecisionReviewAgent and the intelligence/reflection agents can run as separate context builders for diagnostics. The DecisionMakingAgent then produces both a trade action (BUY / SELL / HOLD) and a position_size_multiplier (PSM), which represents conviction.
This PSM is passed to the PortfolioAgent, which converts conviction into realized capital allocation. As a result, AlphaWeave does not simply refine execution - it dynamically determines how much capital to deploy, scaling exposure up for high-confidence opportunities and reducing exposure when conviction is weaker. Execution is therefore driven by timing, holding horizon, and conviction-based sizing, rather than binary trade decisions alone.
At the portfolio level, PortfolioAgent manages both intra-sleeve and inter-sleeve allocation, translating PSM-adjusted signals into consistent portfolio weights across assets, strategies, and sleeves. RiskManagerAgent enforces constraints and can override or scale positions when risk thresholds are breached, ensuring that conviction-based allocation remains within the overall risk budget.
Empirically, this layered approach should be evaluated through stage attribution rather than through a single opaque performance number. Improvements can come from two sources: (1) better selection (strategy rotation and strategy-aware asset selection) and (2) better execution (conviction-based capital allocation via PSM, combined with timing and risk control). The result is a clearer separation between signal quality, asset selection, strategy selection, AI-assisted sizing, execution quality, and risk control.
Unless a section explicitly says otherwise, realized return figures in this presentation are measured over sampled short trading windows, not annualized. The current monthly evidence uses 10-business-day measured windows; simulation and market-extension sections are labeled separately when they use synthetic scenarios or annualized estimates.
Bottom line: AlphaWeave Capital determines what to trade, when to trade, how much capital to allocate, and what actually added value, using a unified framework that integrates selection, sizing, risk management, outcome memory, and performance attribution.
Competitive Placement: Where AlphaWeave Capital Fits
The open-source trading ecosystem already proves there is large demand for algorithmic trading infrastructure. The most popular free GitHub systems are strong, but they mostly cluster around three jobs: running bots, researching models, or providing execution engines. AlphaWeave Capital is positioned in a different layer: allocator-grade decision intelligence and attribution across strategy selection, asset selection, AI/PSM execution review, risk controls, and measured-window reporting.
Freqtrade is a Python crypto trading bot with exchange support, dry-run trading, backtesting, money management, WebUI/Telegram controls, and FreqAI-style adaptive prediction modeling. AlphaWeave does not compete as a retail crypto bot. It answers the allocator question: which strategy and asset set deserved capital, what execution change was accepted, and did that decision add return?
Qlib is built for AI-powered quant research: data processing, model training, backtesting, risk modeling, portfolio optimization, and order-execution research. AlphaWeave is less a model lab and more an operational decision ledger. It decomposes realized performance into baseline, strategy selection, asset selection, and AI/PSM execution review, then ties the outcome back to auditable portfolio events.
FinRL focuses on train-test-trade workflows for deep reinforcement-learning agents. AlphaWeave uses AI differently: not as an unconstrained trading oracle, but as a governed reviewer whose actions are filtered through confidence, state, beta/risk evidence, duration rules, and executable portfolio events.
Hummingbot is oriented toward high-frequency crypto bots and market-making workflows. LEAN and NautilusTrader are professional event-driven engines for backtesting and live trading. AlphaWeave can sit beside this kind of infrastructure: it decides and explains capital allocation before or around execution, instead of being only the execution runtime.
Marketable wedge: AlphaWeave Capital is not another bot, model notebook, or exchange connector. It is the allocation intelligence layer that turns raw strategy signals into governed capital decisions. The system records the source of truth as portfolio trade events, rebases measured P and L to the evaluation window, and shows whether value came from strategy selection, asset selection, AI-assisted sizing, duration control, risk exits, or execution quality.
Why this matters commercially: open-source engines help teams build and run strategies; AlphaWeave helps investment teams defend allocation decisions. That is the institutional gap: an auditable layer that explains why capital moved, what changed versus the baseline, and whether the AI/PSM overlay actually improved the measured result.
AlphaWeave is an institutional allocation intelligence system that measures, governs, and improves systematic trading decisions, with AI/PSM as a controlled execution overlay. The LLM contributes through action review, duration control, sizing, and risk response; the system makes those contributions measurable by proving which layer added value.
Popularity in open-source trading projects is not the same as demonstrated alpha. A bot framework, model research platform, or execution engine can be valuable infrastructure while still leaving alpha generation to the user-supplied strategy, data, costs, regime assumptions, and live execution quality. AlphaWeave's advantage is that it separates those questions: strategy alpha, asset-selection alpha, strategy-selection alpha, AI/PSM execution alpha, and attribution proof are measured as distinct layers rather than blended into a single headline backtest.
StockBench evaluates LLM agents in realistic multi-month stock trading and shows that strong financial QA ability does not reliably become profitable trading behavior. Some agents improve risk management, but many struggle against simple baselines. This argues against using the LLM as the primary trading engine.
KTD-Fin argues that LLM trading benchmarks must separate passive market and style exposure from transferable decision alpha. That maps directly to AlphaWeave's reporting model: LLM contribution must be measured over policy-only, not hidden inside total overlay return.
A 2026 survey of LLM trading agents finds inconsistent execution semantics, limited cost modeling, sparse reproducibility, and poor protocol comparability. This validates AlphaWeave's emphasis on event logs, decision audit, measured-window P and L, state-machine replay, and explicit portfolio trade events.
The 2025 equity-market LLM review highlights hybrid approaches: LLMs combined with traditional quantitative models, factor models, reinforcement learning, and risk controls. AlphaWeave uses that hybrid stance: policy and selection engines produce the base allocation; LLMs underwrite context-sensitive increments.
Why this approach was taken: the empirical question is no longer whether the LLM can sound convincing about a trade. The question is whether it can improve a known policy path. AlphaWeave therefore separates policy-only overlay from triage + AI/PSM. The LLM earns value only when it improves return, reduces drawdown, blocks a weak policy deviation, extends a validated winner, or justifies extra capital with auditable external evidence.
Public reference set reviewed: Freqtrade, Microsoft Qlib, FinRL, Hummingbot, QuantConnect LEAN, and NautilusTrader.
End-to-End Decision Flow (Single Bar)
At each evaluation point (bar), AlphaWeave executes a consistent sequence of steps. This ensures that selection, decision-making, capital allocation, and risk management operate as a unified system rather than independent components.
- DataAgent: loads and normalizes market data
- AssetAllocationAgent: selects active assets for the sleeve or leg
- StrategyAllocationAgent: selects the active strategy set
- StrategyAgent: generates raw signals (BUY / SELL / HOLD)
- TriageAgent: decides whether to invoke AI reasoning or take the fast path
- If compact AI path:
- This is the method of choice for the reported AI/PSM numbers in this presentation
- Triage admits one compact underwriting call when the bar has enough reason to spend LLM cycles
- DecisionMakingAgent receives a single packet containing market context, selected strategy and assets, policy state, prior outcomes, transition tape, and forward-attribution evidence
- DecisionMakingAgent underwrites action, holding horizon, and position size multiplier (PSM) over the deterministic policy path
- If expanded full-LLM mode is enabled:
- LatestMarketIntelligence, PastMarketIntelligence, reflection, and decision-review agents can run as separate context-building stages before DMA
- This mode is retained for deeper research and diagnostics, but it is not the source of the compact AI/PSM results reported here
- If fast path:
- Use raw signal + cached intelligence + prior PSM
- RiskManagerAssetAgent: applies per-asset limits and may override or liquidate
- PortfolioAgent: converts signals + PSM into normalized capital allocation
- RiskManagerAgent: enforces portfolio-level constraints
- Execution: trades are placed or simulated
- Reporting + Memory: results, decision reviews, and outcomes are stored for future learning
Key insight: PSM does not directly place trades - it becomes effective only after PortfolioAgent and RiskManager layers convert it into constrained portfolio weights.
Month-by-Month Sampled Performance Impact (Executive Summary)
The table below summarizes the realized incremental return impact from the latest completed sampled-window run for directional sleeves, relative to a Static Base: one strategy, one fixed asset set, no strategy rotation, no strategy-aware asset selection, and no AI execution overlay.
The current AlphaWeave logic separates uplift into three layers: (1) StrategyAllocationAgent, which selects the best strategy for the sleeve/regime; (2) AssetAllocationAgent, which selects assets using return, trend, volatility, drawdown, liquidity, and strategy-specific asset_fit; and (3) the AI execution and review layer, where DecisionReviewAgent turns prior outcomes into structured feedback, DecisionMakingAgent produces position_size_multiplier, and PortfolioAgent applies that conviction to capital allocation.
This changes the AI overlay from a light timing/risk filter into a conviction-based capital allocator. High-confidence BUY decisions receive larger sizing, weak signals are reduced, and PortfolioAgent converts those conviction-adjusted decisions into realized portfolio weights.
DecisionReviewAgent update: the current architecture includes the newer self-learning feedback loop, where prior decisions and realized outcomes become structured inputs to future decisions. The monthly table reports realized sampled-window attribution; any additional learning benefit should be validated in future rolling out-of-sample runs rather than treated as a forecast.
The monthly performance table now reports the latest completed sampled short-window run. The baseline strategy for this update is momentum, with fixed assets and no strategy rotation, no asset switching, and no execution overlay. The table replaces the older forecast ranges with realized stage attribution: strategy switching, asset switching, and AI execution/policy review.
Run basis: Results come from the latest completed 12-window full-stack sampled run. Each row uses one representative 10-business-day measured window inside the named calendar month, measured at 6h granularity. The baseline strategy is momentum. Baseline assets, candidate assets, and rotatable strategies vary by row and are shown directly in the table. The AI execution column is the combined execution overlay: deterministic policy without triage plus Compact AI/PSM over that policy path.
The month labels are calendar buckets for sampling, not claims that a particular month-specific narrative caused the result. The important measurement is the stage ladder: whether each layer added return and whether drawdown improved or worsened relative to the prior layer.
Time frame: Each row reports returns obtained over a 10-business-day measured trading window selected inside the named calendar month; it is not a full-month or full-year backtest. The table therefore reports realized stage behavior for comparable 10-day windows, while the total row summarizes the combined sampled evidence across those windows.
| Month | Static Base (single strategy, fixed assets) |
Candidate assets | Asset switching | Rotatable strategies | Granularity | Primary market conditions | Allocation logic (strategy + asset selection) |
Strategy pickup | Asset pickup | AI execution + review (PSM) |
Total Improv |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Jan | Momentum COIN, NVDA | AAPL, COIN, GOOGL, MSFT, NVDA, TSLA | 1/1 accepted; switch allowed (16) | Bollinger, Momentum | 6h | Sampled window: Jan 8-19 | Strategy was the main drag | -1.25% | +1.12% | 0.00% | -0.13% |
| Feb | Momentum NVDA, TSLA | AAPL, AMD, GOOGL, MSFT, NVDA, TSLA | 0/4 accepted; incumbent basket retained positive not in drawdown (12) | MACD, Momentum | 6h | Sampled window: Feb 12-23 | Strategy was the main drag | -0.44% | +0.44% | +0.01% | +0.01% |
| Mar | Momentum COIN, TSLA | AMD, COIN, GOOGL, NVDA, TSLA | 1/3 accepted; switch margin not met (7) | MACD, Momentum | 6h | Sampled window: Mar 13-24 | Execution Policy added the most | -0.17% | -0.69% | +4.85% | +3.99% |
| Apr | Momentum GOOGL, NVDA | AAPL, AMZN, GOOGL, MSFT, NVDA | 1/6 accepted; switch allowed (9) | Bollinger, Momentum, RSI | 6h | Sampled window: Apr 15-26 | Strategy added the most | +1.24% | +0.71% | 0.00% | +1.96% |
| May | Momentum NVDA, TSLA | AAPL, AMZN, GOOGL, NVDA, TSLA | 0/5 accepted; incumbent basket retained positive not in drawdown (18) | Buy and hold, Momentum | 6h | Sampled window: May 15-26 | Strategy added the most | +1.07% | -1.07% | +0.27% | +0.27% |
| Jun | Momentum COIN, NVDA | AMD, COIN, NVDA, TSLA | 1/3 accepted; incumbent basket retained positive not in drawdown (10) | Momentum, RSI | 6h | Sampled window: Jun 5-16 | Asset added the most | 0.00% | +1.25% | +0.10% | +1.35% |
| Jul | Momentum GOOGL, NVDA | AAPL, AMZN, GOOGL, MSFT, NVDA | 0/9 accepted; incumbent basket retained positive not in drawdown (10) | Momentum, RSI | 6h | Sampled window: Jul 1-12 | Strategy was the main drag | -0.21% | +0.11% | -0.02% | -0.11% |
| Aug | Momentum COIN, TSLA | AMD, COIN, GOOGL, NVDA, TSLA | 0/6 accepted; incumbent basket retained positive not in drawdown (15) | Momentum, RSI | 6h | Sampled window: Aug 19-30 | Asset was the main drag | +2.29% | -2.37% | 0.00% | -0.08% |
| Sep | Momentum COIN, NVDA | AMD, COIN, GOOGL, NVDA, TSLA | 2/6 accepted; switch allowed (5) | Momentum | 6h | Sampled window: Sep 2-13 | Asset added the most | 0.00% | +0.03% | 0.00% | +0.03% |
| Oct | Momentum NVDA, TSLA | AMD, COIN, GOOGL, NVDA, TSLA | 1/12 accepted; candidate asset fit edge below switch policy (10) | MACD, Momentum | 6h | Sampled window: Oct 16-27 | Asset was the main drag | +2.27% | -3.16% | 0.00% | -0.89% |
| Nov | Momentum NVDA, TSLA | AAPL, AMZN, GOOGL, NVDA, TSLA | 0/5 accepted; incumbent basket retained positive not in drawdown (18) | Buy and hold, Momentum | 6h | Sampled window: Nov 6-17 | Strategy was the main drag | -2.01% | +2.01% | +0.08% | +0.08% |
| Dec | Momentum NVDA, TSLA | AAPL, GOOGL, MSFT, NVDA, TSLA | 1/4 accepted; switch allowed (12) | Buy and hold, Momentum | 6h | Sampled window: Dec 4-15 | Asset added the most | -0.12% | +0.59% | +0.01% | +0.48% |
| Total | Additive sampled pickups | 6h | 12 ten-day windows | Realized sum across sampled 10-day windows | +2.68% | -1.01% | +5.29% | +6.97% |
Market-Neutral Sleeves: Alpha Capture Independent of Market Direction
In market-neutral (risk-neutral) sleeves, the expected return of a Static Base (single strategy, 2 fixed assets) is approximately 0% over time, because long and short exposures are designed to hedge out most broad market beta.
Time frame: The measured figures in this section are not long-horizon annual returns. They are sampled 10-business-day attribution results from the latest completed run, summed across the same 12 calendar-month buckets used in the monthly performance table.
The numeric table below is evidenced by the latest directional full-stack sampled run. It proves the stage-attribution ladder over sampled 10-business-day windows. It should not be read as a completed market-neutral sleeve backtest; market-neutral sleeves use the same attribution structure but require their own dedicated validation run.
Run basis for measured component values: The table uses the same latest completed directional sampled run as the monthly table: twelve representative 10-business-day measured windows, 6h bars, momentum baseline, row-specific baseline assets and candidate universes shown in the monthly evidence table, and Compact AI/PSM measured only as incremental over deterministic policy.
AlphaWeave extends this framework by replacing static pairs with a dynamic basket construction and selection process. Rather than fixing two assets, the system evaluates a universe of candidates and constructs long-short baskets based on correlation structure, volatility alignment, liquidity compatibility, and spread behavior. This ensures that neutrality is not assumed, but continuously re-validated through data.
The opportunity comes from alpha capture: selecting better relative-value assets, rotating among more effective spread and regime-sensitive strategies, and applying AI to improve timing, holding horizon, and conviction-based capital allocation. In this setting, AlphaWeave is not relying on market direction - it is extracting value from cross-asset relationships, strategy-asset fit, and relative capital deployment between long and short exposures.
AssetAllocationAgent evaluates baskets using: correlation stability, volatility similarity, liquidity matching, and spread mean-reversion characteristics. This allows the system to avoid structurally weak pairs and construct baskets with repeatable relative-value behavior. StrategyAllocationAgent selects among strategies such as mean-reversion, spread trading, momentum-relative value, and regime-switching models, depending on whether relationships are stable, breaking down, or transitioning.
Sleeve neutrality is now documented as an explicit mandate constraint, not just
a descriptive sleeve label. A market-neutral sleeve can declare net_target,
gross_target, beta_target, and a beta_benchmark_ticker
such as SPY. SleeveConstraintAgent reads the sleeve's final
portfolio weights, pulls the benchmark price history from the same market_data
context as the tradable assets, estimates asset betas over beta_lookback_bars,
and records whether the sleeve remained inside its mandate.
market_data,
and consumed by SleeveConstraintAgent to compute portfolio beta before final reporting
and execution handoff. If benchmark data is missing, the agent records a warning instead of
silently claiming beta neutrality.
| Component | Measured pickup aggregate / average window | Primary source of alpha | Observed / expected risk note |
|---|---|---|---|
| Static Base (single strategy, fixed assets) | 0% / 0% | Fixed momentum incumbent over the sampled 10-day windows | Measured-window risk starts from zero P and L |
| + Strategy selection (StrategyAllocationAgent) | +2.68% / +0.22% | Realized strategy-selection contribution across 12 sampled 10-day windows | Positive in aggregate, but still uneven by month bucket |
| + Dynamic basket construction (AssetAllocationAgent) | -1.01% / -0.08% | Realized asset-selection contribution across 12 sampled 10-day windows | Negative in aggregate; this is a current improvement target, not an assumed benefit |
| + AI execution layer (PSM-driven) | +5.29% / +0.44% | Policy-only execution plus compact triage/AI review across 12 sampled 10-day windows | Improved sampled return and reduced worst drawdown versus the static baseline path |
| Total measured improvement vs Static Base | +6.97% / +0.58% | Strategy + asset + execution/review across the latest 12 sampled 10-day windows | Aggregate result is realized attribution across separate windows, not a single-period or annualized claim |
Key distinction: traditional market-neutral systems assume that a pair remains valid. AlphaWeave instead continuously evaluates whether relationships are stable, degrading, or improving, and dynamically adjusts both the composition of the basket and the capital allocated to each side of the trade. This transforms market-neutral trading from a static hedge into an adaptive, conviction-weighted alpha-generation process.
SleeveConstraintAgent: Mandate Enforcement and Beta Benchmarking
SleeveConstraintAgent is the sleeve-level mandate checker. It runs after the system has produced decision or position weights and before those weights are treated as final evidence for execution and reporting. Its purpose is to make sleeve intent auditable: directional sleeves should remain directional, market-neutral sleeves should remain close to their net/gross/beta targets, and shorting constraints should be enforced when the sleeve disallows shorts.
risk_capped_position_portfolio_weightsorposition_portfolio_weightsrisk_capped_decision_portfolio_weightsordecision_portfolio_weightsnet_target,gross_target,beta_targetallow_shortandconstraints_enabledbeta_benchmark_tickerand benchmark data insidemarket_data
- The benchmark ticker, for example
SPY, is configured at sleeve level. - DataAgent includes the benchmark's price frame in
market_data. - The agent computes percentage returns for each asset and the benchmark.
- Asset beta is estimated as covariance(asset returns, benchmark returns) divided by benchmark variance.
- Portfolio beta is the weighted sum of asset betas using the sleeve's current weights.
sleeve_constrained_position_portfolio_weightssleeve_constrained_decision_portfolio_weightssleeve_constraint_auditsleeve_constraint_status:PASS,WARN, orBLOCKsleeve_constraint_summaryfor ReportAgent and metadata output
Configuration fields
| Field | Meaning | Typical market-neutral value |
|---|---|---|
constraints_enabled |
Turns sleeve mandate checks on or off. | true |
net_target |
Target signed exposure after long and short weights offset. | 0.00 |
gross_target |
Target total absolute exposure across long and short weights. | 0.80 |
beta_target |
Target benchmark-relative portfolio beta. | 0.00 |
beta_benchmark_ticker |
Benchmark used for beta estimation; must be present in market data. | SPY |
beta_lookback_bars |
Number of return bars used for beta estimation. | 60 |
net_tolerance, gross_tolerance, beta_tolerance |
Optional tolerance bands. If blank, the tolerance is not applied. | 0.02, 0.02, 0.05 |
Policy Files: The Governance Layer Behind the Agents
AlphaWeave Capital does not rely on a single prompt, a hidden model opinion, or a hard-coded trading rule to decide whether capital moves. The system uses explicit policy files as the governance layer between agent judgment and portfolio execution. These files define what counts as enough evidence, when an LLM is allowed to run, when a switch is accepted, when AI/PSM can change size or duration, and how every decision must be audited.
External research platforms such as Seeking Alpha fit into this architecture as context providers, not execution authorities. Seeking Alpha publishes market news, investing analysis, contributor commentary, ratings context, portfolio tools, and earnings-call transcripts. AlphaWeave can use that material inside LatestMarketIntelligence and PastMarketIntelligence to describe catalysts, management commentary, crowd consensus, or post-earnings narrative shifts. The information still has to be converted into structured evidence, checked against price/strategy behavior, and passed through policy gates before it can affect action, duration, or position size multiplier.
config/triage-policy-registry.json
Controls when expensive AI reasoning is permitted. It separates ordinary bars from material bars: first selected entries, hard risk, adverse moves, signal flips, earnings, macro events, asset-switch control points, and live-winner resize opportunities. It also enforces daily LLM cadence, date-only event timing, cache suppression, repeated-action suppression, and urgent exceptions.
config/asset-switch-policy.json
Governs when the asset basket can change. The policy protects working incumbents, requires realized contribution edge, checks candidate drawdown quality, limits turnover, evaluates strategy-fit improvement, and penalizes underinvestment unless risk evidence justifies it. This is where asset selection becomes an auditable allocation decision instead of a simple top-score replacement.
config/strategy-switch-policy.json
Governs when the active strategy set can change. It uses shadow returns, rolling returns, regime fit, drawdown degradation, executable exposure difference, min-hold, cooldown, and persistence checks. Trend and breakout candidates face additional confirmation rules so a fresh exposure collapse or fragile local edge cannot masquerade as durable alpha.
config/stage-acceptance-policy.json
Controls whether AI/PSM changes are executable. The current contract treats the LLM as a contextual underwriter over policy: policy proposes the base action and base PSM, while the LLM may approve, veto, cap, press, reduce, extend, or shorten only when confidence and external evidence justify the increment. The file defines state-machine bands for fresh entries, open winners, strong winners, rebound watch, open losers, hard risk, and asset-switching-stage winners.
| Policy family | Agent using it | What the policy protects | Why it matters |
|---|---|---|---|
| LLM call gating | TriageAgent | Cost, latency, repeated calls, event timing, and measured-period boundaries | Keeps AI from becoming an every-bar co-manager while still opening review on material alpha or risk events. |
| Switch acceptance | AssetAllocationAgent and StrategyAllocationAgent | Incumbent winners, turnover, weak candidate edges, fragile trend switches, and noisy short windows | Forces rotation to prove that it is economically better than staying with the current asset or strategy. |
| AI/PSM state machine | DecisionMakingAgent | Weak LLM actions, unproven resizes, beta-hostile presses, stale overrides, and premature winner exits | Lets AI express judgment through action, duration, and PSM only when the state supports an executable edge. |
| Execution invariants | BacktestCrew and TradeCrew | PositionTracker scope, asset/strategy switch resets, portfolio trade events, and measured-window P and L | Ensures the reportable source of truth is the executed portfolio event, not a stale signal or shadow suggestion. |
| Audit and learning | ReportAgent and DecisionReviewAgent | Decision audit, PSM ledger, risk rows, missed opportunities, false positives, and forward attribution | Turns failures into named policy cases that can be tested in simulation before being promoted into runtime behavior. |
ai_psm_llm_stack_mode=compact_underwriter.
Triage still decides when an LLM call is worth spending. When admitted, DMA receives one compact
underwriting packet containing policy state, selected strategy and asset state, position/risk
state, beta context, and relevant news, macro, or earnings triggers. The older
Latest/Past/Low-Level/High-Level reflection chain remains available as
full_stack for ablation, forensic review, and cases where deep evidence generation
must prove its incremental value.
The current target state is summarized in config/policy-target-state.json:
deterministic strategy and asset selection remain primary, AI/PSM is an exception and alpha
overlay rather than a constant co-manager, hard risk and execution invariants remain non-negotiable,
and learned recommendations stay audit-only until they are deliberately promoted into policy.
Multi-Agentic AI Components (Core Value Proposition)
AlphaWeave is built around a multi-agent architecture where each agent performs a narrow, desk-like function. The system behaves like a trading organization: data ingestion, asset selection, strategy selection, review and reflection, decision review, decision, risk veto, intra-sleeve allocation, inter-sleeve capital management, execution, and post-trade learning.
- Normalize OHLCV across equities, crypto, futures, options
- Unify alignment and timestamps into consistent Date series
- Provide clean, strategy-ready frames for any strategy plug-in
- Selects the active assets inside each sleeve or leg over time from the configured candidate universe.
- Scores assets using recent return, lookback return, trend slope, volatility, drawdown, and liquidity.
- Adjusts scores using each active/candidate strategy's direction-aware asset_fit profile, including separate
long_fitandshort_fitbehavior when available. - In directional asset mode, selects a top-ranked subset using
top_k, with min-hold, cooldown, and switch-margin controls. - In basket / market-neutral mode, activates the full eligible sleeve or leg asset set, rather than simply picking standalone top-k names.
- Persists
selected_assets,active_assets,active_asset_map,asset_selection_scores,asset_strategy_fit_scores,strategy_asset_fit_used, and basket fit diagnostics.
- Selects the active strategy set inside each sleeve or leg over time from configured candidate strategies.
- Supports multi-strategy activation, capped by
target_active_strategies; PortfolioAgent later weights the active strategies. - Shadow-runs candidate strategies and scores them using rolling return, rolling Sharpe, rolling drawdown, regime fit, DMA overlay, and asset-fit compatibility.
- Runs in either asset mode for directional sleeves or basket mode for market-neutral / multi-leg sleeves.
- Uses sleeve and leg scope, including
leg_id,leg_side,sleeve_id,sleeve_type, andstrategy_asset_allocation_group_id. - Applies controlled switching with min-hold, cooldown, and switch-margin logic so strategies are added, removed, or replaced only when the new active set is meaningfully better.
- Persists
selected_strategies,active_strategies,strategy_scores,strategy_ranked,strategy_shadow_state, andstrategy_asset_fit_profiles.
LatestDetect fresh catalysts (including calendars)
- Earnings, guidance, macro prints, breaking news
- Macro-economic release dates and release-driven news context
- Earnings calendar dates and near-event context
- External research context: sources such as Seeking Alpha articles, news, analyst commentary, ratings context, and earnings-call transcripts can be summarized as supporting evidence
- Short-horizon context for the next decision window
- Designed for speed and recency: what changed since last bar
PastRegime context and playbooks
- Similar historical episodes, prior reactions
- Longer-horizon memory: how the strategy behaves in comparable conditions
- Transcript and research history can be compared with realized outcomes so narrative evidence is treated as a testable input, not a trade by itself
- Prevents recency bias and improves consistency
Triage is AlphaWeave's "should we spend tokens/latency now?" gate. On every bar (daily or intraday), it decides whether to run AI reasoning or take the fast path. The default measured path is compact AI/PSM underwriting. Depending on configuration, the admitted reasoning path can be the full LLM stack (Latest -> Past -> Reflections -> Decision Review -> Decision) or the compact DecisionMakingAgent underwriting packet. The goal is to preserve performance and cost while still escalating when the tape changes materially.
GateWhen triage runs heavy reasoning
- Event proximity: earnings / macro releases / known calendar catalysts
- Volatility jump: realized / forecast / IV proxy spikes
- Regime break: trend-to-chop, gap events, repeated whipsaws
- First actionable bar: force-call on the first eligible bar in a window (optional)
CacheReuse work across bars
- Cache retrieved intelligence so unchanged bars don't re-fetch / re-summarize
- Cache "aux images" cadence so plots aren't regenerated every bar
- Use run_id + asset + granularity keys so caches are deterministic and auditable
Fast PathWhat happens when triage skips
- Keep the base strategy's raw signal as the primary intent
- Still run risk and portfolio gates (cheap + safety-critical)
- Apply baseline sizing / cached PSM so capital allocation remains consistent even without fresh AI reasoning
- Optionally reuse the last cached intelligence snapshot for context
State continuity: When triage skips AI reasoning, the system does not reset. It carries forward:
- Previous position_size_multiplier (PSM)
- Previous decision context (BUY/SELL/HOLD state)
- Cached market intelligence and reflections
This ensures that skipping reasoning does not introduce discontinuities in capital allocation or trade behavior. Triage therefore controls when reasoning updates occur, not whether the system has state.
Low-LevelRecent decision patterns
- Trade-by-trade review in the recent window
- Identify what just worked, failed, or drifted
- Recommend near-term calibrations to signals and sizing
High-LevelRegime lessons learned
- Generalize behavior across regimes and longer horizons
- Find recurring failure modes and stable edge conditions
- Write durable playbook guidance for the decision committee
- Closes the self-learning loop: prior decisions and realized outcomes become structured feedback for future decisions.
- Retrieves prior decisions, realized outcomes, and review notes for the current sleeve, leg, asset, strategy, and regime.
- Converts post-trade evidence into structured guidance before the next DecisionMakingAgent call; compact mode passes this as packet evidence, while expanded mode can run it as a separate agent step.
- Separates what the strategy signaled from how well the prior decision worked, so the system can learn without rewriting the base strategy.
- Feeds decision_action, role_judgment, success/failure counts, and review summaries into compact underwriting, reflection, and decision context.
- Combines raw signals, policy state, market intelligence, reflection outputs, and DecisionReviewAgent outcome feedback into a unified decision packet
- Runs by default in compact underwriting mode with one concentrated LLM call over the policy path; full mode remains available for broader-agent diagnostics
- Outputs final action: BUY / SELL / HOLD plus position_size_multiplier (PSM) representing conviction
- PSM acts as the bridge between decision and capital allocation, directly driving PortfolioAgent weights
- Decides holding horizon / urgency (short vs medium vs long) alongside sizing
Important distinction:
- Signal: direction (BUY / SELL / HOLD)
- PSM: conviction (how strongly to express the signal)
- Portfolio weights: actual capital allocation after normalization and risk constraints
This separation ensures that decision logic remains independent from capital constraints, allowing PortfolioAgent and RiskManagerAgent to enforce stability and consistency.
- Asset risk: enforces limits, stops, and liquidation rules per asset, adjusting or overriding PSM-driven positions when risk thresholds are breached
- Portfolio risk: enforces exposure caps, leverage limits, correlation concentration, and drawdown constraints across sleeves and strategies
- Acts as a constraint layer on conviction-based sizing, ensuring PSM scaling does not violate risk budgets or destabilize the portfolio
- Produces risk metrics used in attribution, feedback loops, and strategy/agent learning
Layer separation:
- RiskManagerAssetAgent operates at the trade level, enforcing per-asset constraints such as stops, limits, and liquidation rules
- RiskManagerAgent operates at the portfolio level, enforcing exposure caps, leverage, correlation limits, and drawdown constraints
This separation ensures that both local trade risks and global portfolio risks are controlled independently, preventing concentration or systemic instability.
- Applies sleeve-level mandate constraints after portfolio construction and risk review.
- Checks and can adjust gross exposure, net exposure, and portfolio beta against configured sleeve targets.
- Uses
beta_benchmark_ticker,beta_lookback_bars, and benchmark market data to estimate asset betas from return covariance. - Preserves auditability through
sleeve_constraint_audit,sleeve_constraint_status, andsleeve_constraint_summary. - Can block short actions when
allow_short=false, protecting directional sleeves from accidental short exposure. - Treats missing tolerances as not applicable; constraints are only tolerance-banded when a tolerance is explicitly configured.
- Converts DecisionMakingAgent outputs into realized capital allocation, using position_size_multiplier (PSM) as the primary driver of conviction-based sizing
- Transforms signals + PSM into normalized portfolio weights, ensuring capital is allocated proportionally across assets, strategies, and sleeves
- Weights assets inside each strategy based on quality, risk characteristics, and PSM-adjusted conviction
- Weights strategies inside each sleeve or leg, allowing dynamic capital rotation across active strategies in multi-strategy configurations
- Supports both directional and market-neutral / basket sleeves, preserving leg-level context (long vs short, hedge roles, sleeve purpose)
- Ensures portfolio consistency by normalizing, scaling, and reconciling PSM outputs under portfolio and risk constraints
- Produces final asset-level, strategy-level, sleeve-level, and portfolio-level weights for execution, risk management, and reporting
- Generates explainable artifacts (plots, tables, summaries)
- Stores decisions, DecisionReviewAgent summaries, outcomes, and lessons learned
- Supports auditability and regression testing across runs
Synthetic Market Data Simulation for Backtests
When you want a backtest to produce dense trading activity (and therefore lots of LLM/triage decisions)
without relying on real-world price history, AlphaWeave can generate synthetic OHLCV bars on demand.
This is wired through DataAgent and the data_simulator.py profiles system.
How DataAgent enables simulation
Simulation operates at the sleeve level in the AlphaWeave pipeline. For directional sleeves, each asset is simulated independently. For market-neutral / basket sleeves, simulated assets must be interpreted jointly, as downstream agents (PortfolioAgent and RiskManagerAgent) evaluate cross-asset relationships such as spread stability, correlation, and relative volatility.
DataAgent passes two optional keys downstream to the market-data loader:
generate and simulator. These can be defined globally on the run context or per-asset.
Per-asset settings override the global defaults.
asset_map:
META:
asset_type: stock
granularity: 6h
generate: simulate
simulator:
profile_name: volatility_breakout
seed: 123
overrides:
force_breaches: true
force_breach_every_n: 4
force_breach_mult: 0.50
force_breach_first: down
generate (mode selector)source(default): pull real provider data (yfinance / alpaca / ibkr, etc.)simulate: call the simulator and return synthetic bars
simulator (configuration)profile_name: which profile to load from YAML (e.g.,bollinger_bands)seed: repeatable randomness per asset/runoverrides: optional parameter tweaks layered on top of the profile
RunSetupAgentmay setdata_start_dateto fetch more history for indicatorsDataAgenttemporarily swapsstart_datetodata_start_datefor the fetch- Then restores the evaluation window start for downstream agents
Profiles: aggressive "noisy + spikes" regimes
data_simulator_profiles_aggressive.yaml defines multiple profiles under profiles:.
They're calibrated to create frequent volatility bursts, jumps, and (optionally) deterministic "breach" spikes.
Signal density is determined by the interaction between the simulator profile and the active strategy. For example:
- Bollinger strategies: respond strongly to forced breaches and volatility spikes
- RSI strategies: require sustained directional moves to trigger signals
- Momentum strategies: react to drift + jump regimes
As a result, aggressive profiles are designed to intentionally over-trigger strategies, ensuring sufficient downstream activity for triage, LLM reasoning, and risk evaluation.
Point the simulator at this profile file by setting
DATA_SIM_PROFILES_YAML (for example, to use the aggressive set):
# Windows PowerShell:
$env:DATA_SIM_PROFILES_YAML = "data_simulator_profiles_aggressive.yaml"
# Bash:
export DATA_SIM_PROFILES_YAML="data_simulator_profiles_aggressive.yaml"
| Profile | Intent | Why it's useful for AI / triage demos |
|---|---|---|
default |
Noisy baseline + periodic spikes | Produces lots of regime changes; good for general smoke tests. |
bollinger_bands |
Band pressure + bursts + jumps + forced breaches | Maximizes band crossings - great for demonstrating frequent BUY/SELL flips. |
volatility_breakout |
Wide intrabar ranges + strong spikes | Triggers breakout / range-based rules and stresses risk limits. |
Forced breaches: guaranteeing strategy triggers
The simulator supports deterministic price shocks that intentionally breach thresholds (especially useful for Bollinger-based strategies):
when force_breaches=true, the generator injects alternating +/-moves every N bars, and you can force the first breach direction.
simulator:
profile_name: bollinger_bands
seed: 42
overrides:
force_breaches: true
force_breach_every_n: 5
force_breach_mult: 0.40
force_breach_first: down # down => BUY-breach first; up => SELL-breach first
Exchange-hours filtering (intraday)
To mimic UnifiedDataLoader behavior, the simulator can filter intraday stock bars to exchange-open minutes.
Set ALLOW_AFTER_HOURS=1 to disable filtering for tests where you want stable, dense bar indices.
generate=simulate + aggressive profiles + force_breaches to create
high-frequency signal environments. This leads to:
- More triage decisions (TriageAgent)
- Higher LLM invocation frequency (when not gated)
- Richer DecisionMakingAgent and reflection outputs
- More complete ReportAgent diagnostics
Triage Agent: Measured Performance Impact
The table below uses the latest completed 12-window full-stack sampled run to separate deterministic policy from compact LLM underwriting. The baseline is policy without triage; the second row is the incremental effect of allowing compact triage + AI/PSM on top of it.
Run basis: Twelve representative 10-business-day measured windows, 6h bars, momentum baseline, and row-specific assets/candidate universes shown in the monthly performance table. The table below reports measured-window deltas, not annualized return claims.
- Baseline strategy: momentum
- Assets: row-specific baseline and candidate assets from the same sampled monthly run
- Granularity: 6h
- Policy path: deterministic state-machine overlay without LLM triage
- AI path: compact underwriter mode, measured as incremental over policy
- Deltas: Incremental versus the preceding stage in the measured window
| Configuration | Sampled-window return delta | Delta Max Drawdown | Interpretation |
|---|---|---|---|
| Policy without triage (baseline) | 0% (baseline) | 0% (baseline) | Deterministic AI/PSM policy path without LLM triage. |
| Compact triage + AI/PSM | +0.39% | +0.01% | Measured compact LLM underwriting contribution over policy-only across the same 12 sampled 10-day windows. |
Interpretation of triage impact:
- Positive return improvement indicates noise filtering or useful compact underwriting over policy-only
- Reduced drawdown reflects better timing of exits and avoidance of adverse regimes
- Lower performance may indicate over-filtering, where valid opportunities are skipped
Within the AlphaWeave pipeline, TriageAgent sits between StrategyAgent and DecisionMakingAgent, controlling when higher-cost reasoning is applied. This makes it a key lever for both performance optimization and computational efficiency.
In practice, triage acts as a control layer between strategy signals and AI reasoning, balancing responsiveness with stability.
Conclusion: Triage is structurally risk-positive and approximately return-neutral over the measured short-window evaluation. Any persistent measured-window return drag greater than ~1% indicates overly conservative escalation thresholds rather than a flaw in triage itself.
Strategy AI Controls
Each strategy declares an ai_controls block that tells AlphaWeave how much discretion the AI overlay is allowed to take.
This keeps behavior consistent across strategies: some should be "rules-only," while others benefit from LLM escalation.
This includes control over whether AI can influence trade decisions,
holding duration, and capital allocation via position sizing (PSM).
Time frame: The controls comparison is periodic in the same way as the triage test: each configuration is evaluated on the same short measured window so that duration control, PSM control, and full AI/PSM can be compared against the same price path. The periodicity is part of the experiment, because short windows stress whether the control can add value quickly without leaking training capital or pre-measured P and L.
Measured-run basis: The AI-controls numbers below use the latest completed 12-window full-stack sampled run: twelve representative 10-business-day windows, 6h granularity, momentum as the static baseline strategy, row-specific baseline and candidate assets from the monthly table, and Compact AI/PSM as the LLM path.
00 vs 05 are only comparable if you understand what the strategy permits.
If a strategy sets gate_entries=false, then the LLM-heavy decision path is intentionally bypassed and "05" will resemble "00" (except for risk-only effects).
ai_controls fields
| Field | Meaning | What changes in the pipeline |
|---|---|---|
gate_entries |
Allow the AI overlay to influence the final entry/exit decision. |
True: Triage may run the LLM stack and Decision can override raw signals. False: "strategy-only" path: decision follows the base signal; triage/LLM is skipped. |
adjust_duration |
Allow the Decision agent to adjust holding horizon / urgency. |
True: Decision may set a new duration/horizon. False: Keep the existing duration (or duration agent output) unchanged. |
adjust_size |
Allow the AI to control conviction-based capital allocation via position sizing. |
True: Decision outputs a position_size_multiplier (PSM), which determines
how much capital is deployed and is passed to PortfolioAgent for final allocation.False: Force multiplier to 1.0 (full size), disabling conviction-based sizing and treating capital allocation as fixed. |
Typical presets by strategy type
gate_entries=true- benefit from regime/news-aware gatingadjust_duration=true- horizon changes can reduce whipsawsadjust_size=true- enable conviction-based capital allocation via PSM
gate_entries=false- rules are stable; avoid overfittingadjust_duration=false- keep rule intent consistentadjust_size=true- still allow risk-based sizing
gate_entries=false- entry is deterministicadjust_duration=false- horizon is structuraladjust_size=true- allow risk overlays to scale exposure
gate_entries=false, AlphaWeave still runs
asset-level and portfolio-level risk checks. Risk can veto, limit, or liquidate positions, and can also constrain PSM-driven sizing when allocations exceed risk thresholds.
Incremental Impact of AI Controls (Counterfactual View)
Run basis: This table is populated from the latest completed 12-window full-stack sampled run. The run used twelve representative 10-business-day measured windows, 6h bars, a momentum baseline, row-specific baseline assets and candidate universes shown in the monthly performance table, and the official four-stage ladder: strategy switching, asset switching, policy-only overlay without triage, and Compact AI/PSM over that policy path. Return and drawdown values are sampled-window deltas: strategy over baseline, asset over strategy, deterministic policy over asset, and Compact AI/PSM over policy. They are not annualized returns.
| Configuration | Sampled-window return delta | Delta Max Drawdown | What this configuration represents |
|---|---|---|---|
| Strategy only baseline | 0% (baseline) | 0% (baseline) | Fixed baseline execution for the sampled 10-day measured windows. |
| Strategy switching | +2.68% | +12.29% | StrategyAllocationAgent contribution over the baseline, summed across the sampled 10-day windows. |
| Asset switching | -1.01% | +2.65% | AssetAllocationAgent contribution over the strategy stage; negative aggregate contribution is flagged for policy tuning. |
| Policy without triage | +4.90% | +3.22% | Deterministic AI/PSM state-machine contribution without LLM, summed across the sampled 10-day windows. |
| Compact triage + AI/PSM | +0.39% | +0.01% | Incremental compact LLM underwriting over policy-only, summed across the sampled 10-day windows. |
Key point: the latest sampled-window run shows positive aggregate contribution from strategy selection and execution review, while asset selection was negative in aggregate. These are realized sampled-window deltas, not annualized projections.
TradeCrew: Live / Paper Trading Orchestration Layer
TradeCrew is AlphaWeave's live and paper-trading orchestrator. It runs the production decision stack in a sleeve-first execution pattern, supports dry run / paper / simulate / live-style modes, and coordinates strategy selection, asset selection, per-asset execution, sleeve-level portfolio construction, risk review, and reporting.
Where TradeCrew sits in the architecture
Run setup -> Data -> Sleeve execution -> Portfolio -> Portfolio risk -> Reporting
TradeCrew does not replace strategy logic and does not bypass risk. Its job is orchestration: it prepares the trade context, loads data, runs the agent stack sleeve by sleeve and date by date, inserts trade rows, refreshes marks when available, and produces both sleeve-level and aggregate trade reports.
Backtest vs live consistency: TradeCrew mirrors the same agent sequence and sleeve-first execution structure used in backtesting. This ensures that results observed in backtests are structurally consistent with live execution, with differences arising only from market data and execution conditions.
What TradeCrew currently does (end-to-end)
1. Normalizes and enriches the trade context
- Runs
RunSetupAgentto standardize the execution window and run metadata - Applies capital and exposure defaults such as
initial_capital, cash reserve, gross/net exposure limits, max position weight, and leverage flags - Initializes margin settings for long/short positions so the
PositionTrackercan enforce realistic constraints - Sets
run_type="trade", assigns arun_id, and injects anLLMTool
2. Supports multiple execution modes
- dryrun / noop: full orchestration without real broker submission
- paper: simulated broker-style execution path
- simulate: enables an in-memory
PositionTrackerso positions, marks, and capital can be tracked over time - live-style configuration: context can still carry broker and execution parameters even when safety flags disable actual execution
3. Loads data and prepares active assets before trading
- Calls
DataAgentto fetch and normalize market data - Calls
AssetAllocationAgentbefore trading so the current active asset set can be narrowed or rotated - Preserves sleeve identifiers such as
sleeve_id,sleeve_type, andposition_modefor downstream agents
4. Runs in a sleeve-first structure
TradeCrew builds a list of executable sleeve specs from the configured
sleeves, asset_groups, strategy_groups,
and strategy_asset_allocation_groups.
Each sleeve carries:
- its own asset universe
- its own active strategy
- its own candidate strategies for switching
- its own type: directional or basket / market-neutral
5. Executes the trade loop date by date and sleeve by sleeve
For each strategy context, TradeCrew iterates over dates using an anchor asset's market calendar, then processes each sleeve for that date. This keeps the live trading path aligned with the newer sleeve-first backtest design.
6. Runs the per-sleeve agent stack, with compact AI/PSM as the preferred LLM path
Inside each sleeve/date step, TradeCrew runs the deterministic selection, signal, risk, execution, and reporting stack. When AI/PSM is enabled, the preferred path is compact underwriting: TriageAgent decides whether the bar deserves an LLM call, then DecisionMakingAgent receives one compact packet containing market context, selected strategy and assets, policy state, prior outcomes, transition tape, and forward-attribution evidence.
DurationAgentAssetAllocationAgent(date-level active asset refresh)StrategyAllocationAgentStrategyAgentTriageAgentdecides whether Compact AI/PSM should run or the deterministic policy path should continueDecisionMakingAgentruns in compact underwriter mode when admitted by triage; otherwise it preserves the policy pathRiskManagerAssetAgentTradeAgentfor per-asset executionPortfolioAgentat sleeve scope after the sleeve's asset loopRiskManagerAgentat sleeve scope after portfolio constructionSleeveConstraintAgentat sleeve scope to check net, gross, shorting, and beta mandatesReportAgentat sleeve scope
The expanded full-LLM chain remains available for diagnostics and deeper research. In that mode,
LatestMarketIntelligenceAgent, PastMarketIntelligenceAgent,
LowLevelReflectionAgent, HighLevelReflectionAgent, and
DecisionReviewAgent can run as separate context-building agents before
DecisionMakingAgent. Those expanded calls are not the default source of the
Compact AI/PSM results reported in this presentation.
7. Treats directional and market-neutral sleeves differently
- Directional sleeves: processed asset by asset, then aggregated through PortfolioAgent and RiskManagerAgent
- Basket / market-neutral sleeves: still execute asset-level trade logic for the sleeve constituents, but reporting, portfolio construction, portfolio risk, and sleeve constraint checks happen once at sleeve scope
8. Inserts trade rows and refreshes capital state during execution
- When
TradeAgent.execute_day(...)returns a trade row, TradeCrew inserts it intotrade_table - If a
PositionTrackeris available and a trade price is known, TradeCrew refreshes marks and stores the resulting capital snapshot back into context
9. Produces both sleeve-level and aggregate trade reporting
- Each sleeve run sets
report_scope="single_sleeve"and callsReportAgent - After all sleeves complete, TradeCrew can build an aggregate context spanning all sleeves
- This aggregate context supports
report_scope="multi_sleeve_trade", enabling a combined trade report across sleeves
10. Supports batch execution across multiple contexts
At the launcher level, TradeLauncher can:
- load explicit contexts from YAML
- expand simplified
TRADE_SPECSinto full contexts - run multiple trade contexts in parallel via
ThreadPoolExecutor
How Assets Are Selected (AssetAllocationAgent)
The AssetAllocationAgent selects assets dynamically at each decision point, based on both market behavior and strategy compatibility. Instead of using a fixed asset universe, AlphaWeave continuously ranks and filters assets to determine which ones should be actively traded.
Each candidate asset is scored using a combination of: recent returns (short-term and lookback), trend strength, volatility, drawdown, and liquidity. These metrics are combined into a base score that reflects the asset's current trading quality.
This base score is then adjusted using the strategy's asset_fit profile. For example:
- Momentum strategies prefer assets with strong trend persistence and high liquidity.
- Mean-reversion strategies prefer range-bound assets with frequent reversals.
- MACD / breakout strategies prefer assets with clean directional moves and volatility expansion.
Assets that do not match the active strategy's behavior are penalized or excluded, even if their standalone performance is strong. This ensures that asset selection is strategy-aware rather than purely statistical.
In directional sleeves, the agent selects the top-ranked assets using a top-k selection process, with additional controls such as minimum holding periods, cooldowns, and switch thresholds to avoid excessive turnover.
In market-neutral or basket sleeves, assets are evaluated jointly. The agent selects combinations of assets that satisfy: correlation stability, volatility alignment, liquidity compatibility, and spread mean-reversion characteristics. This ensures that selected assets function as a coherent long-short or relative-value structure, rather than independent trades.
The result is a continuously evolving asset set that reflects both current market conditions and the behavioral requirements of the active strategy.
How Strategies Are Selected (StrategyAllocationAgent)
The StrategyAllocationAgent determines which strategy should be active within each sleeve at any point in time. Rather than committing to a single strategy, AlphaWeave continuously evaluates a set of candidate strategies and selects the one best suited to current conditions.
Each candidate strategy is shadow-run on the currently selected assets. The agent evaluates recent performance using: rolling return, Sharpe ratio, drawdown, and consistency.
In addition to realized performance, strategies are evaluated using regime compatibility:
- Momentum strategies perform best in trending environments.
- Mean-reversion strategies perform best in range-bound markets.
- Breakout or MACD strategies perform best during volatility expansion.
- Relative-value strategies perform best when cross-asset relationships are stable.
The agent also incorporates each strategy's asset_fit profile, ensuring that strategies are only selected when the current asset set supports them. This prevents situations where a strategy is selected in a regime where its underlying assumptions do not hold.
Strategy switching is controlled by: minimum holding periods, cooldown periods, and switch thresholds. A new strategy is only activated if it is meaningfully better than the current one, preventing unnecessary churn.
In market-neutral sleeves, strategy selection operates at the basket level, choosing between relative-value, spread, and regime-sensitive strategies depending on whether asset relationships are stable, dislocating, or breaking down.
The result is a system that continuously adapts not only what assets are traded, but also how those assets are traded, ensuring that the active strategy is always aligned with both market conditions and asset behavior.
Multi-strategy execution:
When multiple strategies are active within a sleeve, they are not executed independently. Instead, their outputs are combined through PortfolioAgent weighting.
- Each strategy produces signals and a PSM (conviction)
- PortfolioAgent assigns weights across strategies based on relative quality and risk
- Final exposure reflects a weighted combination of strategy views
This allows AlphaWeave to express multiple strategies simultaneously, rather than forcing a single "winner," improving stability across regimes.
How AlphaWeave Augments Any Strategy
AlphaWeave is strategy-agnostic. A base strategy still generates raw signals, but AlphaWeave augments that strategy through two coordinated allocation layers before any trade is executed: StrategyAllocationAgent, which determines the active strategy set within each sleeve or leg, and AssetAllocationAgent, which determines the active assets that those strategies operate on.
These layers operate jointly rather than sequentially. Strategy selection depends on how well candidate strategies perform on the current asset set, while asset selection depends on how well assets match each strategy's asset_fit profile. This creates a continuous feedback loop between strategies and assets, ensuring that capital is deployed only when both are aligned with current market conditions.
The system supports both single-strategy and multi-strategy configurations. Strategies are added, removed, or replaced over time using switching thresholds, minimum holding periods, and cooldown constraints, ensuring that rotation is deliberate and stable rather than reactive to short-term noise.
Once the strategy-asset configuration is determined, the AI stack refines how that setup is executed through a conviction-based execution layer. AlphaWeave supports two LLM run modes. In full LLM mode, market intelligence, reflection, decision review, and decision agents each contribute context. In compact underwriting mode, the system sends one concentrated decision packet to the DecisionMakingAgent so the LLM acts as an underwriter over the policy path rather than replacing strategy and asset selection.
The DecisionMakingAgent produces both action (BUY / SELL / HOLD) and a position_size_multiplier (PSM), which expresses the approved capital scale for the signal. This PSM is passed to the PortfolioAgent, which converts conviction into realized capital allocation. As a result, AlphaWeave does not simply decide whether to trade - it determines how much capital to deploy, dynamically scaling exposure up for high-confidence opportunities and down for weaker signals.
Execution is therefore driven by: timing, holding horizon, conviction-based sizing (PSM), and risk control, with a triage layer determining when compact AI/PSM underwriting is required. Expanded full-agent reasoning is reserved for diagnostics, ablation, and deeper evidence generation.
What learning from historic behavior means
In Compact AI+PSM mode, historic behavior is compressed into a single execution packet: training-window strategy fit, selected-asset behavior, live measured-window state, prior policy actions, transition-tape evidence, and forward attribution from earlier runs. The LLM does not rediscover the strategy from scratch; it underwrites whether the current strategy/asset state deserves a change in action, holding horizon, or position size.
- Strategy selection: use training and shadow strategy behavior to decide whether a strategy change has enough evidence to beat the incumbent path
- Asset selection: use strategy-specific asset fit, realized drawdown, and selection persistence to avoid rotating away from working baskets too quickly
- Strategy-asset interaction: learn which combinations of strategies and assets produce robust outcomes, not just strong standalone performance
- State underwriting: classify the live setup as a new entry, working winner, rebound watch, profit-protect case, risk-exit case, or no-edge case before changing exposure
- Signal calibration: map compact LLM confidence to action throttles and position size multiplier (PSM) limits instead of treating confidence as a standalone trade signal
- Horizon tuning: learn when external conditions justify extending a clean winner or shortening a weakening trade
- Asset risk adaptation: adjust per-asset exposure and liquidation behavior based on volatility, drawdown, beta context, and realized path quality
- Portfolio risk adaptation: control capital allocation across assets, strategies, sleeves, and legs, including concentration, leverage, and drawdown management
- Allocation persistence: maintain a working state unless the compact underwriter sees evidence strong enough to justify rotation, tapering, or exit
- Forward attribution: compare accepted and rejected policy decisions against later bars so policies can be retained, revised, or deactivated after evidence accumulates
- Explainability: maintain transition tapes and decision history that tie strategy selection, asset selection, policy decisions, compact LLM confidence, and execution adjustments to measured outcomes
Effect of Granularity on AI Performance
This section quantifies how the full AlphaWeave stage ladder behaves when the same measured window is run at different bar granularities. The ladder is: strategy switching, asset switching, policy-only overlay without triage, and Compact AI/PSM over that policy path.
Time frame: Periodicity is explicit here: all variants use the same measured start and end dates, while only the bar interval changes. A 1d run therefore has fewer decision points in the same calendar window, while 6h, 3h, 1h, and 15m runs expose progressively more opportunities for triage, duration changes, and PSM changes. The comparison should be read as "same period, different bar cadence."
Assumptions and scope for all results below:
- Run basis: completed full-stack granularity sweep
two_day_full_stack_granularity_20260825_172309 - Period: August 17, 2026 through August 18, 2026
- Baseline assets: COIN + NVDA
- Candidate assets: AMD, COIN, GOOGL, NVDA, TSLA
- Baseline strategy: momentum
- Candidate strategies: Bollinger Bands, buy and hold, MACD crossover, momentum, RSI
- Compared granularities: 15m, 1h, 3h, 6h, and 1d over the same measured dates
- Deltas: each pickup is incremental versus the preceding stage; total improvement is final overlay return minus baseline return
The TriageAgent is not only a cost-reduction mechanism. It performs:
- LLM gating: decides whether to invoke Compact AI/PSM underwriting, or optional full-stack reasoning agents in diagnostic mode
- Event forcing: triggers evaluation around earnings, macro events, and regime boundaries
- Duration enforcement: forces exits when holding periods are exceeded
- Cadence control: ensures periodic reevaluation even in low-signal regimes
The key insight is that AI impact scales with granularity. At coarser resolutions, AI has fewer opportunities to intervene. As bar frequency increases, confidence updates, duration decisions, and PSM-driven capital allocation occur more often. This allows the system to continuously reallocate capital toward higher-conviction opportunities and away from weaker signals, creating a compounding effect on both return and risk.
At higher granularities, AlphaWeave behaves less like a static strategy and more like a continuously re-optimizing capital allocation system, where each bar provides an opportunity to rebalance conviction across positions.
The completed sweep shows a practical limit: finer bars created more opportunities for strategy and asset selection to add value in this short window, but Compact AI/PSM did not add material incremental return over policy in this specific two-day sample. Coarser bars were more stable but produced fewer stage changes. These are not annualized values. Conceptually, the granularities still balance:
- Signal persistence: enough time for trends or reversals to develop
- Update frequency: sufficient opportunities to adjust PSM and duration
- Noise control: avoiding excessive microstructure noise at very high frequency
| Granularity | Baseline return | Strategy pickup | Asset pickup | Policy pickup | Compact AI/PSM pickup | Total improvement | Overlay return | Overlay max drawdown | DD delta |
|---|---|---|---|---|---|---|---|---|---|
| 15m | -0.82% | +0.15% | +0.52% | +0.00% | -0.00% | +0.67% | -0.16% | -0.87% | +0.80% |
| 1h | +0.17% | +0.18% | -0.18% | -0.00% | -0.01% | -0.01% | +0.16% | -1.88% | -0.01% |
| 3h | +0.73% | +0.00% | +0.00% | +0.00% | +0.00% | +0.00% | +0.73% | -1.70% | +0.00% |
| 6h | +0.84% | +0.00% | +0.00% | +0.00% | +0.00% | +0.00% | +0.84% | -1.68% | +0.00% |
| 1d | +1.82% | +0.00% | -0.60% | +0.00% | +0.00% | -0.60% | +1.22% | -0.60% | +0.33% |
Interpretation: This full-stack sweep completed on live data for August 17-18, 2026. It validates the same four-stage attribution ladder across 15m, 1h, 3h, 6h, and 1d. In this short sample, 15m captured the strongest stage improvement, 3h and 6h were effectively unchanged from baseline, and 1d reduced drawdown but gave up return through asset selection.
Market Extensions: Shorts, Derivatives, and Crypto
This section summarizes conservative, unvalidated estimates for the expected performance impact of expanding the tradable universe to include short positions, futures and options, and crypto assets, evaluated under the same AI framework described earlier. These figures are not presented as completed measured-run results, and they should be read as validation targets rather than claims of realized alpha.
Time frame: Return ranges in this section are annualized estimates for future validation. They are separate from the realized 10-business-day sampled-window results elsewhere in the presentation.
Results are shown relative to a restricted baseline: a long-only, equity-only implementation of the same strategy and AI execution layer, without access to shorts, derivatives, or crypto.
This isolates the incremental value of expanded market access, rather than differences in strategy logic or execution. These capabilities can also hurt returns: borrow availability, funding costs, futures roll behavior, options theta/volatility mispricing risk, crypto spread/slippage, liquidity gaps, and cross-asset correlation during stress can all overwhelm the intended edge. The ranges therefore include downside cases until each market extension is validated with its own measured run.
The return argument is not that adding instruments magically creates alpha. The argument is that AlphaWeave already separates selection, execution policy, Compact AI/PSM underwriting, and risk control. New instruments become useful only when they give that machinery a cleaner expression of an already-detected state: downside participation through shorts, market-beta control through index futures, bounded-risk convexity through options, or higher-volatility continuation/reversal through crypto. The estimated ranges are therefore small and conditional: they assume the system can identify the state, size it conservatively, and avoid overtrading when costs dominate.
The expected-return ranges are sized as net incremental contribution over the restricted long-only equity baseline. They are lower than the gross opportunity because each extension must survive three filters before it counts: a tradable signal must exist, the policy/AI layer must improve expression of that signal, and risk/cost controls must leave enough net edge after execution. If those filters fail, the downside end of the range is the more realistic outcome.
- Representative strategies: RSI + Bollinger, Fast MACD
- Representative assets: NVDA, COIN, ES futures, BTC
- Granularity: 6h
- Baseline: Long-only equities with the same strategy and AI execution layer
- Deltas: Estimated incremental vs baseline, annualized, before being accepted into the main performance claims
| Market capability enabled | Estimated Delta Annual Return (Current AI) |
Estimated Max Drawdown Reduction (Current AI) |
Estimated Delta Annual Return (AI + Enhancements) |
Estimated Max Drawdown Reduction (AI + Enhancements) |
Primary driver of improvement | Why a return pickup could exist | What can erase it |
|---|---|---|---|---|---|---|---|
| Short selling (equities) | -0.5% to +0.8% | 0-15% | -0.3% to +1.2% | 0-20% | Monetizes downside moves; symmetry across regimes | When the long-only strategy sees a negative regime or failed winner, shorts let the same state machine express the view instead of only reducing exposure. | Borrow cost, squeezes, gap risk, and forced buy-ins can turn correct direction into poor realized return. |
| Equity index futures | -0.2% to +1.0% | 0-25% | 0.0% to +1.5% | 5-30% | Cleaner macro exposure; reduced single-name noise | When the stock signal is good but market beta is hostile, futures can separate single-name selection from broad-index exposure. | Basis risk, roll cost, leverage, and wrong hedge ratios can remove the expected benefit; return pickup may show mostly as drawdown reduction. |
| Options (directional & spreads) | -0.8% to +0.7% | 0-25% | -0.4% to +1.2% | 5-35% | Convex payoff; bounded downside risk | Options can express high-conviction event or breakout states with capped downside, especially when the state machine wants participation but not full stock exposure. | Theta decay, wide spreads, volatility overpayment, and timing error can make the option lose even when the underlying thesis is directionally reasonable. |
| Crypto spot / perpetuals | -1.0% to +1.2% | 0-20% | -0.5% to +2.0% | 0-30% | Higher volatility amplifies AI timing and sizing | Crypto adds persistent 24/7 volatility where triage, duration, and PSM can matter more because state changes occur outside equity-market hours. | Funding, weekend gaps, fragmented liquidity, exchange risk, and violent regime breaks can overwhelm signal quality. |
| All extensions combined | -1.5% to +2.5% | 0-35% | -0.8% to +3.5% | 5-45% | Diversified return sources with AI-controlled exposure | Different instruments let the same forecast state choose the cleanest expression: equity, hedge, convex payoff, or cross-asset volatility. | The combined range is discounted because correlations rise in stress, risk controls overlap, and individual extension benefits are not additive. |
Notes: "Current AI" refers to Agents + Duration + Position Size Modulation (PSM). "AI + Enhancements" additionally includes improved PSM calibration, confidence slope tracking, and loss-velocity controls. Market-extension figures are estimates, not completed measured-run results. Negative return values are possible and explicitly shown because a capability is only valuable if its gross opportunity survives transaction costs, borrow or funding cost, slippage, execution timing, and risk caps. Effects are indicative and not strictly additive due to correlations between mechanisms.
Key takeaway: Expanding market access increases the opportunity set, but also introduces additional sources of risk. The AI stack converts this flexibility into improved outcomes by dynamically controlling exposure, duration, and conviction-based capital allocation, enabling shorts, derivatives, and crypto to be used within a disciplined and risk-aware framework.
Current Capabilities and Next-Stage Enhancements
AlphaWeave has evolved from a pure AI execution overlay into a multi-layer allocation and execution system. The architecture now includes: strategy selection, asset selection, capital allocation, decision review feedback, and a PSM-driven AI execution layer.
Many previously "planned" features are now part of the baseline system. The focus going forward is on improving interaction between layers, especially how conviction signals translate into capital deployment.
Time frame: Return figures in this enhancement section are directional annualized estimates for future validation work. They are separate from the realized 10-day sampled-window returns reported in the monthly performance table above.
Tier 1: Strategy and Asset Allocation (Already active, with selection-methodology enhancements)
AlphaWeave already performs dynamic strategy selection and
asset selection at the sleeve or leg level using market conditions,
historical performance, regime fit, and strategy-specific asset_fit profiles.
The current methodology maps each strategy's declared fit profile into numeric
score_weights, which are applied to computed asset metrics such as lookback return,
short-term return, trend slope, volatility, drawdown, and liquidity.
- Selects the most appropriate strategy or active strategy set for the current regime
- Selects assets whose measured behavior best matches each strategy's
asset_fitprofile - Uses direction-aware fit logic for long vs short legs when
long_fitorshort_fitis defined - Supports directional sleeves and market-neutral / basket sleeves
- Allocates capital across selected strategies and selected assets via PortfolioAgent
What it already does:
- Uses explicit strategy metadata such as
selection_mode,preferred_regimes,direction_aware, andbasket_fit - Uses numeric
score_weightsto translate strategy fit intent into asset-ranking adjustments - Ranks assets by combining a base market-quality score with a strategy-specific asset-fit score
- Ranks strategies using shadow performance, regime fit, DMA overlay, and coarse asset-fit compatibility
What it does not yet fully do (enhancement opportunity):
-
Behavior-word-to-metric compiler: automatically translate strategy descriptors such as
range_bound,trend_persistence,mean_reverting,gap_prone, orclean_follow_throughinto computed feature requirements, instead of relying primarily on manually definedscore_weights. - Strategy-conditional feature engineering: compute features specific to each strategy family, such as band-touch frequency, RSI reversal success rate, whipsaw frequency, breakout follow-through, return autocorrelation, and mean-reversion half-life.
- Regime-conditioned asset fit: evaluate how each asset behaves inside specific market regimes, rather than using only one generic metric set across all conditions.
- Basket-aware asset selection: score market-neutral baskets using cross-asset features such as rolling correlation, spread stability, hedge ratio, volatility ratio, beta neutrality, cointegration, and factor exposure balance.
- Joint strategy-asset optimization: optimize the active strategy set and active asset set together, instead of approximating the interaction through sequential scoring.
Measured impact:
Allocation improvements in the current evidence set are measured as incremental performance versus a fixed
momentum baseline with no strategy switching, no asset switching, and no AI execution layer.
The measured run is the latest completed 12-window full-stack sampled run: twelve representative 10-business-day windows,
6h bars, and row-specific baseline/candidate assets shown in the monthly table.
Time frame: The realized evidence shown earlier is over sampled 10-business-day measured windows; the expected
contribution below is an annualized validation target, not a completed measured-window result.
Selection-methodology enhancements should also be measured by comparing the current
score_weights-based allocator against an enhanced allocator that adds
strategy-specific, regime-conditioned, and cross-asset features.
Expected contribution: Directional estimates for allocation logic are +3-8% annual return improvement under broader validation. The enhanced selection methodology is estimated to add another +0.5-2.0% annual return improvement, primarily through better asset-strategy matching, fewer poor-regime selections, improved basket construction, improved Sharpe, and reduced drawdown.
Tier 2: AI Execution Layer (PSM-based capital allocation)
AlphaWeave already adjusts position sizing and holding duration
using a conviction-based signal (position_size_multiplier, or PSM).
PSM translates decision confidence into deployed exposure after the asset and strategy
have already been selected.
- Scales exposure based on confidence in each signal
- Reduces capital allocation in uncertain or high-risk conditions
- Adjusts holding duration dynamically based on signal persistence
- Applies execution logic consistently across assets, strategies, sleeves, and legs
What it already does:
- Uses
position_size_multiplierto increase or reduce exposure relative to normal size - Passes conviction-adjusted sizing into PortfolioAgent so sizing becomes capital allocation, not just a signal annotation
- Allows RiskManagerAgent to cap, reduce, or liquidate exposure after PSM is applied
- Supports direction-aware execution through sleeve and leg context
What it does not yet fully do (enhancement opportunity):
- Nonlinear PSM calibration: map confidence to exposure using calibrated curves instead of a simple linear multiplier.
- Selection-aware PSM: adjust PSM based on asset-fit quality and strategy-fit quality, so a high-confidence signal in a weakly matched asset receives less capital than the same signal in a strongly matched asset.
- Portfolio-aware PSM: size each position based on current portfolio concentration, correlation, sleeve exposure, and available risk budget.
- Regime-dependent sizing curves: use different PSM behavior in trending, range-bound, high-volatility, and risk-off regimes.
- Loss-velocity throttling: reduce PSM automatically when losses accumulate faster than expected, even before formal drawdown limits are breached.
Measured impact:
Execution improvements are measured as incremental performance versus the same strategy and asset selection
with adjust_size=False and adjust_duration=False.
In the current evidence set, that means the latest completed 12-window full-stack sampled run: twelve representative
10-business-day windows, 6h bars, momentum baseline, and the
row-specific assets shown in the monthly table.
Time frame: In the current evidence set, this is measured over sampled 10-business-day windows. The expected
contribution below is annualized only as a future validation target.
Enhanced PSM should be measured against the current PSM implementation while holding
selected strategies and selected assets constant.
Expected contribution: Directional estimates for PSM-based execution are +2-6% annual return improvement under broader validation. Enhanced PSM calibration is estimated to add another +0.5-1.5% annual return improvement, primarily through better capital efficiency, improved risk-adjusted sizing, reduced over-sizing of weak signals, faster loss throttling, and improved Sharpe.
Tier 3: Learning and Feedback (Evidence capture active; calibration still being validated)
AlphaWeave already records trade outcomes, strategy performance, attribution data, decision history, asset-selection history, strategy-selection history, and agent reasoning. DecisionReviewAgent can turn these records into explicit outcome feedback, and the compact AI/PSM path can include prior outcomes, transition-tape evidence, and forward attribution inside the underwriting packet. That makes the system auditable and feedback-ready, but it should not be presented as fully automatic online policy learning until repeated run evidence validates the calibration loop.
Policy-learning boundary: AlphaWeave can replay outcomes in the simulator, classify policy wins and losses, and generate policy activation/deactivation evidence. It does not automatically insert new trading policy into production. Policy changes remain review-driven: the evidence is inspected, simulator replay is used to test the proposed change, and only then is a policy promoted, disabled, or adjusted deliberately.
- Logs decision-level and position-level outcomes
- Uses DecisionReviewAgent to retrieve prior decision outcomes and convert them into guidance
- Generates attribution reports across strategies, assets, sleeves, and agents
- Stores historical context and prior reasoning for retrieval by downstream agents
- Uses historical outcomes as evidence for compact underwriting, policy review, and simulator-based policy tuning
- Keeps policy insertion human-reviewed rather than automatically rewriting runtime rules from a single backtest
What it already does:
- Captures realized outcomes, transition tapes, and policy attribution for later review
- Feeds available prior-outcome summaries into compact AI/PSM underwriting when the path is enabled
- Feeds historical strategy performance into strategy selection
- Stores strategy
asset_fitprofiles and selection history for reporting and diagnostics - Uses attribution and risk results to support policy activation/deactivation review
- Produces simulator-ready transition tapes so proposed policy edits can be replayed before activation
- Allows PSM and decision confidence to be constrained by prior performance context when that evidence is present
What it does not yet fully do (enhancement opportunity):
-
Learn asset-fit weights from realized outcomes:
update
score_weightsbased on which asset features actually predicted profitable trades for each strategy. -
Learn behavior-word mappings:
validate whether descriptors such as
range_bound,trend_persistence, andmean_revertingare correctly represented by the current metrics. - Counterfactual selection testing: compare selected assets and strategies against rejected alternatives to determine whether the allocator made the correct decision.
- Agent influence weighting: quantify which agent's recommendation improved or hurt performance and adjust that agent's future influence weight.
- Online calibration: continuously recalibrate strategy weights, asset-fit weights, and PSM mappings after each rolling evaluation window.
Measured impact: Learning improvements should be measured by comparing rolling out-of-sample backtests before and after feedback updates. Evaluation should track annual return, Sharpe, max drawdown, turnover, selection stability, asset-switch accuracy, strategy-switch accuracy, and whether selected assets outperform rejected candidates under the same strategy. The current measured evidence is limited to the latest completed 12-window full-stack sampled run: twelve representative 10-business-day windows, 6h bars, momentum baseline, row-specific assets from the monthly table, and Compact AI/PSM as the LLM path. Time frame: No annual learning-return result is claimed here from the short-window run; the return range below is a longer-horizon validation target.
Expected contribution: Directional estimates for learning and feedback are +0.5-1.5% annual improvement under broader validation. Enhanced selection-learning and calibration is estimated to add another +0.25-1.0% annual improvement, mainly from reducing repeated selection mistakes, improving strategy-specific asset fit, stabilizing rotations, and making PSM calibration more data-driven.
Because AlphaWeave already implements dynamic selection, allocation, and conviction-based execution, the remaining enhancement opportunities are expected to improve calibration, robustness, and risk-adjusted performance more than raw return generation.