Vajra Astra

Portfolio

As of n/a

Analysis

As of n/a

Audit, Debate & Research Last run: never
1) Choose Analysis Mode ⓘ
Audit: one model column. Debate: bull/bear transcript.
2) Select Audit Scope ⓘ
Will audit the current table view (use View and Open/Closed above the table).
Uses the table filters above, or one selected position.
3) Configure & Run
Provider routing and Model selection: .
Import Position Audit Last run: never

No API keys — generate a payload from the current table view, then import Action & Score. ⓘ

1) Generate Position Audit Payload for AI Models
Payload will include the current table view (use View and Open/Closed above the table).
2) Choose Model & Import Results
Tune Consensus Action and Confidence Score Input Consensus score last recalculated: never

Choose which model signals and weights feed Consensus Action and Confidence Score.

1) Sources: Average included confidence scores (Score weight) and included actions into a directional signal (Signal weight).
Source Include Score weight (0–1) Signal weight (0–1)
Vajra Astra
Primary
Secondary
Tertiary
Debate ⓘ
2) Agreement: Add a bonus when those actions agree on direction, or a penalty when they disagree.
3) Factor rubric: Mix this share of the factor-rubric score into Confidence after agreement — it does not change Consensus Action. ⓘ
4) Action thresholds: If Confidence is at least Action Min Score, map the weighted signal to Consensus Action. ⓘ
Configure Portfolio Context Thresholds Loading…

When enabled, stop-rules and buy-more thresholds are used by Vajra scoring and as a part of portfolio_context to Audit, Debate, and the debate rounds inside a Research Desk Report. ⓘ

Stop Rules

When enabled, stop-loss% and stop-win% are compared vs position Total P/L%. It acts as a gate to tighten the resulting Final Action towards Sell or Underweight but doesn't affect the Consensus Action.

Buy More Min Score

When enabled, OVERWEIGHT needs composite ≥ +0.30 and action_score ≥ buy_more_min_score;
BUY needs composite ≥ +0.45 and action_score ≥ max(75, buy_more_min_score + 5). ⓘ

Research

As of n/a

Research Desk Report

Select a symbol in the table with the Run Research Desk Report radio, then run from this panel. ⓘ

Showing —
Layout

Alpha Lab

As of n/a

Idea Copilot ⓘ
Model
Active agent: loading…
Conversation
Ask a question below. Answers stay in this thread — including Explain.
Idea Queue Symbols mentioned in Ask and Explain, split by Min Rubric Idea Score.

Symbols mentioned in Ask and Explain, split by Min Rubric Idea Score. ⓘ

Active Ideas Above Threshold
Parked Ideas Below Threshold

Kept for tuning the threshold; not treated as active ideas.

Signals Engine ⓘ
ⓘ Scoring weights: .

Command Center

Operations Dashboard

Running Deploy

…
Commit …
Digest …

Database

…

AWS Cost

About a day behind

…

Site Health

…

Activity

7 days Today
Sign-ins……
People active……

AI runs

Last 7 days

Position Audit Debate Analysis Research Desk Report
Successful………
Errors………

Settings

Account

Change Password

Enter your current password, then choose a new one. Other browsers where you are signed in will be signed out.

Delete Account

Delete Account ends access immediately. You are signed out and cannot sign in again, including with a password reset. Your login details, portfolio information, and any stored API keys are deleted the next time the delete job is run. Mirrored activity stays, without this account attached.

AI Models

Provider Routing

Primary AI router and the API key for the selected router. ⓘ

Model Selection

Exact models via Perplexity for Position Analysis and Debate (Bull/Bear/Judge). Each lane is one company catalog: ChatGPT, Gemini, or Claude. Idea Copilot / Explain picks its own model in the Alpha Lab tab. Each call uses the provider and model selected here. The name next to each lane is what the platform calls that lane.

Data Refresh and Staleness

Market Data

Days of price history pulled per symbol when you click Refresh Data on the top right corner.

Company News

Days of news headlines ingested per symbol and stored by published date. They are used to calculate News Avg & News Score. After changing the lookback, Save, then Refresh Data to ingest the new window and recalculate those scores.

Staleness Thresholds

Days since the most recent price bar, company headline, or Fed rate change before that source is flagged stale. Market and news staleness flags report the oldest of those latest dates per portfolio.

Alpha Lab

Idea Copilot Queue

How long Active Ideas stay listed. Ideas older than this (by as_of) leave the queue for the holdings portfolio on workspace load and when you click Expire AI Ideas on Alpha Lab → Idea Queue. Distinct from Pending Signals (days) under Signals Engine.

Rubric Idea Score

Ask and Explain mentions are scored for the Idea Queue — not Signals ADD / SELL / WATCHLIST BUY.

Rubric Idea Score (fixed weights) = 0.30×confidence + 0.25×trend + 0.20×portfolio_fit + 0.15×fed + 0.10×metrics

At or above this threshold → Active Ideas; below → Parked Ideas (kept for tuning). This path stops at the Idea Queue. For held positions, the same composite continues through Vajra → model audits → Consensus → Final on Position Analysis. Lower to keep more ideas; raise to be stricter.

