[DOCS]

User Guide

Complete reference for the LOPJLB quantitative research platform. Every page, feature, and workflow documented. from first login to daily use.

[01]
Platform Overview
What LOPJLB does and how the pages connect

LOPJLB is a quantitative research platform covering 9,300+ U.S. equities and ETFs. Every trading day, the system runs a full pipeline: pull market data, compute signals across five proprietary models, score fundamentals (Value, Growth, GARP, Quality), infer the macro regime, and deliver the results to the screener.

The platform has six primary surfaces:

SCREENER
Full universe table with filters, views, chart, fundamentals, and signal state per ticker.
CHARTING
Multi-chart workspace. Load from watchlists, overlay normalized returns, compare up to 12 tickers.
SIGNAL CARD
Per-ticker deep dive: chart, signals, fundamentals, peer comparison.
METHODOLOGY
Full specification of the four proprietary models and three public overlays.
SD50
Model portfolio signal service. Monthly allocation via RSS feed (free), CSV download, and JSON API.
SETTINGS
Account, webhooks, alert preferences, and notification configuration.
[02]
Screener
The primary research surface. filter, sort, chart, and analyze the full universe

The screener is where most research happens. It loads the entire universe as a sortable, filterable table with an integrated chart panel. Every column is clickable for sorting. The layout has three zones:

Market overview header
The top bar shows the current macro regime (BULL / RECOVERY / BEAR / CRISIS), days in the current state, and key market breadth metrics. Click to expand for SPX, NDX, and bond data. This is driven by the regime inference job that runs daily.
Table columns
Columns are grouped into bands:
IDENTITY
Symbol, name, sector
HEADLINE SCORES
PERF (momentum-weighted quality composite across 6 timeframes), FUND (fundamentals), Q-SCORE (quality composite)
LIVE
Price, day % change (real-time via FMP)
REGIME
Per-ticker regime state
BACKTEST
Profit factor, trade count
TREND
Vs ATH %, 52-week position, direction arrow
SIGNALS
Composite score, buy/sell arrows, coil, exhaustion, ATR, trail %, flip state/date
META
Last data update timestamp
Search
Type in the search bar to filter by ticker symbol. If the ticker exists in the universe but is hidden by active filters, a CLEAR ALL FILTERS button appears. If the ticker is not covered, a REQUEST COVERAGE button lets you submit it for review.
Chart panel
Click any row to expand its inline chart. The chart supports multiple layers (toggle via the LAYERS button): price, OHLC, EMA, levels, stop, flip, 52W, signals (buy/sell/exhaustion/zone), and regime shading. Range options: 30D 90D 6M YTD 1Y 2Y 3Y, plus dynamic 5Y 10Y MAX buttons that appear when a ticker has sufficient historical data. Toggle between D (daily) and W (weekly) timeframes using the D/W switch. Weekly mode aggregates OHLCV by week, with signals showing the strongest signal fired that week. Export to PNG via the camera button.
Universe filters
Sector pills. filter by sector (Technology, Healthcare, etc.) or universe groups (SPY25, SP500, ETF, BDC, REIT, CEF, SPDR, MACRO).

Custom filters. add numeric filters on any column (e.g., Score > 3, PF > 1.5, Yield > 2%). Filters compose with AND logic.

Pagination. navigate pages or jump to Home/End. Page size adjustable (25/50/100 rows).
View modes
Three display modes are available: TABLE (default), CARDS (visual grid), and CHARTS (sparkline gallery). Toggle via the buttons in the controls bar.
CSV export
Pro users can export the current filtered view to CSV. The export mirrors exactly what you see on screen. The same columns, sort, and filters.
ETF holdings & exposure
Expand any ticker row to see an ETF EXPOSURE section at the bottom of the detail panel.