Signals Engine

Deterministic, non-AI scoring for Signals Engine and the Vajra composite. Pending listing window, then the 4 scoring steps. Save and then re-run Run Signals Engine (or Refresh Data) for new signal rows.

Signal Queue

How long pending Signals Engine rows stay listed on Alpha Lab. Approved/rejected history stays browsable.

Step 1 — Candidate Universe

Market scan (Alpha Lab Portfolio blank): score the top N most liquid symbols by latest daily volume. Selected portfolio: score (a) every open holding in that portfolio, plus (b) the same top-N liquid names. This is a blind symbol scan — it does not use your P/L or cross-account concentration.

Set to 0 to score holdings only (no liquid-market discovery names).

Step 2 — Composite Score (about −1 to +1)

For each candidate with enough price history, build six raw factors:

  • Trendraw: 0.5 × 63-day return + 0.5 × 126-day return; subtract 0.04 if price is below ~200-day mean.
  • Valueraw: −(0.45×PE + 0.30×PB + 0.25×EV/EBITDA) — cheaper looks better.
  • Qualityraw: 0.45×ROE + 0.30×EPS growth + 0.25×revenue growth − 0.50×debt/equity.
  • Volraw: −(60-day realized vol + 252-day max drawdown) — calmer looks better.
  • Newsraw: average company news sentiment over the News lookback window, configurable under .
  • Macroraw: shared Fed-funds surprise for the run (distinct rate-change dates, 180-day lookback with half-life decay; falls back to the latest print if the window is empty; n/a when no events exist). Not z-scored across symbols.

Each raw factor except Macro is then z-scored across that day’s candidates and clamped to [−1, +1]. Those normalized scores (Trend, Value, …) — not the raw values — are what enter Composite (Macro enters as the shared decayed surprise, or 0 when n/a):

Composite = wtrend·Trend + wvalue·Value + wquality·Quality + wvol·Vol + wnews·News + wmacro·Macro

Weights below are relative importance and are renormalized to sum to 1.0 when you save.
From the same Composite, Confidence (0–100) is strength only — confidence does not choose the action:

Confidence = clamp(55 + |Composite| × 35, 0, 100)

Composite factor weights
Step 3 — Action Mapping (held / not-held outcomes)

Action is chosen from held vs not held and where composite sits vs the thresholds below. Confidence is not used in this decision. These are action bands inside Signals — not the three surfaces in Where Scoring Is Used.

  • Held and composite > Add threshold → ADD (increase size idea).
  • Held and composite < Sell threshold → SELL (reduce size idea).
  • Not held and composite > Non-held buy threshold → WATCHLIST_BUY (new buy candidate).
  • Otherwise → NO_ACTION.

This action is a coarse blind stance. Vajra Astra in Position Analysis then layers P/L, stops, market metrics, and rubric idea score on top of the same composite. Full chain (composite → factors → rubric → Vajra → model confidence scores → Consensus → Final) is in .

Action thresholds (each value on the Composite scale)

Allowed range for every threshold: −1.00 to +1.00 (same scale as Step 2 Composite). Values outside that range are clamped on save.

Current thresholds (saved values): Add 0.45, Sell −0.35, Not-held buy 0.55. Keep Sell < Add so held names have a middle NO_ACTION band. Not-held buy is usually ≥ Add (a bit stricter for new names).

Tuning: raising Add or Not-held buy → fewer / stronger buy-side signals; lowering Sell (more negative) → fewer / stronger sell signals; moving them toward 0 → more actions fire.

Step 4 — Sizing Metadata

When Step 3 emits an action, the engine also stores two sizing fields on the recommendation:

  • Target weight — the suggested portfolio share for that symbol (e.g. 0.08 means about 8% of the portfolio). The controls below tune how that share is derived for ADD / SELL / new-buy actions.
  • Horizon — suggested holding period in days for the thesis after you take the action (e.g. ~90 days for ADD, ~30 for SELL, ~120 for a new buy). It is metadata about how long the idea is meant to remain relevant once sized — not a deadline to place the trade by. Horizon days are attached automatically by action type; they are not editable in this panel yet.

Neither field changes the Step 3 action itself, and neither is used to calculate the final Vajra Astra action and score. Target weight is applied when you Approve (risk may adjust/cap it) and by rebalance suggestions — these fields are not shown as columns on the Signals Engine table today.

How Scoring Works

Terminology

  • Position Analysis: Held-position advice view across all portfolios — Vajra Astra + AI model Audit/Debate/Research analysis, Consensus, and Final Action & Score. Click a symbol for the position deep dive.
  • Scores vs factors: A score (0–100) is conviction in the Buy/Overweight/Hold/Underweight/Sell decision. A factor (0–100) is an input that feeds into scores.
  • Signals Engine composite: Blind market blend of Trend, Value, Quality, Vol, News, and Macro on [−1, 1]. Weights live in Signals Engine.
  • Rubric Idea Score: Fixed-weight blend of Confidence, Trend, Portfolio Fit, Fed, and Metrics (not a Settings control). Gates Ask Active vs Parked ideas on Alpha Lab and also feeds the Vajra action score.
  • Vajra Astra action score: Held-position conviction (0–100) on Position Analysis. Maps to Buy / Overweight / Hold / Underweight / Sell — not Signals ADD / SELL / WATCHLIST_BUY.
  • Portfolio context (Stop Rules and Buy More Min Score): Stop and buy-more gates for held positions. They are under .
  • Consensus Action/Confidence Score: Weighted blend of Vajra Astra and the three model lanes (plus factor rubric and optional debate). Tune under .
  • Final Action: Consensus Action after the stop-loss/stop-win last gate when Use Stop Rules is on. Only moves toward Sell/Underweight; never loosens the consensus blend. This last gate does not rewrite model columns already on the table.