For stocks (e.g., NVDA): shows which ETFs hold the ticker, its rank within each ETF, and its portfolio weight (% = how much of the ETF's portfolio is allocated to this stock). Each ETF displays a colored direction dot (green = BUY, red = SELL) and a regime chip (BULL, RECO, BEAR, CRIS) so you can instantly gauge the signal state of the funds holding your ticker.

For ETFs (e.g., SPY, QQQ): shows TOP HOLDINGS. the largest positions by weight, each with its own direction dot and regime chip.

Click any ticker or ETF name in the list to jump directly to its expanded row in the screener. Data is refreshed monthly from FMP and covers 5,900+ ETFs. Holdings not yet cached are fetched live on demand.
[03]
Charting Workspace
Multi-ticker comparison and overlay analysis
Loading tickers
Open the charting workspace and use the LOAD button to load tickers from any of your watchlists. You can also manually add individual tickers using the search field. Up to 12 charts can be displayed simultaneously.
Chart grid layout
Charts auto-arrange in a responsive grid. Each chart shows the same layer controls as the screener's chart panel: price, signals, regime, levels, and all overlay toggles. Range options: 30D 90D 6M YTD 1Y 2Y 3Y, with dynamic 10Y and MAX appearing for tickers with extended history. Each chart has a D / W toggle to switch between daily and weekly aggregation.
Normalized overlay
When multiple charts are loaded, the overlay panel shows all tickers normalized to a common base. Tickers are grouped by signal direction (BUY / SELL) with a summary footer showing: buy/sell counts, positive/negative return counts, average normalized return, and regime distribution (BULL/BEAR).
[04]
Signal Card
Per-ticker deep dive. everything about one name on one page

Navigate to /signal/SYMBOL (or click a ticker in the screener) to open its signal card. The card is a single-page dossier with four collapsible sections:

Signal state
Current direction (BUY/SELL), regime, flip date and state, ATR stop level, MACD, stochastic, composite score, coil status, and exhaustion flags. This is the actionable summary.
Fundamentals
Three columns: Scores & Profile (Value, Growth, GARP, Fund scores as bar charts, plus ROIC/ROE/ROA and margin data),Valuation & Yield (P/E, P/B, P/FCF, EV/EBITDA, dividend yield, payout, buyback yield), and Risk (interest coverage, Altman Z, D/E, current ratio, beta). Archetype classification (Dividend Compounder, Growth Compounder, Value/Recovery, Balanced) shown with accent color.
Signal performance
Backtest metrics for the buy/sell signal, regime model, composite, and best combo: profit factor, win rate, trade count, expected return, total return. Visual W/L distribution bars. See the dedicated Signal Performance section below for full entry/exit logic.
Peers
Up to 6 peer tickers from the same sector, ranked by composite score. Each peer shows direction arrow and score. Click to navigate to that peer's signal card.
[04.1]
Signal Performance
How wins and losses are determined. entry/exit logic for each signal type

Every ticker is backtested against four independent signal models. Each model generates round-trip trades with a mechanical entry and exit rule. no discretion. A trade is a W (win) if exit price > entry price, and an L (loss) if exit price ≤ entry price.

Entry execution: next bar's OPEN after the entry condition triggers.
Exit execution: signal bar's CLOSE when the exit condition triggers.
Lookback: trades start after 250 bars of warm-up (needed for moving averages and regime estimation).

BUY/SELL (White Arrow)
Entry: combo5 direction flips to BUY (1). This is the main composite signal combining all five sub-indicators.
Exit: combo5 direction flips to SELL (-1).
Simplest model. follows the directional arrow exactly as it appears in the screener.
REGIME (HMM)
Entry: Hidden Markov Model detects regime = BULL (1) or RECOVERY (2).
Exit: HMM detects regime = BEAR (4) or CRISIS (5).
Macro-aware. holds through pullbacks within a bull regime, exits on structural trend change. Fewer trades, longer holds.
COMPOSITE
Entry: combo5 score ≥ 3 (at least 3 of 5 sub-signals agree = majority bull confluence).
Exit: combo5 score ≤ 0 (no remaining bull signals).
Consensus-driven. requires multiple indicators to align before entry, exits only when conviction collapses entirely.
BEST COMBO (Optimizer)
Entry: K or more bull signals fire simultaneously (from grid-searched subset of the 5 signals).
Exit: K or more bearish counterparts fire (exit K may differ from entry K).
Per-stock optimized. a sweep of all 31 signal subsets × entry/exit thresholds finds the combination with the best risk-adjusted score (PF0.7 × trades0.5 × win_rate0.3). Combos with >40% max drawdown are penalized. Entries during CRISIS regime are blocked.
Metrics explained
PF (Profit Factor): gross wins ÷ gross losses. PF > 1.0 = profitable system; PF > 2.0 = strong edge.
WIN: percentage of trades that closed at a profit.
TRADES: total round-trip trades over the full history (more = more statistical confidence).
E[R]: expected return per trade = (win_rate × avg_win) - (loss_rate × avg_loss).
W / L bars: average winning trade % (green) and average losing trade % (red). Asymmetry between these is what drives PF.
[05]
Fundamentals
Value, Growth, GARP, and Quality scoring explained

Every equity ticker receives four pillar scores (0–100) computed nightly by the fundamentals refresh job. Scores are sector-relative and use ~40 metrics per ticker. BDCs, REITs, and CEFs use separate, asset-class-specific scoring systems — see BDC / REIT / CEF Scoring below. Full specification on the Methodology page.

VALUE / 100
Sector-relative valuation, intrinsic value models, capital return, and balance-sheet safety. Proprietary weighting.
GROWTH / 100
Revenue trajectory, margin expansion, Rule of 40 alignment, and earnings momentum. Proprietary weighting.
GARP / 100
PEG-centric score blending growth durability, multiple expansion setup, and valuation discipline. Proprietary weighting.
QUALITY / 100
Archetype-aware composite of Value, Growth, and GARP with proprietary tilts for quality, dividend growth, and rerating potential.
Archetype classification
Each ticker is classified into one of four archetypes based on its yield, growth, and valuation profile. The archetype determines the proprietary weighting mix used for the Quality composite:

Dividend Compounder. tilts toward Value & GARP. Growth Compounder. tilts toward Growth & GARP. Value / Recovery. tilts heavily toward Value. Balanced. even blend across all three pillars.
[05b]
BDC / REIT / CEF Scoring
Dedicated scoring systems for income-oriented asset classes

Business Development Companies (BDCs), Real Estate Investment Trusts (REITs), and Closed-End Funds (CEFs) use dedicated scoring models instead of the equity-style Value / Growth / GARP framework. These asset classes have fundamentally different economics (NII, FFO/AFFO, NAV, distribution coverage) that require purpose-built metrics. Each receives a single composite SCORE (0–100).

BDC / 100
NII coverage, price/NAV, leverage (debt/equity), yield quality, yield on NAV, interest coverage, NAV growth, dividend growth, NII/share trend, expense ratio.
REIT / 100
AFFO/FFO payout safety, debt/EBITDA, interest coverage, debt-to-assets, P/FFO, P/NAV, yield quality, FFO/AFFO per-share growth, dividend growth, share count discipline.
CEF / 100
Distribution coverage, discount/premium to NAV, leverage, yield sustainability, expense ratio, and NAV trend.
Screener display
In the screener table, BDC / REIT / CEF tickers show in the VALUE, GROWTH, and GARP columns (those metrics are not meaningful for these asset classes). The detail panel displays a single SCORE bar instead of the three equity sub-scores. The score methodology follows the full specification on the Methodology page.
Risk penalties
Each asset class applies its own risk-penalty framework. BDCs are penalized for NII erosion, high expense ratios, and premium-to-NAV during fundamental deterioration. REITs are penalized for excessive debt-to-assets and share dilution outpacing operational growth. Penalties subtract directly from the raw score.
[05c]
SD50 Signal Service
Monthly model portfolio allocation via RSS, CSV, and JSON

The SD50 is a systematic, monthly-rebalanced U.S. equity strategy blending 13 independent sub-signals into a concentrated portfolio (SD13). The signal service delivers the current allocation through three channels, each targeting a different workflow.

Level 1. RSS feed (free)
A public RSS 2.0 feed at /bff/api/sd50/feed. Paste into any RSS reader (Feedly, Inoreader, Thunderbird, etc.) to receive a push notification each time a new monthly allocation is published. Each item includes the full holdings table, sleeve names, and weights. The feed follows RSS 2.0 best practices with dc:creator, content:encoded (rich HTML), and per-ticker category tags.
Level 2. CSV download (Pro)
A broker-ready CSV at /bff/api/sd50/allocation.csv. Returns Symbol,Sleeve,Weight. importable directly into Schwab, Fidelity basket trades, or any spreadsheet. Requires a Pro subscription.
Level 3. JSON API (Pro)
Structured JSON at /bff/api/sd50/allocation. Returns strategy, rebalance_date (always 1st of the month), positions, allocation[] (symbol, sleeve, weight), and total_weight. For scripts, bots, or broker API integrations. Requires a Pro subscription.
Monthly workflow
Allocations are published on the 1st of each month. The RSS feed accumulates history automatically — subscribers can scroll back through past months. The CSV and JSON endpoints always reflect the current (latest) allocation.
[06]
ETF Holdings & Exposure
See which ETFs hold a stock. or what's inside an ETF

LOPJLB tracks the top 50 holdings of 5,900+ ETFs, updated monthly from Financial Modeling Prep. This data powers two views in the expanded screener row:

For stocks. ETF exposure
When you expand a stock (e.g., NVDA), the HELD BY ETFs section shows every ETF that holds it. Each entry displays:

/ Direction dot. The ETF's current BUY or SELL signal
ETF name. clickable, jumps to that ETF's detail row
Regime chip. BULL / RECO / BEAR / CRIS badge
#rank. The stock's position in that ETF (e.g., #1 = largest holding)
weight %. how much of the ETF's portfolio is this stock

Use this to understand institutional demand: if a stock is top-5 in multiple large ETFs, that's a concentration signal. If it's broadly held at small weights, diversification is high.
For ETFs. top holdings
When you expand an ETF (e.g., SPY, QQQ), the ETF HOLDINGS section shows the top 25 positions. Each holding shows the same direction dot + regime chip + weight, letting you instantly see which holdings are on BUY vs SELL signals without opening each individually.
Monthly rebalancing diffs
The system tracks changes between monthly snapshots: which positions were added, removed, or had significant weight shifts (≥0.05%). This data is available via the API and will power future screener features like "smart money accumulation" signals and rebalancing alerts.
On-demand coverage
If an ETF isn't in the monthly cache yet, it's fetched live from FMP the first time any user views it. The result is cached permanently. no waiting for the next monthly run.
[07]
ER & Economic Calendar
Upcoming earnings releases and macro events
Earnings calendar
Access via the EVENTS button in the screener footer. Shows upcoming earnings releases with date, time (BMO/AMC), EPS estimates, and revenue estimates. Tickers in the LOPJLB universe are enriched with their signal direction and composite score. Data sourced from FMP (primary) with Nasdaq as fallback.
Macro calendar
The second tab shows economic events: FOMC decisions, CPI releases, Non-Farm Payrolls, GDP prints, PCE, ISM, and Retail Sales. High-impact events are highlighted. Data sourced from FMP with a curated list of confirmed 2026 US macro dates as fallback. Cached and refreshed every 6 hours.
[08]
Watchlists & Alerts
Bookmark tickers and get notified when signals change
Creating watchlists
Star any ticker in the screener to add it to your default watchlist. Create named watchlists from the watchlist dropdown to organize tickers by theme (e.g., "Tech Earnings", "Dividend Core"). Switch between watchlists using the dropdown arrow next to the watchlist pill.
Watchlist view
Click the watchlist pill in the screener to filter the table to only your bookmarked tickers. All other filters (search, sector, custom) still compose on top. When a specific named watchlist is active, only tickers in that list appear.
Email alerts
Pro subscribers can enable daily watchlist alerts. When any ticker in your watchlist changes signal (new BUY, SELL, exhaustion, or regime shift), you receive a formatted email at market open (07:00 PT). Configure triggers in Settings → Notifications.
Discord / Slack webhooks
Add a Discord or Slack webhook URL in Settings to receive the same alerts as rich embeds in your channel. Alerts include ticker, signal type, and details. ordered by signal priority (BUY first, then exhaustion, then regime, then SELL). Enable/disable per platform with the toggle switch.
[09]
Views & Plays
Pre-built and custom screener configurations
Preset views
The screener ships with pre-built views: ALL (full universe, no filter). Select a view from the view strip to instantly apply its filter combination.
Discovered plays
The platform runs offline grid searches to discover high-performing filter combinations. Discovered plays are ranked by tier (S / A / B) based on out-of-sample backtest quality. Each play specifies its direction (BUY or SELL) and includes performance metrics.
How to use presets
Presets are daily trade candidate baskets, not buy-all-and-hold-forever lists. To approximate the grid-search backtests, open a preset before or near the market open, take a diversified top-ranked slice (typically 10-25 names), size positions equally, and review the list daily. A ticker remains actionable only while it still qualifies for the preset. Exit when it drops out of the preset or when the preset's tested risk rule is triggered (for example, a stop loss, trailing stop, take-profit, or max-hold rule). Use the preset as a repeatable workflow: candidates → equal-weight basket → daily rebalance → disciplined exit.
Saved views (Pro)
Pro users can save any filter/sort configuration as a named view. Click SAVE AS in the controls bar, name your view, and it persists across sessions. Edit, rename, or delete saved views anytime. Views capture: play filter, sector, search query, custom filters, and sort order.
[10]
Market Regime
The macro context layer that gates every signal

The regime model classifies the macro environment into one of four states. It updates daily and is visible in the screener header, on every chart, and on the homepage live pulse widget.

BULL
Sustained uptrend. Full signal confidence. Broad participation.
RECOVERY
Transition from bearish to bullish. Early signals begin firing. Higher uncertainty.
BEAR
Sustained downtrend. Reduced signal confidence. Defensive positioning.
CRISIS
Extreme stress. Correlation spike. Signals largely suppressed.
[11]
Embed Widget
Add the live regime pulse to your own site

The regime widget is available as an embeddable component you can drop into any website, blog, dashboard, or app. It shows the current macro state, days in regime, danger score, and a 30-day history bar. updated every 5 minutes.

iframe embed (recommended)
Copy and paste this snippet into your HTML. Adjust width and height to fit your layout.
<iframe src="https://lopjlb.com/embed/regime" width="340" height="160" frameborder="0" style="border:none; border-radius:2px;" title="LOPJLB Market Regime" ></iframe>
Dark card variant
For dark-themed sites, the widget renders with a transparent background by default. Wrap it in a container with your own background or use the iframe as-is. It ships with our terminal-dark theme.
API access (JSON)
Developers who prefer raw data can hit the public regime endpoint:
GET https://lopjlb.com/bff/api/hmm/latest
Returns JSON with regime (current state), date, danger_score, confidence, days_in_regime, and a history array of the last 90 days. Rate-limited to 60 requests per minute.
Attribution
Embedding the widget or using the API is free. We ask that you keep the "LOPJLB" branding link visible in the iframe version. If you need a white-label or custom integration, reach out at contact@lopjlb.com.
[12]
Settings & Webhooks
Account configuration and notification preferences
Account
View your email, subscription status (Free / Pro), and manage billing via the Stripe customer portal. Data export (GDPR Article 20) and account deletion (GDPR Article 17) are available.
Webhook configuration
Add a Discord or Slack webhook URL to receive signal alerts as rich messages in your channel.

Discord: Server Settings → Integrations → Webhooks → New Webhook → Copy URL.
Slack: Apps → Incoming Webhooks → Add to Slack → Copy URL.

Use the toggle switch to enable/disable each webhook independently. Changes save immediately. Use the TEST button to verify connectivity. a test message will appear in your channel.
Alert preferences
Configure which signal types trigger alerts: BUY arrows, SELL arrows, exhaustion signals, and regime shifts. Alerts fire once daily at market open for any ticker in your watchlist that changed since the prior session.
[13]
Keyboard Shortcuts
Navigate faster in the screener
/ or Ctrl+KFocus search bar
EscClear search / close dropdown
↑ ↓Navigate rows in table
EnterExpand chart for selected row
Home / EndJump to first / last page
A / T / RSwitch to All / Table / Cards mode
[14]
Glossary
Key terms and metrics. hover any term for the full explanation
Score
Combo5 signal score (-5 to +5)
Direction
Current signal output: BUY or SELL
Flip
Direction state change (BUY to SELL or SELL to BUY)
Exhaustion
Counter-trend reversal signal (MACD-Z)
Coil
Volatility compression / squeeze indicator
ATR Stop
Average True Range trailing stop level
HiLo Flip
Trend-change detector (60-day high/low midpoint)
Topping
Distribution / topping pattern signal (0-3 votes)
Best Combo
Grid-search optimal signal combination per ticker
PERF
Performance composite (0-100)
FUND
Fundamentals composite (0-100)
Q-Score
Ticker quality score (0-100)
Profit Factor
Gross profit / gross loss from backtested signal
GARP
Growth At a Reasonable Price
Archetype
Fundamental profile classification
Value Score
Valuation + safety composite (0-100)
Growth Score
Revenue and earnings growth quality (0-100)
Regime
Macro market state per ticker
Sharpe Ratio
Risk-adjusted return (excess return / volatility)
Sortino Ratio
Downside-only risk-adjusted return
Calmar Ratio
CAGR / max drawdown
Max Drawdown
Worst peak-to-trough decline
Beta
Systematic risk vs SPY
Alpha
Excess return over CAPM expectation
Win Rate
Percentage of profitable trades or positive days
P/E Forward
Price / next-12-month EPS estimate
EV/EBITDA
Enterprise value / EBITDA
DCF %
Price vs discounted cash flow fair value
PEG Ratio
P/E divided by earnings growth rate
Altman Z-Score
Bankruptcy risk indicator
Interest Coverage
EBIT / interest expense
Total Shareholder Yield
Dividends + buybacks + debt paydown
FCF Yield
Free cash flow / market cap
BDC Score
Business Development Company quality (0-100)
REIT Score
Real Estate Investment Trust quality (0-100)
SD50 / SD13
Systematic model portfolio
Weekly Options
CBOE weekly options availability
ETF Weight
Percentage of ETF portfolio allocated to a holding
ETF Rank
Holding position by weight within an ETF
OI ATM
Open interest at the at-the-money strike
ATM Spread %
Bid-ask spread of the ATM call as a percentage of mid
Total OI
Total open interest across all strikes and types
Put/Call Ratio
Ratio of total put OI to total call OI
IV ATM
Implied volatility of the at-the-money call
Expense Ratio
Annual fund management fee as a percentage of AUM
Return 1Y
Cumulative price return over the past 12 months
Return 3Y
Cumulative price return over the past 3 years
Return 5Y
Cumulative price return over the past 5 years
Current Drawdown
How far the price is below its all-time high
Holdings Count
Number of individual positions in the ETF
Inception Date
Date the ETF was first launched
ETF Category
Morningstar-style classification of the fund strategy
Weekly Aggregation
Chart mode grouping daily bars into weekly candles