Where Scoring Is Used

All three are deterministic (non-AI) and share the Signals Engine composite. Each step adds context: Market Scan is the symbol only; Portfolio Signals Engine adds holdings and weights; Vajra Astra adds P/L, stops, and rubric for held names — not a third Signals Engine run.

  1. Market scan — No universe selected. Top liquid names only; no holdings, weight, or P/L.
  2. Single-portfolio Signals Engine — One account’s holdings plus those liquid names. ADD/SELL sizing uses that portfolio’s weights.
  3. Vajra Astra score (Position Analysis) — Held positions (one portfolio or All for display). Adds weight, P/L, stops, and rubric. Actions are Buy / Overweight / Hold / Underweight / Sell.

End-to-End Pipeline

  1. Signals Engine Composite [−1, 1] (weights in Signals Engine).
  2. Signals Engine Confidence + Trend / Fit / Fed / Metrics factors (0–100 inputs).
  3. Rubric Idea Score (also gates Ask Active / Parked ideas).
  4. Vajra Action Score (60% base + 40% rubric, with P/L) → Vajra Action.
  5. Model audits each emit their own confidence_score (0–100) for the action.
  6. Consensus Action + Consensus Confidence Score (blend; tune in Position Analysis).
  7. Final Action = Consensus after stop-loss / stop-win last gate when Use Stop Rules is on.

Signals Confidence (composite strength) is not the same as model / Consensus Confidence Score (strength of the action recommendation). “Conviction” in tips is informal language for score strength — not a separate PA column (Research Desk risk cases use a separate 0–10 conviction field).

Vajra Astra Action Score

Held-position formula on Position Analysis (the Action (Vajra Astra) / score columns). Uses the same Signals Engine composite, then layers confidence, P/L, market metrics, and the Rubric Idea Score.

  • Base score (0–100) = 50 + (composite × 25) + (confidence − 50) × 0.30 + P/L component + metrics adjustment. Composite here is the six-factor Signals Engine blend (weights in Signals Engine).
  • Action score (0–100) = 60% × base score + 40% × Rubric Idea Score.
  • Action mapping uses both numbers. Composite is checked against hard-coded bands (about −1…+1). Separately, action score is checked against score floors. They are not the same test.
  • Bullish floors (Configure Portfolio Context Thresholds → Buy More Min Score, when enabled): OVERWEIGHT needs composite ≥ +0.30 and action score ≥ 50 (buy_more_min_score). BUY needs composite ≥ +0.45 and action score ≥ max(75, buy_more_min_score + 5). When the checkbox is off, OVERWEIGHT/BUY follow composite bands only. That floor is compared to the action score, not to composite.
  • Bearish side: mostly composite bands (e.g. ≤ −0.35 → UNDERWEIGHT, ≤ −0.55 → SELL), plus a few score < 40 checks in deep-negative / stop paths. Stop-loss and stop-win (when enabled) are under Position Analysis → Configure Portfolio Context Thresholds → Stop Rules.
  • Not Min Rubric Idea Score. Settings → Alpha Lab → Min Rubric Idea Score only gates Active vs Parked ideas. It does not set the buy-more floor.

Formulae

  1. Composite [−1, 1] = wtrend·Trend + wvalue·Value + wquality·Quality + wvol·Vol + wnews·News + wmacro·Macro. Weights in Signals Engine.
  2. Confidence = 55 + (|composite| × 35). Clamp 0–100.
  3. Trend Factor = 50 + (composite × 40). Clamp 0–100.
  4. Portfolio Fit = 40 if holding, 65 if not. Add 10 if on watchlist. Clamp 0–100.
  5. Fed Factor = 50 default, or 55 + (surprise × 30) − (min(days_since, 30) × 1.2). Clamp 0–100.
    surprise = (actual − forecast) / |forecast|
  6. Metrics = 50 base ± PE / EPS / beta / 52-week range. Clamp 0–100.
  7. Rubric Idea Score = 0.30×confidence + 0.25×trend + 0.20×portfolio_fit + 0.15×fed + 0.10×metrics
  8. Base score = 50 + (composite × 25) + (confidence − 50) × 0.30 + P/L + metrics adjustment.
  9. Action score (Vajra Astra) = 60% base + 40% rubric idea score.
  10. Bull/Bear (0–10) = clamp(5 + 2.4×composite + short/medium return clamps + 52w/valuation/beta/day-change terms, 0, 10).