← Back EpochOMS — User Guide

Overview

EpochOMS is a professional-grade Order Management System with integrated risk analytics, AI-powered signal generation, and automated trading capabilities. This guide covers every feature of the platform in detail.

Quick Start

1
Log in — Navigate to the EpochOMS URL and enter your credentials. First-time users are assigned the Analyst role by default.
2
Select your account — Click the account chip in the header (e.g. PAPER ACCOUNT) to switch between paper and live accounts. Always verify you are on Paper before testing.
3
Review KPI cards — The six cards at the top of the dashboard show Portfolio Value, Day P&L, Open Positions, Today's Trades, Win Rate, and Portfolio Beta at a glance.
4
Place your first order — The New Order Panel is on the right side of the main screen. Enter a ticker, choose order type, set quantity, and click Place Order.
5
Monitor signals — The Signals table shows AI-generated BUY / HOLD / SELL recommendations for every ticker in your watchlist.
6
Check compliance — Visit the Compliance tab to ensure no positions breach concentration limits or regulatory thresholds before end of day.

How EpochOMS Works With Your Broker

EpochOMS is your trading command centre — not your broker. Understanding this distinction is important before you connect your account.

The Two-Layer Model
Your Broker
Alpaca · IBKR
  • Holds your capital
  • Routes orders to exchanges
  • Provides execution confirmation
  • Regulated: FCA / SEC
Cost: FREE (Alpaca retail) or per-trade (IBKR)
EpochOMS
Your Trading Intelligence
  • AI signal generation
  • Risk analytics & VaR
  • Backtesting & TCA
  • Screener, portfolio, compliance
  • Automated cron trading agent
Cost: Your EpochOMS subscription

This is not two subscriptions

Alpaca retail is completely free — $0 monthly fee, $0 commission on US stocks and ETFs. You open an Alpaca account in 5 minutes and it costs you nothing ongoing. IBKR has no subscription fee; you pay a small commission per trade only when you trade.

The real comparison is not "EpochOMS + broker vs just EpochOMS." It is EpochOMS against the fragmented alternative:

Tool (without EpochOMS)Monthly costWhat it covers
TradingView Pro~£25Charts and screener only
Portfolio analytics (Sharesight, etc.)~£20Holdings tracking only
Backtesting tool (Quantconnect, etc.)~£30Strategy testing only
Risk management£50–200+Institutional tools, not retail
Total£125–275/moStill less capable
EpochOMS Trader + free Alpaca£49/moAll of the above — integrated, automated

Why EpochOMS cannot hold your money

UK and US regulation requires a licensed broker to hold client funds. EpochOMS is analytical infrastructure — the same model as MetaTrader 4, Bloomberg Terminal, and TradingView, all of which operate alongside a broker. Your capital sits at a regulated broker at all times. EpochOMS never touches your money directly.

Think of your broker as your bank account. You don't call your bank a "second subscription" when you use accounting software. Your broker is the vault; EpochOMS is the trading desk built on top of it.

What it looks like in practice

1
Open a free Alpaca account at alpaca.markets (takes 5 minutes). No monthly fee.
2
Copy your Alpaca API key and secret into EpochOMS: Settings → Account → Broker Credentials.
3
EpochOMS validates the connection and marks your account as trading-enabled.
4
All orders you place in EpochOMS — manually or via the automated agent — route through your Alpaca account. Fills appear in both Alpaca and EpochOMS instantly.

The Dashboard at a Glance

EpochOMS — Main Dashboard
Portfolio Value
$284,521
Day P&L
+$1,842
Open Positions
14
Today's Trades
7
Win Rate
68.2%
Portfolio Beta
0.87

The Dashboard Header — Icon by Icon

The top strip of the dashboard contains several controls. Here is what each one does.

Dashboard Header Bar
Menu
🔔
Alerts
PAPER ACCOUNT
OPEN
Agent
ElementWhat it does
☰ Hamburger MenuOpens the side navigation panel. Groups all secondary pages: Reports, Compliance, Analytics & Tools, Preferences, Admin. See "Navigation — Hamburger Menu Groups" below.
🔔 Bell / NotificationsShows recent system alerts — price breaches, order fills, risk limit warnings, and agent trade notifications. A coloured dot appears on the bell when there are unread alerts. Click to open the alert drawer.
Account Chip
(e.g. PAPER ACCOUNT)
Displays your currently active account. Click to open the account switcher. You can switch between Paper Trading and Live accounts. The chip turns amber when on a live account as a safety reminder.
OPEN / CLOSED
Market Status
Shows whether the US stock market is currently open. Green = open for regular trading (09:30–16:00 ET). Red = market closed. Amber = pre-market or after-hours session active.
● Agent Status DotGreen dot = the trading agent is running and healthy. Grey dot = agent is idle (between scheduled runs). Red dot = agent error — check the agent log in the AI & Auto section.

Watchlist & Favourites

The watchlist is your personal list of tickers you track closely. It appears across the Screener, Signals table, and Portfolio sections, making it your primary universe for signal generation and monitoring.

Navigation — Hamburger Menu Groups

Click the ☰ icon (top-left of the dashboard) to open the slide-out navigation panel. It is organised into collapsible accordion groups.

Each group expands and collapses independently. The active page is highlighted with an accent border. Groups you don't have permission to access are greyed out — contact your admin to request access.

  • Reports — generate and download performance and trade reports
  • Compliance — view breach status, audit trail, and regulatory summaries
  • Analytics & Tools — advanced tools: back-test, position sizing, options chain, FIX log
  • Preferences — configure your alert thresholds, watchlist, and display settings
  • Admin — manually trigger the trading agent, manage users, configure agent parameters (Admin role required)

Main Dashboard Accordion Sections

The main dashboard is organised into collapsible accordion sections. Click any section header to expand or collapse it. Each section can be toggled on or off from Settings → Widget Visibility.

GroupWhat it contains
OverviewKPI metric cards (10), Equity Curve, Daily P&L chart, Benchmark comparison, Drawdown from Peak chart
PortfolioHoldings table (with ESG, star, company), Sector allocation pie, P&L summary, Pending orders
Fixed IncomeBond Portfolio (coupon, maturity, YTM, duration, credit rating), Credit Spreads chart (IG OAS, HY OAS, EM Spread)
MarketsOrder Flow Imbalance (7-day buy/sell signal bias), FX Currency Exposure (portfolio by currency in USD, with 1-day rate change and 1% portfolio impact per currency)
AnalyticsDrawdown Waterfall (max & current drawdown by position), Beta attribution, Scenario analysis
AlternativesPrivate Assets (PE, VC, real estate, hedge funds, private credit — manually tracked from GP quarterly statements). Three widgets: holdings table with MOIC/TVPI/DPI/IRR, allocation donut by asset class, vintage year TVPI chart. Section is hidden by default — open it when you have real LP positions.
News & EventsNews feed with AI sentiment badges, Corporate Actions calendar (earnings & dividends, 60-day lookahead), Dividend Income Tracker (annual income by position, monthly bar chart, yield by holding)
Order HistoryAll orders with star/fav filter, company name column, search toolbar
SignalsLatest trading signals table, Recent trades table
AI & AutoClaude AI chat, Strategy profile, Agent run log

Chat with Claude (AI Assistant)

EpochOMS includes a built-in AI chat powered by Claude Sonnet. Access it from the AI & Auto section at the bottom of the main dashboard. The panel is always visible — scroll down past the Signals table to find it.

AI Chat — Claude Sonnet
You
My TSLA position is down 8.6%. Should I cut it or average down?
Claude
Based on your current position: TSLA is at $228.40 vs your entry of $250.00 — a loss of $1,080 on 50 shares. Your portfolio beta is 0.87 and TSLA has beta 2.04, meaning it's contributing disproportionate volatility. Before averaging down, consider: (1) RSI is 61 — not oversold, so no technical bounce signal. (2) The $10k approval threshold means any add-on will require Risk Manager sign-off. Recommendation: reduce to half position at market open to cut portfolio beta, then reassess at next earnings.
You
What's my largest sector exposure?
Claude
Your largest sector exposure is Technology at 48.2% of portfolio ($137,098). Healthcare is second at 18.4%. The S&P 500 has Technology at ~29% — you're running 19 percentage points overweight. If you want to rebalance toward market weight, you'd need to sell approximately $54,000 of tech positions.

The AI assistant has read-only access to your current positions, P&L, recent orders, and risk metrics. It cannot place orders on your behalf — any trade action must be submitted manually through the New Order Panel.

Orders

The Orders tab shows your complete order history with real-time status updates. Every order placed — manually or by the automated agent — appears here.

Finding the New Order Panel

The New Order Panel (NOP) lives on the RIGHT side of the main dashboard screen. It is always visible — you do not need to navigate away from the dashboard to place a trade. Scroll right on smaller screens if it is not immediately visible.

New Order Panel
BUY
SELL
SHORT
Last: $189.20  |  Bid: $189.18  |  Ask: $189.22
MARKET
LIMIT
STOP
STOP-LIM
DAY
GTC
IOC
FOK
Est. Value: $18,920  |  Commission: $0.00  |  Requires Approval: No
PLACE ORDER
1
Enter a ticker — Type the stock symbol (e.g. AAPL, MSFT, TSLA). The system fetches the live quote instantly.
2
Choose BUY or SELL — BUY to open or add to a long position. SELL to reduce or close. SHORT to open a short position (requires Short Seller permission).
3
Select order type — MARKET executes immediately at best available price. LIMIT only executes at your specified price or better. STOP triggers a market order when price hits the stop level. STOP-LIMIT combines both.
4
Set quantity — Number of shares (whole numbers only for equities). The estimated order value updates in real time below.
5
Choose Time in Force — DAY: cancel at close if not filled. GTC: Good Till Cancelled (persists across sessions). IOC: Immediate Or Cancel (fill what you can, cancel the rest). FOK: Fill Or Kill (fill everything or cancel entirely).
6
Review pre-trade summary — Check estimated value, commission, and whether the order requires Risk Manager approval. Then click PLACE ORDER.

Pre-Trade Risk Gauges

Before you submit any order, the system runs an automatic pre-trade check and shows the results in the estimate bar beneath the order form.

GaugeWhat it means
Est. ValueQuantity × current market price. This is the notional cost of the trade, not cash required (which may differ for margin accounts).
CommissionEstimated brokerage fee. EpochOMS uses a simulated zero-commission model in paper mode. Live mode fees depend on your broker configuration.
ConcentrationWhat % of your total portfolio this position would represent after the trade. A warning appears if the resulting position exceeds 20% of portfolio value.
Market ImpactEstimated price slippage for large orders relative to average daily volume. Shown for orders exceeding 1% of ADV.
Requires Approval"Yes" appears (in amber) when the order value exceeds $10,000. The order will be placed in PENDING APPROVAL status until a Risk Manager reviews and approves it.

Reading the Order Status

Each order in the Orders tab has a status badge. Here is what each status means.

PENDING — The order has been submitted to the system and is waiting to be sent to the market. This status is usually momentary on market orders during trading hours.
PENDING
PENDING APPROVAL — The order value exceeds $10,000 and is waiting for a Risk Manager to review and approve it. The order will not be sent to the market until approved. You will receive an alert notification when it is approved or rejected.
PEND. APPR.
FILLED — The order executed in full at the market. The fill price and timestamp are recorded in the order detail view.
FILLED
PARTIALLY FILLED — Some shares have been filled but the remainder is still working in the market. Common for large orders or illiquid tickers. The order remains active until fully filled, cancelled, or expired.
PART FILL
CANCELLED — The order was cancelled. Reason may be: (1) you manually cancelled it, (2) the Time in Force expired (DAY orders cancelled at market close), or (3) the system cancelled it due to a pre-trade breach detected after submission.
CANCELLED
🚫
REJECTED — The order was rejected. This means either a Risk Manager declined the approval request, or the system's pre-trade risk check found a hard breach (e.g. position would exceed the portfolio concentration hard limit of 30%). Click the order to see the rejection reason.
REJECTED

Order History Table

Orders — History
TimeTickerSideTypeQtyPriceValueStatusSource
14:02:31AAPLBUYMARKET50$189.20$9,460FILLEDAGENT
14:02:29MSFTBUYLIMIT30$415.00$12,450PEND APPRAGENT
11:45:07TSLASELLMARKET25$228.40$5,710FILLEDMANUAL
09:31:22NVDABUYSTOP-LIM10$875.00$8,750REJECTEDMANUAL

The Source column tells you whether the order was placed by the automated trading agent (AGENT) or by a human trader (MANUAL). This is important for audit and compliance purposes.

Order Types — Reference

TypeWhen to use
MARKETYou want to execute immediately at the best available price. Use for highly liquid stocks where slippage is minimal. Avoid for illiquid names or large quantities.
LIMITYou want to buy at or below a specific price (or sell at or above it). The order may not fill if the market never reaches your price.
STOPA market order that activates only when the stock hits your stop price. Commonly used as a stop-loss to exit a losing position automatically.
STOP-LIMITLike a stop, but instead of becoming a market order, it becomes a limit order at your specified limit price. Gives price control but risks non-fill if the stock gaps through your limit.

Pre-Trade Cost & Staging

Pre-Trade TCA

Before you trade, estimate what an order will cost to execute — the spread you cross, the market impact of your size, and the timing risk of working it over time — and compare strategies (market, limit, TWAP, VWAP, implementation shortfall) side by side in basis points and dollars. It also shows your order as a percentage of average daily volume. These are model-based estimates, not live order-book figures.

Order Staging

Build up a list of orders in a staging area, each with its estimated cost and a compliance pre-check, review them together, then release them to execution in one step. “Arm for open” releases paper orders automatically when the market opens; live accounts always require manual confirmation.

Basket & Block Orders

🧮 Basket Order — one ticket, many tickers

Build a list of legs (each its own ticker, side and quantity) and execute them in one click into your active account. Use Import from Model Rebalance to turn your model’s drift into a ready-made basket. Each leg is checked against the account’s mandate and the risk floor; the status of every leg is shown after execution. Paper accounts book instantly; LIVE accounts ask you to confirm first.

☷ Block Allocation — one ticker across accounts

Place a single order for one ticker and split it across several client accounts, each booked into its own portfolio and gated by its own mandate. Choose how the block is divided, hit Preview Allocation to see the split before committing, then Execute.

Portfolio

The Portfolio tab shows your current holdings, P&L breakdown, sector allocation, and position-level metrics. It is the primary view for understanding what you own and how it is performing.

Positions Table

Portfolio — Positions
TickerSectorQtyAvg CostLastMktValUnrealised P&L% PortBeta
AAPLTech150$172.40$189.20$28,380+$2,520 (+9.8%)10.0%1.12
MSFTTech80$390.10$415.00$33,200+$1,992 (+6.4%)11.7%0.94
TSLACons. Discr.50$250.00$228.40$11,420-$1,080 (-8.6%)4.0%2.04
JNJHealthcare60$155.80$162.40$9,744+$396 (+4.2%)3.4%0.58

Column Definitions

ColumnWhat it means
Avg CostYour volume-weighted average purchase price across all fills for this position. This is your cost basis per share.
LastMost recent traded price (real-time during market hours, 15-min delayed outside hours).
Mkt ValQuantity × Last price. The current market value of your holding.
Unrealised P&L(Last − Avg Cost) × Quantity. Profit or loss if you were to close the position right now. Only becomes "realised" when you actually sell.
% PortThis position's market value as a percentage of total portfolio value. Positions above 20% trigger a soft concentration warning.
BetaHow much the stock moves relative to the S&P 500. Beta 1.0 = moves with the market. Beta 2.0 = moves twice as much. Beta 0.5 = moves half as much. Negative beta = moves opposite to the market.

Sector Allocation

Below the positions table, a bar chart shows your sector weights versus the S&P 500 benchmark. Sectors where you are significantly overweight (>10 percentage points above benchmark) are highlighted in amber.

P&L Summary

Today's Realised
+$842
Unrealised Total
+$5,240
Total Return
+6.7%

Closing or Trimming a Position

1
Click any row in the positions table to expand its detail panel.
2
Click "Close Position" to sell all shares at market, or "Partial Close" to specify the quantity to sell.
3
Review the pre-trade summary (estimated proceeds, tax lot if applicable) and confirm.
4
The order appears in the Orders tab. If the value exceeds $10,000, it will require Risk Manager approval before execution.

Model Portfolio & Drift Tracking

A model portfolio is your target allocation — the weights you want each position to represent as a percentage of total portfolio value. Drift tracking continuously measures how far your actual holdings have deviated from those targets, turning EpochOMS from a trade recorder into a disciplined portfolio manager.

Creating a Model

1
Scroll to the Model Portfolio & Drift section and tap + New Model.
2
Give the model a name (e.g. “Growth 60/40”) and set your Alert % — the drift level that triggers a BREACH. Default is 5%.
3
Add positions: type a ticker or company name into the search box, enter the target weight %, then tap + Add. Your current holdings appear as quick-add chips below the input row.
4
Watch the Target Allocations counter at the top right of the table. It turns green when your weights sum to 100%, amber if you are close, and red if you overshoot.
5
Tap Save Model. The drift table populates immediately with live data.

Reading the Drift Table

Model Portfolio & Drift Tracking
TickerCompanyTarget %Actual %DriftMkt ValueStatus
AAPLApple Inc20.0%23.4%+3.4%$23,400WARN
MSFTMicrosoft15.0%8.1%−6.9%$8,100BREACH
JNJJohnson & Johnson10.0%9.8%−0.2%$9,800OK
ColumnWhat it means
Target %The weight you assigned this ticker when building the model.
Actual %This position's current market value as a percentage of total portfolio value (holdings + cash). Uses live prices where available, last-known price otherwise.
DriftActual % minus Target %. Positive = position has grown larger than planned (overweight). Negative = position has shrunk below target (underweight).
StatusOK — within threshold. WARN — past 50% of threshold (early signal). BREACH — threshold exceeded, rebalancing required.

KPI Strip

Managing Models

Rebalancing Engine

The Rebalancing Engine is the second widget in the Model Portfolio group. It reads your active model’s target allocations and calculates the exact set of trades needed to bring your portfolio back to those targets right now.

Unlike a simple drift alert, the engine gives you a complete, actionable trade list with quantities, estimated values, sequencing, and risk flags — built to an institutional standard.

Market Standard vs EpochOMS

FeatureInstitutional platformsEpochOMS
Delta trade calculation
Whole-share rounding
Minimum trade size filter✓ ($500 typical)✓ ($50)
Sell-before-buy sequencing
Cash sufficiency check
Wash-sale risk flag
Post-rebalance weight preview
Per-row trade selection
Tax-lot selection (FIFO/LIFO/spec ID)— (requires broker connectivity)
ADV liquidity check— (future)
Multi-account netting— (future)

How to Use

1
Open the Model Portfolio accordion section. Make sure an active model is selected in the drift widget above.
2
The Rebalancing Engine widget below loads automatically. It calculates the trade list from live prices against your model targets.
3
Review the KPI strip: Cash Available, Total Buys, Total Sells, Net Cash Impact. If cash is insufficient to fund all buys, an amber warning banner appears with the shortfall amount.
4
Check the ⚠ wash-sale warning banner if any sells are flagged. A red ⚠ appears in the row for any SELL where the current price is below your average cost — selling at a loss. You may choose to deselect those rows.
5
Use the checkboxes to select or deselect individual trades. The Place N Orders button updates live with your selection count.
6
Tap Place N Orders. The engine automatically sends SELL orders first, then buys, so proceeds are available before purchases settle.

Table Columns

ColumnWhat it means
ACTIONBUY = you are underweight this position. SELL = you are overweight.
Current QtyShares you hold right now.
Target QtyShares you need to hold to hit your target weight at current market price. Calculated as floor(portfolio_value × target% ÷ price) — always whole shares.
DeltaThe number of shares to buy or sell. This is what gets submitted as the order quantity.
PriceCurrent market price used for the calculation. Live price if available, last-known price otherwise.
Est ValueDelta × Price. The estimated cash value of this trade.
Post-Balance %After this trade executes, what percentage of your portfolio this position will represent. Should equal (or very closely approximate) the target weight.
Wash-sale risk flag. Shown on SELL rows where the current market price is below your average cost. Selling these positions realises a loss. If you repurchase the same security within 30 days, the loss is disallowed for tax purposes.

Cash Sequencing

Sells always execute before buys. This matches the standard institutional approach: proceeds from sells are used to fund purchases, minimising the need to draw on cash reserves. The engine calculates your cash shortfall upfront so you can decide whether to proceed with all trades or exclude some buys to stay within your available cash.

Risk

The Risk tab provides a comprehensive view of your portfolio's risk exposure across multiple dimensions: concentration, volatility, factor exposure, drawdown, and correlation.

Key Risk Metrics

Portfolio VaR (95%, 1D)
$4,820
Max Drawdown (MTD)
-3.2%
Portfolio Beta
0.87
Sharpe Ratio (30D)
1.42

Metric Definitions

MetricWhat it means and when to act
VaR (95%, 1D)Value at Risk — the maximum loss you would expect to suffer on 95% of trading days. If VaR is $4,820, there is a 5% chance of losing more than $4,820 in a single day. If VaR is rising, your portfolio volatility is increasing.
Max DrawdownThe largest peak-to-trough decline over the period. A -3.2% MTD drawdown means your portfolio is currently 3.2% below its highest point this month. Drawdowns above 10% typically trigger a review meeting.
Portfolio BetaThe portfolio's sensitivity to the S&P 500. Beta 0.87 means if the S&P falls 1%, your portfolio would be expected to fall ~0.87%. Below 1.0 = defensive posture. Above 1.0 = aggressive.
Sharpe RatioReturn per unit of risk (standard deviation). Above 1.0 is good. Above 2.0 is excellent. Below 0 means you are taking risk without being compensated by returns.
Sortino RatioLike Sharpe but only penalises downside volatility (ignores upside swings). More relevant for trading strategies. Above 1.5 is considered good.

Concentration Risk

The heatmap below the metrics shows position concentration by ticker and by sector. Cells turn amber when a single position exceeds 15% of portfolio, and red when it exceeds 25%.

Correlation Matrix

The correlation matrix shows how your positions move relative to each other. Highly correlated positions (above 0.8) do not provide true diversification — when one falls, the other will likely fall too. Aim for a portfolio where most pairs are below 0.6.

Correlation Matrix (sample)
AAPL
MSFT
TSLA
JNJ
AAPL
1.00
0.82
0.54
0.18
MSFT
0.82
1.00
0.49
0.22
TSLA
0.54
0.49
1.00
0.11
JNJ
0.18
0.22
0.11
1.00

High (>0.7) Moderate (0.4–0.7) Low (<0.4)

Risk Limits

LimitSoft WarningHard LimitAction at Hard Limit
Single Position20% of portfolio30% of portfolioOrder rejected by pre-trade check
Single Sector40% of portfolio60% of portfolioOrder requires approval regardless of size
Daily Loss2% of portfolio5% of portfolioAll new orders blocked until next day
Order Value$10,000 per orderOrder goes to Pending Approval queue

Screener

The Screener lets you filter and rank instruments from your watchlist or the full 547-instrument universe (S&P 500, NASDAQ 100, ETFs, international ADRs) based on technical, fundamental, and momentum criteria.

Using the Screener

Screener — Filters
Watchlist
S&P 500
Technology
Healthcare
Financials
Energy
Industrials
Utilities
Materials
BUY signals only
RSI < 30
RSI > 70
Above MA20
Score > 70
SymbolPriceRSIMA20P/EMom 20DScoreSignal
NVDA$875.4072.4Above34.2+18.4%91BUY
AAPL$189.2058.1Above28.6+7.2%78BUY
AMZN$184.6061.3Above40.1+9.8%74BUY
META$492.3055.2Above24.8+5.1%62HOLD
INTC$30.2028.4BelowN/A-14.2%21SELL

Column Reference

ColumnWhat it means
SymbolStock ticker abbreviation — the unique identifier used on exchanges (e.g. AAPL = Apple Inc.).
PriceLast traded price. Real-time during market hours (09:30–16:00 ET), 15-minute delayed outside market hours.
RSIRelative Strength Index (0–100). Below 30 = oversold (potential buy signal). Above 70 = overbought (potential sell signal). Between 30–70 = neutral range.
MA20Whether the current price is Above or Below the 20-day simple moving average. "Above" = short-term bullish. "Below" = short-term bearish.
MA20 CrossWhether a crossover happened recently — i.e. price just crossed the 20-day moving average within the last 3 trading days. A recent cross is a more significant signal than a sustained above/below condition.
P/EPrice-to-Earnings ratio (stock price ÷ earnings per share). Measures how expensive the stock is relative to its earnings. "N/A" means the company has no positive earnings (it is loss-making).
EPSEarnings Per Share in dollars — the company's profit divided by the number of shares outstanding. Negative EPS = the company is losing money.
Mkt CapTotal market capitalisation = share price × total shares outstanding. Large cap (>$10B), Mid cap ($2B–$10B), Small cap (<$2B).
Momentum 20DPrice return over the last 20 trading days (approximately one calendar month), expressed as a percentage. Strong positive momentum = stock has been trending up. Negative = trending down.
VolumeNumber of shares traded today. When shown as a ratio (e.g. 1.8×), it means today's volume is 1.8 times the 20-day average volume. High volume confirms price moves.
ScoreEpochOMS composite score from 0 to 100, combining RSI, MA position, momentum, volume, and P/E signals with the active strategy's weightings. Above 70 = BUY, 40–70 = HOLD, below 40 = SELL.
SignalThe actionable recommendation generated from the Score: BUY (score >70), HOLD (40–70), or SELL (<40). The agent only places orders on tickers with BUY or ADD MORE signals.

Saving a Screen

After applying filters, click Save Screen (top-right of the screener panel) to name and save your filter configuration. Saved screens appear in the Screener sidebar for one-click access. Your saved screens are private to your user account.

Options Trading

EpochOMS includes a full options trading module. Access it from Analytics & Tools → Options Trading in the hamburger menu. Options are derivatives — contracts that give you the right (but not the obligation) to buy or sell a stock at a fixed price before a specified date.

Options in Plain English

Maximum loss on a long option is always limited to the premium paid. You cannot lose more than what you paid for the contract.

Reading the Options Chain

The options chain lists all available contracts for a given stock and expiry date. Calls are on the left, puts are on the right, and strike prices run down the middle. The row highlighted in amber is the at-the-money (ATM) strike — closest to the current stock price.

Options Chain — AAPL | Exp: 21 Jun 2026 | Spot: $189.20
LastBidAsk VolOIIV%Delta Strike DeltaIV%OI VolAskBidLast
14.8014.7014.90 2,84118,40228.4%0.72 180 -0.2827.1%12,100 9805.505.405.45
10.2010.1010.30 4,12024,80027.8%0.61 185 -0.3927.2%19,500 2,1006.406.306.35
6.406.306.50 8,90042,10026.9%0.50 190 ◀ ATM -0.5027.0%38,200 7,4007.207.107.15
3.603.503.70 5,20031,00027.3%0.38 195 -0.6228.1%22,400 3,8009.909.809.85
1.801.751.85 3,10019,80028.0%0.25 200 -0.7529.2%14,600 1,90013.4013.3013.35

Chain Column Definitions

ColumnWhat it means
StrikeThe fixed price at which you can buy (call) or sell (put) the underlying stock when exercising the option.
LastThe most recent transaction price for this option contract.
Bid / AskThe current best buy (bid) and sell (ask) prices. The spread between bid and ask is your immediate cost of entry. Wide spreads = illiquid contract, avoid.
VolumeNumber of contracts traded today. Higher volume = more liquid, tighter fills.
Open Interest (OI)Total number of outstanding contracts that have not been settled. High OI = active market with many participants.
IV%Implied Volatility — the market's expectation of future price movement, expressed as an annualised percentage. Higher IV = more expensive options (higher premiums). IV often spikes before earnings.
DeltaHow much the option price changes per $1 move in the stock. Call delta ranges 0 to 1.0; put delta ranges -1.0 to 0. ATM options have ~0.50 delta. Delta also approximates the probability the option will expire in the money.

ITM / ATM / OTM Explained

In The Money (ITM)
For a call: strike is below the current stock price (it has intrinsic value — you could exercise and profit immediately). For a put: strike is above current price. ITM options are more expensive but have higher delta (move more with the stock).
At The Money (ATM)
Strike is at or very close to the current stock price. ATM options have the most time value and ~0.50 delta. These are the most actively traded and typically have the tightest bid-ask spreads.
Out of The Money (OTM)
For a call: strike is above current price (needs the stock to rise further to have value). For a put: strike is below current price. OTM options are cheaper but have lower probability of expiring with value.

The Greeks — Plain English

GreekSymbolWhat it means in practice
DeltaΔHow much your option position makes or loses per $1 move in the stock. A delta of 0.60 means for every $1 the stock rises, the call option gains $0.60 (or $60 per contract of 100 shares).
GammaΓThe rate of change of delta. High gamma means delta changes rapidly — your position becomes more sensitive as the stock moves toward your strike. ATM options have the highest gamma.
ThetaΘTime decay — how much the option loses in value per day just from the passage of time, all else equal. If theta is -0.05, the option loses $5 per day per contract. Theta accelerates as expiry approaches (the last 30 days are the steepest decay).
VegaVSensitivity to implied volatility. If vega is 0.15, a 1% rise in IV increases the option's value by $0.15 ($15 per contract). Long options benefit from rising IV; short options benefit from falling IV.
RhoρSensitivity to interest rates. Generally the least impactful greek for short-dated options. Matters more for long-dated LEAPS (options expiring 1–2 years out).

IV Surface

The IV Surface (or volatility surface) is a 3D heatmap showing implied volatility across all strikes (x-axis) and expiry dates (y-axis). Access it via the "IV Surface" button in the options module.

P&L Scenario Chart

The P&L Scenario chart (sometimes called a payoff diagram) shows the profit or loss of your option position at expiry for a range of stock prices. It is essential before entering any options trade.

Trading Strategies

EpochOMS has 7 built-in trading strategies. The AI agent runs them automatically on the configured schedule — weekdays at 14:00, 17:00, and 19:00 UTC. Each run fetches live prices, applies the active strategy, generates signals, and places qualifying orders on your paper / simulation account. On a live account the agent does not trade — live trading is self-directed (you place your own orders).

Only one strategy is active at a time. The active strategy is shown in the Strategy Profile card on the dashboard. You can change the active strategy via Admin → Agent Config. The signal score threshold (default: 70) determines which signals become actual orders.

The 7 Built-In Strategies

1. Momentum
Aggressive
Ranks all watchlist stocks by their 20-day price return. Buys the top performers (top decile), trims or avoids the laggards (bottom decile). The underlying thesis is that recent outperformers tend to continue outperforming in the short term.
Best market: Trending, directional markets with clear sector leadership.
Worst market: Choppy, sideways, or mean-reverting markets where recent winners become tomorrow's losers.
Signal: 20D return rank in top 10% = BUY; bottom 10% = SELL.
2. Mean Reversion
Moderate
Buys stocks that have fallen sharply and are technically oversold (RSI below 30), expecting them to bounce back toward their historical average. Sells or avoids overbought stocks (RSI above 70). Contrarian by nature — it bets against recent price direction.
Best market: Range-bound, sideways markets where prices oscillate around a mean.
Worst market: Strong sustained downtrends — oversold stocks keep getting more oversold.
Signal: RSI < 30 = BUY candidate; RSI > 70 = SELL candidate.
3. MA Crossover
Moderate
Uses the relationship between the 50-day and 200-day simple moving averages. When the faster MA50 crosses above the slower MA200, it signals a bullish trend change (Golden Cross). When MA50 crosses below MA200, it signals a bearish change (Death Cross).
Best market: Long-term trending markets with clear macro direction.
Worst market: Whipsaw markets that repeatedly cross and re-cross the MAs, generating false signals.
Signal: MA50 > MA200 and recently crossed = BUY; MA50 < MA200 and recently crossed = SELL.
4. Value
Conservative
Targets stocks with low P/E ratios relative to their GICS sector peers, assuming the market will eventually recognise undervaluation and reprice the stock higher. Patient strategy — rebalances infrequently (monthly). Avoids loss-making companies (N/A P/E).
Best market: Long-horizon investing, value rotation phases of the economic cycle.
Worst market: Growth-led bull markets where expensive stocks keep getting more expensive.
Signal: P/E in bottom 20% of sector = BUY; P/E in top 20% = overvalued, avoid.
5. Multi-Strategy
Moderate
Combines signals from Momentum, Mean Reversion, and MA Crossover with equal weighting (33% each). A stock must score positively on at least 2 out of 3 strategies to generate an actionable signal. Confirmation requirement makes it more conservative and reduces false positives.
Best market: Any — it adapts by requiring consensus across different signal types.
Worst market: Very fast-moving markets where individual strategies produce better timing alone.
Signal: 2 or 3 of the 3 sub-strategies agree = BUY or SELL; 1 or 0 = HOLD.
6. Volatility Sizing
Moderate
Uses ATR (Average True Range) to dynamically size positions so that each trade risks roughly the same dollar amount regardless of the stock's price or typical daily swing. High-volatility stocks receive smaller position sizes; low-volatility stocks get larger allocations. Does not generate buy/sell signals itself — it modifies the sizing of signals from other strategies.
Best market: Any — it is a risk management overlay, not a directional strategy.
Worst market: N/A — it complements other strategies rather than standing alone.
Signal: Adjusts position size of any trade; does not generate directional BUY/SELL signals independently.
7. Trend Following
Aggressive
Rides established trends using a stack of moving averages (MA20 > MA50 > MA200 = confirmed uptrend across all timeframes). Adds to winners as the trend extends; cuts losers quickly when the stack breaks. Higher portfolio turnover than Value but captures large sustained price moves.
Best market: Strong trending markets with clear macro momentum (bull or bear).
Worst market: Choppy, ranging markets that generate frequent false breakouts.
Signal: All three MAs aligned upward (MA20>MA50>MA200) = strong BUY; all aligned downward = strong SELL.

How to Switch Between Strategies

The currently active strategy is displayed in the Strategy Profile card on the main dashboard (in the AI & Auto section). To change it:

1
Open the hamburger menu (☰ top-left of dashboard).
2
Navigate to Admin → Agent Config. This requires the Admin role.
3
In the Agent Config panel, find the Active Strategy dropdown. Select the desired strategy from the 7 options.
4
Optionally adjust the Score Threshold (default 70). Orders are only placed for tickers scoring above this threshold.
5
Click Save Config. The new strategy takes effect on the next scheduled run or immediately if you trigger a manual run via Admin → Run Now.

Understanding the Signals Table

The Signals table is on the main dashboard, below the KPI cards and equity chart. It updates after each agent run and shows the active strategy's assessment of every watchlist ticker.

Signals Table — Active Strategy: Multi-Strategy
TickerSignalScore20D MomRSIMA SignalESGSentiment
NVDAADD MORE94+18.4%72.1↑ AboveAABULLISH
AAPLBUY78+7.2%58.1↑ AboveAAANEUTRAL
MSFTHOLD61+4.1%55.0↑ AboveAANEUTRAL
TSLASELL28-8.6%61.2↓ BelowBBEARISH
ColumnWhat it means
SignalADD MORE (strong buy, score >90), BUY (score 70–90), HOLD (score 40–70), SELL (score <40). Only ADD MORE and BUY signals trigger automated orders.
Score0–100 composite score from the active strategy. Higher = stronger positive signal. The score threshold in Agent Config determines the minimum to trigger an order.
20D MomentumPrice change over the last 20 trading days as a percentage. This is the raw momentum input to the Momentum and Trend Following strategies.
RSICurrent RSI value. Below 30 = oversold (green). Above 70 = overbought (shown in red as a caution, though high RSI can also mean strong momentum).
MA SignalWhether the stock price is currently above or below its 20-day moving average. ↑ Above = short-term bullish. ↓ Below = short-term bearish.
ESGEnvironmental, Social & Governance rating from the data provider. AAA = best-in-class. CCC = lowest rated. Used as a filter in compliance screens.
SentimentAI-powered news sentiment analysis (powered by Claude Haiku) reading the last 48 hours of news headlines for the ticker. BULLISH / BEARISH / NEUTRAL.

Agent Schedule

The trading agent runs automatically on weekdays (Monday–Friday) at three fixed times:

UTC TimeUS EasternPurpose
14:00 UTC10:00 AM ETOpening analysis run — market has been open ~30 minutes, initial price discovery is complete. Agent generates the day's primary signals.
17:00 UTC1:00 PM ETMid-day run — reassesses signals after the morning session. Captures any significant price moves or news that emerged after open.
19:00 UTC3:00 PM ETPre-close run — final signal check before the 4:00 PM ET close. Agent may place closing trades for day-trading strategies.

Each run: fetches live prices → applies active strategy → generates signals → places orders exceeding the score threshold → sends Telegram notification with trade reasoning.

To trigger a manual run at any time: hamburger menu → Admin → Run Now. The run log is visible in AI & Auto section of the dashboard.

ML Signal Confidence

Every BUY, SELL, and HOLD signal generated by the trading agent is scored by a machine learning model (scikit-learn RandomForest trained on all historical signal logs). The score is called ml_confidence — it runs from 0.0 to 1.0 and measures how strongly the model agrees with the rule-based signal given the current indicator values.

ConfidenceWhat it meansVisual indicator
≥ 75%ML model strongly agrees with the rule-based signal direction. The indicator pattern (RSI, momentum, volume ratio, MA ratios) is clearly aligned with historical patterns for that signal type.Blue ML XX% badge displayed next to the BUY/SELL/HOLD badge in the main signals table.
40%–74%Moderate model confidence — signal conditions were met but the pattern is not exceptional.No badge. Signal is processed normally.
< 40%Model uncertainty is high — indicator values are unusual or contradictory even though the rule triggered.No badge. Apply additional judgement before acting on the signal.

Note: ML confidence is informational only — it does not block or modify trades. The best trading opportunities are those where a HIGH conviction rule-based signal is accompanied by a strong ML badge (≥75%). The model retrains automatically every 30 days as new signal history accumulates.

Analytics & Tools

GIPS Composite Report

Aggregates multiple portfolios (accounts) into a GIPS-style composite and presents the standard institutional performance table. Open from the menu → GIPS Composite, pick a composite, and the annual presentation renders. Compliance users create composites by grouping accounts.

Internal Position Reconciliation

Compares your trade blotter (all historical trade CSV records) against the live portfolio state to detect data integrity issues before they silently corrupt P&L. Found in Performance Analytics → Internal Reconciliation.

Custodian Reconciliation

Reconciles your OMS holdings against a position file from your custodian (BNY Mellon, State Street, etc.). Open from the menu → Custodian Reconciliation, upload the custodian's CSV, and EpochOMS matches it line-by-line against your current positions.

EpochOMS includes three professional-grade analytical tools accessed from hamburger menu → Analytics & Tools. These tools help you size positions correctly, validate strategies on historical data, and monitor the FIX connectivity layer.

Position Sizer

Access from Analytics & Tools → Position Sizer. Calculates the optimal number of shares to buy based on your risk tolerance, portfolio size, entry price, and stop loss level. Takes the guesswork out of position sizing.

Position Sizer
Portfolio Value
$284,521
Risk Per Trade
1.00 %
Entry Price
$189.20
Stop Loss Price
$182.00
Recommended Position Size
395 shares
Position value: $74,734  |  Capital at risk: $2,844 (1.00%)  |  Risk/share: $7.20
⚠ Position exceeds 20% concentration limit. Capped at 300 shares ($56,760).

The Formula

  • Account Risk ($) = Portfolio Value × Risk% = $284,521 × 1% = $2,845
  • Risk Per Share = Entry Price − Stop Loss = $189.20 − $182.00 = $7.20
  • Raw Position Size = Account Risk ÷ Risk Per Share = $2,845 ÷ $7.20 = 395 shares
  • If the resulting position exceeds 20% of portfolio ($56,904), the system automatically caps the recommendation and shows a warning.

Why 1–2% Risk Per Trade?

Professional money managers typically risk 0.5–2% of total capital per trade. At 1% risk, even 10 consecutive losing trades only draw down your portfolio by approximately 10%, preserving enough capital to continue trading. At 5% risk per trade, a 10-loss streak wipes out 40% of the portfolio — a psychological and financial position that is very hard to recover from. The Position Sizer defaults to 1% but allows you to adjust between 0.25% and 5%.

Back Test Engine

Access from Analytics & Tools → Back Test Engine. Tests any of the 7 built-in trading strategies against historical price data before committing real capital. Choose the strategy, the time period (up to 5 years of data), and the universe (watchlist or S&P 500).

What the Results Show

MetricWhat it means and what to look for
Equity CurveA line chart of simulated portfolio value over the test period. Should be generally upward-sloping. Large drawdowns (sharp drops) indicate periods where the strategy fails.
Sharpe RatioRisk-adjusted return: (annualised return − risk-free rate) ÷ annualised volatility. Above 1.0 = acceptable. Above 2.0 = excellent. Below 0 = strategy destroys value on a risk-adjusted basis.
Max DrawdownWorst peak-to-trough portfolio decline during the test period. Below 15% is generally considered acceptable for a diversified strategy. Above 30% suggests the strategy is too risky for most investors.
Win RatePercentage of individual trades that were profitable. Note: a strategy can have a win rate below 50% and still be profitable if winners are much larger than losers (high reward-to-risk ratio).
CAGRCompound Annual Growth Rate — the smoothed annualised return over the entire test period. This is the most comparable figure across different test lengths.
Monte Carlo500 simulated equity paths generated by randomly shuffling the order of historical trade returns. Shows the range of possible outcomes. The shaded band covers the 10th to 90th percentile of simulated paths.
Walk-Forward IS/OOSSplits historical data into In-Sample (the period used to select/fit parameters) and Out-of-Sample (a later period the strategy has never seen). Good strategies maintain strong performance in OOS. If OOS performance collapses, the strategy was over-fitted to the training period.

Back-testing caveat: All back-tests assume perfect fills at historical closing prices and do not account for market impact, slippage, or bid-ask spreads. Real-world performance will differ, especially for larger position sizes.

FIX Monitor

Access from Analytics & Tools → FIX Monitor. Displays the live FIX 4.2 protocol message log between EpochOMS and the broker simulator. FIX (Financial Information eXchange) is the industry-standard messaging protocol for order routing between trading systems and brokers.

EpochOMS operates in one of three FIX modes shown in the Mode KPI card: IBKR (live FIX 4.2 TCP bridge to IB Gateway on port 4002 — real paper fills), SIMULATED (internal broker simulator), or UNAVAILABLE (IB Gateway offline). The IBKR BRIDGE badge in the header lights green when the live bridge is active. The FIX Monitor shows the same message types in all modes.

FIX Monitor — Session Active
Session Status
ACTIVE
Mode
SIMULATED
Fills Today
7
TimeDirTypeClOrdIDSymbolDetail
14:02:31NewOrderSingle=DORD-20240517-001AAPLNew
14:02:31ExecReport=8ORD-20240517-001AAPLFill @ $189.20
14:02:29NewOrderSingle=DORD-20240517-002MSFTNew
14:00:00SYSHeartbeatSeqNum 482
09:30:01LogonSession established

Column Reference

ColumnWhat it means
TimeMessage timestamp in HH:MM:SS (server time, UTC).
Dir→ = outbound message sent to the broker. ← = inbound message received from the broker. SYS = internal system message (heartbeat, logon/logoff).
TypeFIX message type. Logon = session start. Heartbeat = keep-alive (sent every 30s). NewOrderSingle=D = a new order sent to broker. ExecReport=8 = broker's execution confirmation. CancelReq=F = order cancellation request.
ClOrdIDClient Order ID — your unique identifier for the order, generated by EpochOMS. Allows you to match outbound orders with inbound execution reports.
SymbolThe stock ticker for this FIX message.
DetailExecution status detail: New (order acknowledged), PartFill (partially filled), Fill (fully filled), Canceled, Rejected.
Futures Trading

Access from Markets → Futures. Displays live quotes for 19 futures contracts (ES, NQ, YM, RTY, CL, NG, GC, SI, HG, ZB, ZN, ZC, ZS, 6E, 6B, BTC, MES, MNQ, VX) and allows order placement via the IBKR paper account.

Placing a Futures Order

  1. Go to /futures and find the Order panel on the right.
  2. Select symbol, side (BUY / SELL), quantity, and order type (MARKET or LIMIT).
  3. For LIMIT orders enter a limit price and optionally set TIF (DAY or GTC).
  4. Click Place Order. The front-month expiry is resolved automatically from IBKR contract details.
  5. The response shows order ID, resolved expiry date, exchange, and fill status.

Supported Exchanges

ExchangeContracts
CMEES, NQ, RTY, 6E, 6B, BTC, MES, MNQ
CBOTYM, ZB, ZN, ZC, ZS
NYMEXCL, NG
COMEXGC, SI, HG
CFEVX
Private Assets & Alternatives

Track illiquid alternatives — private equity, venture capital, real estate, infrastructure, hedge funds, private credit. Found in the Private Assets & Alternatives accordion group, hidden by default. Open it when you have real LP positions. All data is entered manually from GP quarterly statements; there is no public API for PE/VC NAVs.

PE/VC Metrics

MetricFormulaWhat it means
MOICNAV / CostUnrealised multiple. 1.5x = 50% paper gain.
TVPI(NAV + Distributions) / CostTotal return including cash already returned to you.
DPIDistributions / CostCash returned vs cash invested. DPI > 1x = in profit on a cash basis.
Net IRRFrom GP statementInternal rate of return net of fees. The standard PE benchmark metric.

Three Visualisations

Dividend Income Tracker

Estimated annual dividend income from your current portfolio holdings. Found in News & Signals. Data pulled automatically from yfinance (trailing 12-month dividend rate), cached 4 hours. Non-paying positions are excluded.

What You See

ColumnWhat it shows
DIV/SHRTrailing annual dividend per share from yfinance trailingAnnualDividendRate.
YIELDAnnual yield as % of current price. Green ≥ 5%, amber ≥ 2%.
ANN. INCOMEDIV/SHR x Shares held. Your estimated annual income from this position.
QTR ESTAnnual Income / 4. Approximate quarterly cash, assuming quarterly pay schedule.
Market Regime & Auto-Execution Gate

EpochOMS classifies the market into one of four regimes using SPY price, the 50-day moving average, 5-day momentum, and VIX. The regime gates the autonomous cron-agent execution loop.

Regime Definitions

RegimeConditionsAuto-Execute?Position Sizing
BULLVIX < 20, SPY above 50d MA, momentum > −1%Yes100%
NEUTRALMixed signalsYes80%
BEARVIX > 25, below MA, momentum < −2%Suspended50%
HIGH VOLVIX > 30Suspended0%

Cached 5 minutes. Force refresh: GET /api/regime?refresh=1. The regime gate only affects the automated cron loop — manual orders use the normal 7-gate risk check.

Benchmark Management

Compares your portfolio's cumulative return against any user-selected market benchmark over rolling periods. Quantifies alpha, tracking error, and information ratio so you can objectively measure whether active management is adding value.

Metrics Explained

MetricDefinitionWhat it tells you
Active Return (α)Portfolio return − benchmark returnRaw outperformance or underperformance vs the market
Tracking Error (TE)Annualised std dev of daily active returnsHow consistently you deviate from the benchmark — lower TE = closer tracking
Information Ratio (IR)Active Return ÷ Tracking ErrorReward per unit of active risk — IR > 0.5 is considered good; > 1.0 is exceptional
BetaCov(portfolio, benchmark) ÷ Var(benchmark)Sensitivity to benchmark moves — β < 1 = less volatile than market
CorrelationPearson correlation of daily returnsHow closely returns move together — high correlation with positive alpha is ideal

Built-in Benchmarks

How it works

Access from Performance Analytics → Benchmark Management.

Portfolio Optimiser

Constructs the Markowitz efficient frontier from your current holdings using historical returns. Identifies the optimal portfolio weights that either minimise volatility or maximise risk-adjusted return, so you can rebalance toward a theoretically superior allocation.

Portfolios Compared

PortfolioObjectiveWhen to use
Min VarianceLowest volatility on the efficient frontierCapital preservation, choppy markets
Max SharpeHighest risk-adjusted return (risk-free rate 4.5%)General use — best return per unit of risk taken
Equal Weight1/N baseline — equal allocation to every holdingSanity-check benchmark against optimised weights

How it works

Free tier: 3 optimiser runs per day. Pro: unlimited runs.

Access from Portfolio → Portfolio Optimiser. API: POST /api/portfolio/optimise (force-refresh) or GET /api/portfolio/optimise (cached 1 hour).

GIPS Performance (TWR & MWR)

Calculates portfolio performance using the CFA Institute Global Investment Performance Standards (GIPS) 2020 methodology. Provides time-weighted and money-weighted returns that are directly comparable across managers and time periods.

Key Metrics

MetricWhat it measuresWhen to use
TWR (Time-Weighted)Eliminates timing bias from external cash flows. Chains sub-period returns between each deposit/withdrawal.Manager performance comparison. GIPS standard metric.
MWR (Money-Weighted)IRR (internal rate of return) — weights returns by capital size and timing. Reflects actual dollar performance.Investor experience. Heavily influenced by when capital was added.
Active ReturnTWR minus SPY benchmark return. Positive = outperformed the market.Evaluating alpha generation versus passive index.

Period Returns

Methodology

Access from Performance Analytics → GIPS Performance (TWR & MWR). API: GET /api/performance/gips — requires analyst role or above.

Brinson Attribution — BHB Model

Decomposes portfolio active returns into three independent effects using the Brinson-Hood-Beebower (BHB) model — the industry standard for institutional performance attribution. Explains why your portfolio outperformed or underperformed the S&P 500.

EffectFormulaWhat it measures
Allocation(wp−wb)×(Rb−R)Did you over/underweight the right sectors? Positive when you overweighted sectors that beat the benchmark.
Selectionwb×(Rp−Rb)Did you pick better stocks than the sector ETF within each sector? Pure stock-picking skill.
Interaction(wp−wb)×(Rp−Rb)Combined effect of concentrating in sectors where you also picked better stocks.
Total Active ReturnSum of all threePortfolio return minus S&P 500 return, decomposed by source.

Key Columns

Benchmark & Price Methodology

Access from Performance Analytics → Brinson Attribution (BHB). API: GET /api/performance/brinson — requires analyst role or above. Results cached 4 hours.

NAV Calculation

Computes the Net Asset Value (NAV) per unit of your portfolio using the standard fund industry formula: NAV = (Total Assets − Liabilities) ÷ Outstanding Units. Provides the daily NAV history chart and a full assets breakdown.

ComponentDefinitionSource
Total AssetsCash balance + market value of all holdings (all converted to USD)Portfolio state + live prices via get_price_usd()
Liabilities$0.00 — no margin debt or fee accruals in paper tradingN/A
Outstanding UnitsDerived from initial capital at $100/unit (e.g. $10,000 capital = 100 units, inception NAV = $100.00)accounts.json → initial_cash / 100
NAV per UnitCurrent total NAV divided by outstanding unitsComputed real-time
Daily HistoryNAV per unit for each recorded day — shows fund value growth over timeportfolio_state daily_values

Access from Performance Analytics → NAV Calculation. API: GET /api/performance/nav — requires analyst role or above. Cached 1 hour. Non-US holdings use USD-normalised prices to avoid local-currency inflation.

Cash Ladder

30-business-day projected cash flow view: expected inflows from dividend receipts and sell settlements, plus outflows from buy settlements (T+2). Keeps you aware of upcoming liquidity events.

Independent Valuation

A middle-office pricing-integrity control. Every holding is independently re-priced from a separate market source and compared against the price you paid (the broker fill), so stale feeds, bad ticks, or data errors are caught before they distort your valuations. This is a control report, not a profit-and-loss statement.

Access from Performance Analytics → Independent Valuation. API: GET /api/performance/valuation — analyst role or above. Cached 10 minutes.

Collateral & Margin

Shows what your book would require under standardised non-cleared margin rules. Initial Margin is computed from the BCBS/IOSCO schedule (a prescribed percentage of notional by asset class — no proprietary model or licence required); Variation Margin is the mark-to-market move on each position.

Access from Performance Analytics → Collateral & Margin. API: GET /api/performance/margin — analyst role or above. Cached 10 minutes.

Standardised RWA (Basel III)

Risk-Weighted Assets under the Basel III standardised approach, and the regulatory capital they imply. Each exposure is multiplied by a prescribed risk weight; the total feeds the minimum capital calculation. Useful context for FCA authorisation and capital-adequacy discussions.

Access from Performance Analytics → Standardised RWA. API: GET /api/performance/rwa — analyst role or above. Cached 10 minutes.

Regulatory & Middle-Office Tools

ETF Look-Through

Decomposes index ETFs you hold (SPY, QQQ, DIA …) into their underlying single-name constituents so your true stock-level concentration is visible — e.g. the AAPL you own directly plus the AAPL inside every ETF. Uses a static constituent map with an override file; there is no live holdings feed.

Access from Analytics → ETF Look-Through. API: GET /api/lookthrough.

CSA / Soft Commissions

Tracks Commission-Sharing-Agreement (CSA/CCA) accruals: a configurable research portion of commission notional accrues into a research-payment pool, against which you log research payments and a budget. Gives an auditable soft-commission ledger.

API: GET /api/csa, /api/csa/config, /api/csa/payment.

Securities Lending & Short-Locate Register

A register of securities on loan and short-sale locates/borrows, with fee and borrow-cost accrual. Supports the locate requirement before short selling and records the running cost of each borrow.

API: GET/POST /api/seclending/*.

PRIIPS KID

Generates a PRIIPs Key Information Document: the Summary Risk Indicator (SRI 1–7), performance scenarios, and the aggregated cost disclosure, as HTML and PDF — the retail-disclosure document required under the PRIIPs regime.

API: GET /api/report/priips_kid (HTML + PDF).

Settlement Fails & CSDR Penalties

Monitors settlement fails and computes the CSDR cash-penalty accrual on failing trades, built on the existing STP MT54x / ISO 20022 and affirmation flow. Surfaces what would fail and the penalty it would attract under the CSDR Settlement Discipline Regime.

API: GET /api/settlement/fails.

Compliance

The Compliance tab provides a real-time view of all regulatory and internal risk limit monitoring. It is the authoritative record for audit purposes and must be reviewed before end of day by the compliance officer role.

Compliance Dashboard

Breaches Today
0
Positions Monitored
14
Last Audit Export
Today 08:00

Monitored Rules

Position Concentration — No single position may exceed 30% of total portfolio value (hard limit). Soft warning at 20%. Currently: Max position 11.7% (MSFT). PASS
AUTO
Sector Concentration — No single GICS sector may exceed 60% of portfolio. Soft warning at 40%. Currently: Technology 48.2%. SOFT WARN
AUTO
Daily Loss Limit — Trading halted if portfolio loses more than 5% in a single day. Currently: Day P&L +0.65%. PASS
AUTO
Order Approval Threshold — Orders above $10,000 require Risk Manager approval. All such orders today: approved. PASS
AUTO
ESG Minimum Rating — No new positions in stocks rated below B (CCC or CC). No violations today. PASS
POLICY

Role-Based Access

RoleOrdersApprovalComplianceAdminReports
AdminFullFullFullFullFull
TraderPlace/CancelNoneViewNoneOwn only
Risk ManagerViewApprove/RejectFullNoneFull
ComplianceViewNoneFull + ExportNoneFull
AnalystViewNoneViewNoneView
GuestNoneNoneNoneNoneNone

Risk Limits & the Agent

EpochOMS enforces pre-trade risk limits at two levels. Understanding which applies to manual orders versus the automated agent avoids confusion when you receive compliance notifications.

LimitConfig keyWhat it does
Per-order notional capMAX_SINGLE_ORDER_NOTIONALMaximum dollar value of a single BUY order (default $500). The agent clips its order size down to this cap before placing — it never charges at the limit and bounces. Manual orders above this cap are blocked with a compliance notification explaining why.
Position concentrationMAX_POSITION_PCTNo single ticker may exceed this % of total portfolio value. The agent skips signals for positions already at the limit.
Sector concentrationMAX_SECTOR_CONCENTRATION_PCTNo single GICS sector may exceed this % of portfolio. Agent skips signals in a sector already at its cap.
Daily loss limitMAX_DAILY_LOSS_PCTIf the portfolio is down more than this % on the day, all agent BUY orders halt for the remainder of the session.
Cash reserveMIN_CASH_RESERVE_PCTThe agent will never place a buy that would reduce available cash below this floor.
💡
The agent respects your tolerances over market opportunity. If a signal fires but the order would exceed MAX_SINGLE_ORDER_NOTIONAL, the agent clips the order to the cap and places it at the capped size. It does not skip the trade, and it will never generate a 🚫 Compliance Block: MAX_NOTIONAL notification — that notification means a manual order was submitted above the cap.
AGENT

Risk parameters are configured in Preferences → Risk Settings (admin only). Changes take effect on the next agent run without a restart.

Audit Log

Every action in EpochOMS is recorded in the immutable audit log: order placements, approvals, rejections, logins, settings changes, and agent runs. The log is accessible from Compliance → Audit Log and can be exported as a signed PDF or CSV.

Regulatory Transaction Reporting (MiFID II RTS 22)

EpochOMS generates MiFID II Article 26 transaction reports in the official ISO 20022 auth.016.001.02 XML schema — the format an Approved Reporting Mechanism (ARM) accepts for submission to the FCA. Download from Compliance → Regulatory Reports.

ReportScopeFormat
RTS 22 Transaction ReportEvery execution in the period — one <Tx><New> block per tradeXML (auth.016.001.02)
RTS 27 Execution QualityBest-execution venue metricsCSV
RTS 28 Top-5 VenuesOrder routing by venueCSV

Each RTS 22 transaction carries the executing and submitting entity LEIs, buyer and seller identification, instrument ISIN (with a fallback identifier where an ISIN is not yet mapped), microsecond execution timestamp, trading capacity, price and currency, the execution venue MIC code, and the short-selling indicator.

Security & Data Protection

EpochOMS is built so that your data stays yours. The platform's isolation and encryption are verified by automated tests on every release.

Continuous Monitoring & Regulatory Reports

Compliance Surveillance

Beyond the checks that run when you place an order, EpochOMS continuously sweeps your whole book for issues that build up over time — a position growing too large as its price rises, drift away from a mandate’s target weight, holding a name that has since been restricted, low cash, or potential wash sales. Findings are graded by severity and you are alerted to new high-severity breaches automatically.

Regulatory Reports & Filing Calendar

One place to generate every regulatory report — MiFIR (RTS 22/27/28), EMIR, SFTR, AIFMD Annex IV, SEC Form 13F, and short-position / ownership disclosure — as CSV, XML, or polished PDF. A calendar shows upcoming filing deadlines (for example, Form 13F is due 45 days after quarter-end) and every generation is recorded to an audited register.

Alerts

EpochOMS delivers real-time alerts through three channels: the in-app notification bell (🔔), email, and Telegram. Configure your preferences in Preferences → Alert Config.

Alert Types

🔔
Order Filled — Triggered when any order (manual or agent) reaches FILLED status. Includes ticker, quantity, fill price, and P&L impact.
ORDER
Order Requires Approval — Triggered when an order exceeds the $10,000 threshold and enters PENDING APPROVAL. Sent to the placing trader and all Risk Manager accounts.
ORDER
🚫
Order Rejected — Sent when a Risk Manager rejects a pending approval or when the system rejects an order at the pre-trade check stage.
ORDER
📈
Agent Run Complete — Sent after each automated agent run (14:00, 17:00, 19:00 UTC) with a summary: number of signals generated, orders placed, tickers analysed.
AGENT
🔴
Risk Limit Breach — Sent immediately when any monitored limit is breached: daily loss limit, concentration limit, or sector limit.
RISK
📊
Price Alert — User-configured alerts when a ticker reaches a specified price level (e.g. "alert me when AAPL reaches $200"). Set via the watchlist context menu.
PRICE
📋
Compliance Breach — Sent to Compliance role accounts when any compliance rule changes from PASS to WARN or BREACH status. Telegram alerts include company name and sector alongside the rule that fired.
COMPLIANCE
📊
Screener Signal (RSI / MA Crossover) — Fired by the live screener background thread every 60 seconds. Triggers when a ticker crosses RSI 30 (oversold), RSI 70 (overbought), or when price crosses the 20-day moving average. Telegram alerts show the ticker, company name, sector, signal type, and a description of the crossing. Delivered via push notification, email (if enabled), and Telegram simultaneously.
SCREENER

Alert Channels

ChannelSetupBest for
In-App BellAlways active — no setup needed. Bell icon turns amber when unread alerts exist. Click to open the drawer.Non-urgent notifications you check periodically throughout the day.
EmailYour registered email (set on account creation). Configure which alert types trigger email in Preferences → Alert Config.End-of-day summaries, compliance reports, approval notifications when you are away from the platform.
TelegramLink your Telegram account by entering your Chat ID in Preferences → Alert Config. The EpochOMS bot must be added to your Telegram.Real-time trade notifications and agent run summaries — Telegram delivers within seconds. Ideal for monitoring the agent while away from your desk.
Push NotificationsEnable via Preferences → Push Notifications. Works in any browser that supports PWA web push. No app install needed — alerts appear as native OS notifications even when the browser tab is not open.Screener crossings and trade fills when you are away from the dashboard. Combined with Telegram, gives full dual-channel real-time coverage.

Telegram Notification Format

Every Telegram alert that references a specific stock uses a consistent three-part header: TICKER · Company Name · Sector followed by the core detail. This applies across all channels (Trading, Alerts, Daily).

Alert typeChannelFormat
Trade executed (BUY / SELL)TradingTicker · Company · Sector, then shares / price / value / signal reasoning / selection context
Screener signal (RSI / MA)AlertsTicker · Company · Sector, then signal label and crossing description
Price alert triggeredAlertsTicker · Company · Sector, then direction arrow and triggered vs target price
Volume spikeAlertsTicker · Company · Sector, then volume ratio vs ADV
Earnings proximityAlertsTicker · Company · Sector, then days until earnings date
Compliance blockAlertsTicker · Company · Sector, then rule name and detail
Daily summary & morning briefDaily / TradingEach holding and trade line shows Ticker · Company · Sector inline

Company names and sectors are resolved from the full S&P 500 enrichment layer — all 479 screener instruments are covered, not just the core watchlist.

Screener Alert Throttling

The live screener scans 547 instruments every 60 seconds. To prevent notification floods, the system applies a two-tier throttle:

Ticker typeCooldownPer-cycle cap
Regular tickers4 hours — same ticker+signal cannot re-fire within 4 hours10 alerts per 60s scan cycle (RSI signals prioritised over MA crossovers)
Favourited tickers with alerts on (🔔)30 minutes — fires more frequently for tickers you care aboutSeparate 20-alert cap, independent of the regular cap

Favourites Alert Toggle

Click the ★ star icon in the top header to open your Favourites panel. Each starred stock has a bell icon (🔔/🔕) to the left of the star:

1
Star any ticker by clicking the ☆ icon in the Signals or Screener table. It appears in your Favourites panel.
2
Open the Favourites panel (★ star button, top right of the header).
3
Click 🔕 next to any ticker to enable alerts for it (turns to 🔔 in accent colour). The preference is saved to your server profile immediately.
4
With alerts on: that ticker bypasses the regular 10-alert cap and fires every 30 minutes when a signal is detected — no waiting 4 hours. Up to 20 favourited tickers can alert per scan cycle.
5
Click 🔔 again to disable alerts for that ticker (reverts to standard throttling rules).

Setting a Price Alert

1
In the Screener or Signals table, right-click (or long-press on mobile) on any ticker to open the context menu.
2
Select "Set Price Alert" from the menu.
3
Enter the target price and choose the direction: Above (alert when price rises to this level) or Below (alert when price falls to this level).
4
Optionally add a note (e.g. "AAPL breakout level"). Click Create Alert. The alert appears in your active alerts list.
5
When the price is reached, you receive a notification on all configured channels simultaneously. The alert auto-dismisses after triggering.

Reports

EpochOMS generates several standard financial reports. Access them from hamburger menu → Reports. All reports can be exported as PDF or CSV.

Available Reports

Performance Report
Comprehensive overview of portfolio performance over a selected date range. Includes: equity curve, benchmark comparison (vs S&P 500), CAGR, Sharpe ratio, max drawdown, best/worst months, and monthly returns heatmap.
Trade History
Complete list of every order placed, filled, or cancelled over the selected period. Filterable by ticker, date range, source (manual/agent), and status. Download as CSV for external analysis.
P&L Statement
Realised and unrealised profit and loss broken down by position, sector, and month. Useful for tax preparation and performance attribution analysis.
Risk Report
Snapshot of all current risk metrics: VaR, beta, correlation matrix, sector concentrations, and limit utilisation percentages. Standard report for end-of-day risk review.
Agent Activity Log
Detailed log of every automated agent run: which strategy was used, which tickers were scored, which signals passed the threshold, which orders were placed, and the reasoning summary for each trade.
Compliance Audit Export
Immutable audit trail export for regulatory submission. Includes SHA-256 hash for integrity verification. Date-range selectable. Only accessible to Compliance and Admin roles.

Generating a Report

1
Open hamburger menu → Reports and select the report type.
2
Set the date range using the date picker. Presets: Today, This Week, This Month, YTD, Custom Range.
3
Apply any filters (e.g. specific tickers, specific strategy, manual/agent orders only).
4
Click Generate. The report renders in-browser within a few seconds.
5
Click Export PDF or Export CSV to download. PDF is formatted for printing and sharing. CSV is for further analysis in Excel or Python.

Monthly Returns Heatmap

The Performance Report includes a calendar heatmap showing monthly portfolio returns. Green cells = positive months. Red cells = negative months. The intensity of colour scales with the magnitude of the return. This makes it easy to spot seasonal patterns or strategy weaknesses in specific market conditions.

Monthly Returns Heatmap (sample)
Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
2024
+3.1%
+1.8%
-2.4%
+4.2%
+2.1%
-1.1%
+5.8%
-4.9%
+3.3%
+2.7%
+6.1%
+1.9%

Settings

Access Settings from hamburger menu → Preferences → Settings. This is where you configure the platform to match your workflow, trading style, and risk tolerance.

Connecting Your Broker

EpochOMS is broker-agnostic — it works with any supported broker using your own API credentials. The broker holds your capital; EpochOMS provides all the analytics and execution intelligence on top.

Supported Brokers

BrokerAccount typeMonthly costBest for
AlpacaPaper + Live (US stocks & ETFs)Free (paper & live)Most EpochOMS users — zero cost, instant setup
Interactive Brokers (IBKR)Paper + Live (multi-asset, global)Commission per trade onlyInstitutional tier, multi-asset, FIX 4.2 bridge

Alpaca setup (recommended — takes 5 minutes)

1
Go to alpaca.markets and create a free account. Complete identity verification (required for live trading).
2
In the Alpaca dashboard: Your account → API Keys → Generate new key. Copy both the API Key ID and the Secret Key — the secret is shown only once.
3
In EpochOMS: open the Broker Connectivity section from the dashboard accordion. Under Alpaca Paper / Live, click the Alpaca API Keys card and paste your API Key and Secret.
4
Click Connect & Validate. EpochOMS connects to Alpaca, confirms your account is active, and stores your credentials encrypted. This takes a few seconds.
5
Your credentials are stored encrypted on EpochOMS servers using AES-256. They are never visible in plain text after you submit them. To remove access, click Disconnect in the same panel.

IBKR Client Portal setup

1
Download and install IBKR Desktop from interactivebrokers.com. Log in with your IBKR credentials. Enable Client Portal API in Settings → API → Enable Client Portal.
2
Note your Client Portal Gateway URL — by default it runs at https://localhost:5000 on your machine. If EpochOMS is on a remote server, you will need to expose the gateway URL so the server can reach it (e.g. via SSH tunnel or VPN).
3
In EpochOMS: open Broker Connectivity and find the IBKR Client Portal card. Enter your gateway URL and optionally your account ID (auto-detected if left blank).
4
Click Connect & Verify. EpochOMS will test the gateway connection and authentication status. On success, your broker is switched to IBKR Paper. Switch to IBKR Live from the Broker Connectivity panel once you are ready for real orders.

IBKR session keepalive: The Client Portal Gateway session expires if unused. EpochOMS sends a keepalive ping automatically when you are active. If you leave for several hours and return to a disconnected session, open the Broker Connectivity panel and click Refresh — if it shows disconnected, log back into IBKR Desktop to restore the session.

Paper vs Live: Start on Paper. Paper mode uses Alpaca's simulated order book — fills are realistic but no real money moves. Switch to Live only after you have validated your strategy in backtesting and paper trading. The account chip in the header turns amber on Live as a permanent reminder.

Cash in your live account

Your broker holds your cash. To add funds: deposit directly through Alpaca or IBKR using their normal bank transfer process. EpochOMS will automatically sync your cash balance on the next portfolio refresh. If a recent deposit hasn't appeared yet, use Settings → Account → Sync Balance to force an immediate reconciliation.

Two API keys: Paper and Live

Alpaca provides separate API keys for paper and live accounts — they are not the same key. Make sure you paste the correct key for the mode you intend to use. Using your live API key in paper mode or vice versa will cause authentication failures.

Display & Theme

EpochOMS uses a dark terminal aesthetic by default. There is no light mode — the dark theme is optimised for extended screen time during market hours and reduces eye strain on multiple monitor setups. Font size can be adjusted in Settings → Display (Small / Medium / Large).

Account Settings

SettingDescription
Default AccountSets which account (Paper or Live) loads by default when you open the platform. Recommended: Paper Account for most users unless you are actively managing a live book.
Starting CapitalThe notional starting balance for paper trading. Changing this resets the paper portfolio P&L calculation baseline but does not affect position holdings.
Timezone DisplayAll internal timestamps are stored in UTC. This setting controls how they are displayed in the UI. Default: UTC. Change to your local timezone for more intuitive time display.
Session TimeoutAutomatically logs you out after the specified period of inactivity. Default: 60 minutes. Compliance-required minimum: 30 minutes for accounts with Trader or higher role.

AI & Auto Section

The AI & Auto section controls the behaviour of the automated trading agent and the AI chat assistant. The automated agent and auto-approve operate on paper / simulation accounts only and cannot be enabled on a live account — live trading is always self-directed (you place every order yourself).

SettingDescription
Agent EnabledMaster on/off toggle for the automated trading agent. When disabled, the agent still runs its analysis on schedule but does not place any orders — it only updates the Signals table.
Auto-Approve OrdersBy default, orders over $10,000 go to the manual approval queue. Enabling auto-approve bypasses this check. The autonomous agent runs on paper / simulation accounts only and cannot be enabled on a live account, so auto-approve applies to simulated trading only.
Score ThresholdThe minimum composite score (0–100) required for the agent to place an order. Default: 70. Lower threshold = more trades, higher activity. Higher threshold = fewer, higher-conviction trades only. Adjust based on your back-test results for the active strategy.
Max Orders Per RunCaps the number of orders the agent can place in a single scheduled run. Default: 5. Prevents the agent from deploying large amounts of capital in one shot if a sudden opportunity creates many buy signals.
Max Position SizeThe maximum dollar value the agent can allocate to any single position. Works in conjunction with the Position Sizer formula. Default: $25,000.

Monitoring the Trading Agent

The agent log is accessible from the AI & Auto section of the main dashboard (scroll down past the chat panel to find the Agent Log table). It shows every decision the agent made during its run.

Agent Log — Run at 14:00 UTC
TimestampActionTickerScoreQtyReason
14:02:31BUYAAPL7850Score above threshold (78>70). RSI 58, above MA20, momentum +7.2%.
14:02:29SKIPMSFT61Score below threshold (61<70). HOLD signal — no action.
14:02:28SKIPTSLA28SELL signal. No existing position to reduce. Skipped.
14:02:27BUYNVDA9412ADD MORE signal. Score 94. Capped at 12 shares to stay under 20% concentration.
ActionMeaning
BUYAgent placed a buy order for this ticker. Order appears in the Orders tab.
SELLAgent placed a sell/reduce order for an existing position.
HOLDScore in the HOLD range (40–70). Agent assessed but took no action — existing position retained as-is.
SKIPAgent had a signal but chose not to act. Common reasons: score below threshold, no existing position for a sell signal, concentration cap would be exceeded, max orders per run already reached.

Cron Agent Schedule

The automated runs are scheduled on the server cron. They happen at 14:00, 17:00, 19:00 UTC on weekdays.

UTCUS EasternUK (BST/GMT)Session context
14:0010:00 AM ET15:00 BST / 14:00 GMTOpening run — ~30 mins after NYSE open. Initial price discovery complete.
17:001:00 PM ET18:00 BST / 17:00 GMTMid-session run — reassesses after morning moves and lunchtime news flow.
19:003:00 PM ET20:00 BST / 19:00 GMTPre-close run — final pass before NYSE close (16:00 ET). May trigger closing trades.

Weekend & Holiday behaviour: The agent does not run on weekends or US federal holidays. On days when the market closes early (e.g. day before Thanksgiving), the 19:00 UTC run may find no market open — the agent detects this and skips order placement but still logs the analysis.

Notification Preferences

In Settings → Notifications, toggle each alert type on or off per channel (in-app, email, Telegram). For example, you may want order fill notifications on all three channels but only want the daily summary report on email.

Changing Your Password

1
Go to Settings → Account → Change Password.
2
Enter your current password to verify identity.
3
Enter and confirm your new password. Minimum: 12 characters, at least one number, one uppercase letter, one special character.
4
Click Save. You will be automatically logged out of all active sessions and must log in again with the new password.

Two-Factor Authentication (2FA)

Every user can protect their own account with an authenticator-app one-time code (TOTP), on top of their password. 2FA is enrolled per user — turning it on for your account does not affect anyone else.

1
Go to /2fa/setup (Settings → Account → Two-Factor Authentication). A QR code and a secret key are shown.
2
Scan the QR code with Google Authenticator, Authy, 1Password, or any TOTP app — or type the secret in manually.
3
Enter the 6-digit code your app displays to confirm, then click Enable. Your secret is stored encrypted (AES-256) — never in plain text.
4
From now on, after entering your password you'll be asked for the current 6-digit code. Tick Trust this device to skip the code on that device for 30 days.

Investor (LP) Portal — Administration

If you manage outside investors, the Investor Portal gives each Limited Partner a secure, read-only login showing their own capital account plus an aggregated view of the fund. Administrators manage it from the menu → Investor (LP) Admin.

1
Set the fund record — name, currency, total commitments, fund NAV, and the portfolio asset directory shown to all LPs.
2
Create each investor — name, login username and password, and commitment. This provisions a read-only investor login confined to the portal.
3
Record cash flows — capital calls and distributions (with dates and wire references), either one at a time or via bulk CSV import.
4
Mark NAVs — record each LP's net asset value periodically. Where no mark exists, the portal estimates an LP's NAV as their pro-rata share of fund NAV.
5
Upload documents — K-1s and capital-account statements to an individual LP's private folder, or investor letters to the shared fund library.
6
Delete an investor to purge their capital account, cash flows, documents and login in one action.

PAD Mode — Personal Account Dealing Compliance

PAD mode is an optional compliance feature for users who need to follow Personal Account Dealing rules (common in regulated financial institutions). It is off by default — enable it only if your employer or regulator requires it.

FeatureBehaviour when PAD mode is ON
30-day holding periodThe automated agent cannot generate a SELL signal for any position held fewer than 30 days since the last buy. Stop-loss and take-profit exits are exempt.
Pre-clearance requiredBefore placing a BUY order, the agent checks /compliance/preclear for an active clearance token. If no clearance exists, the order is blocked and logged to the compliance audit trail.
Compliance loggingEvery blocked trade is written to the PAD compliance log, available in Menu → Compliance & Audit → PAD Pre-Clearance.

Toggle PAD mode on or off from Menu → Compliance & Audit → PAD Pre-Clearance. The toggle is instant — no restart required.

Important: PAD mode affects the automated trading agent only. Manual orders placed via the New Order panel are not blocked by PAD rules — you remain responsible for your own compliance obligations when placing manual trades.

Onboarding Tour

The onboarding tour walks you through every major feature of the dashboard when you first log in. It appears automatically after your first login and can be dismissed at any step by tapping Skip.

StepWhat it covers
1 — WelcomeOverview and navigation tips.
2 — Live Portfolio MetricsThe KPI row: Portfolio Value, Total P&L, Sharpe Ratio, VaR.
3 — New OrderThe + button: Market, Limit, Stop orders; 4-eyes approval for large trades.
4 — Favourites & AlertsStar watchlist and RSI/MA alert bell.
5 — Max AI AssistantChat bubble for market analysis and support.
6 — MenuHamburger menu: Screener, Reports, Compliance, Tools.
7 — SettingsGear icon: Strategy config, AI mode, scheduler, API monitor.
8 — All setSupport contacts and sign-off.

To restart the tour at any time: open ≡ Menu → Preferences → Restart Tour. You can also press Escape to dismiss the tour if the overlay ever gets stuck.

Tip: All header icon buttons have hover tooltips — hover over any icon (star, bell, chat bubble, menu, gear) to see its label without opening it.

Subscription & Billing

EpochOMS uses Stripe for secure subscription management. You can subscribe, upgrade, and cancel entirely through self-serve — no sales call required.

Plans

PlanMonthlyAnnualIncluded
Free (Explorer)£0£0Paper trading, full analytics, backtesting, 1 portfolio
Pro£19/mo£190/yrAll Free + priority data refresh, extended screener history, PDF reports
Trader£49/mo£490/yrAll Pro + live broker execution, real-time alerts, extended API access
Enterprise£99/mo£990/yrAll Trader + multi-user seats, compliance toolkit, priority support, white-label options

Annual plans save 2 months — equivalent to paying for 10 months and getting 12.

How to subscribe

1
Go to ≡ Menu → Account → Upgrade Plan, or navigate to /upgrade. The pricing page shows monthly and annual options — toggle between them at the top.
2
Click Get [Plan Name]. You will be redirected to a secure Stripe Checkout page. Your EpochOMS account is automatically linked via your session — no extra login needed on the Stripe side.
3
Enter your card details on the Stripe checkout page. EpochOMS never sees or stores your card number — it is processed entirely by Stripe's PCI-compliant payment infrastructure.
4
On successful payment, you are returned to EpochOMS. Your tier is upgraded immediately — you will see the plan badge change in the header within seconds.
5
A welcome email is sent to your registered address confirming your new tier. Stripe also sends a separate payment receipt.

Billing FAQ

QuestionAnswer
When am I charged?Immediately on subscribing, then on the same date each month (or year for annual plans). Stripe handles all renewals automatically.
How do I cancel?Go to Menu → Account → Manage Subscription. Your access continues until the end of the current billing period. There is no cancellation fee.
Can I switch from monthly to annual?Yes — upgrade at any time from the same Manage Subscription page. Stripe applies a prorated credit for unused days on your current monthly period.
What happens on downgrade?Your tier is changed at the end of the current billing period. Until then, you retain full access to your current plan's features.
Is my card data stored on EpochOMS servers?No. Payment data lives entirely with Stripe. EpochOMS stores only your Stripe customer ID and subscription status, not any card details.
Do you offer refunds?Annual plans cancelled within 14 days of purchase receive a full refund. Monthly plans are non-refundable after the billing date. Contact support@epochoms.com for exceptional cases.

Glossary

Financial and platform terms used throughout EpochOMS, explained in plain English.

A
ADV — Average Daily Volume
The average number of shares traded per day over a lookback period (typically 20 or 30 days). Used to assess liquidity. Orders above 1% of ADV may have meaningful market impact.
ATR — Average True Range
A measure of a stock's average daily price swing. Calculated as the rolling average of the True Range (the largest of: high-low, |high-prev close|, |low-prev close|). Used by the Volatility Sizing strategy to normalise position sizes.
ATM — At The Money
An options contract whose strike price is at or very close to the current market price of the underlying stock. ATM options have the highest time value and approximately 0.50 delta.
B
Beta
A measure of a stock's price sensitivity relative to the S&P 500. Beta 1.0 = moves exactly with the market. Beta 2.0 = moves twice as much. Beta 0.5 = moves half as much. Negative beta = moves opposite to the market (e.g. gold miners during recessions).
Bid-Ask Spread
The difference between the highest price a buyer will pay (bid) and the lowest price a seller will accept (ask). For highly liquid stocks the spread is typically $0.01. For illiquid or options contracts it can be much wider. The spread is an immediate cost when entering or exiting a position.
C
CAGR — Compound Annual Growth Rate
The smoothed annualised rate of return over a multi-year period, assuming returns are compounded. Formula: (Ending Value / Beginning Value)^(1/Years) − 1. The most useful single-number comparison of portfolio or strategy performance across different time periods.
Call Option
A derivative contract that gives the holder the right (but not obligation) to buy 100 shares of a stock at the strike price before the expiry date. Bought by investors who expect the stock to rise.
ClOrdID
Client Order ID — a unique identifier generated by EpochOMS for each order sent via the FIX protocol. Allows matching of outbound orders with inbound execution reports from the broker.
Covered Call
An options strategy where you sell a call option against shares you already own. You collect the premium but cap your upside at the strike price. Used to generate income on existing positions.
D
Death Cross
A bearish technical signal when the 50-day moving average crosses below the 200-day moving average. Indicates a potential shift from a bull to bear trend. Used by the MA Crossover strategy as a SELL signal.
Delta (Options)
The rate of change in an option's price per $1 move in the underlying stock. Call delta: 0 to 1.0. Put delta: -1.0 to 0. Also approximates the probability that the option will expire in the money.
Drawdown
The peak-to-trough decline in portfolio value from any high point before a new high is reached. Max Drawdown is the worst such decline over a given period. Critical risk metric — large drawdowns are psychologically difficult to recover from even when mathematically possible.
E
EPS — Earnings Per Share
A company's profit divided by the total number of outstanding shares. Formula: Net Income ÷ Shares Outstanding. Positive EPS = profitable. Negative EPS = loss-making. A core input to the P/E ratio.
ESG Rating
Environmental, Social & Governance rating assigned by a third-party data provider. Reflects how well a company manages its environmental impact, social responsibilities, and governance practices. Scale: AAA (best) → AA → A → BBB → BB → B → CCC (worst). EpochOMS compliance rules prevent investing in stocks below a configurable ESG minimum.
F
FIX Protocol
Financial Information eXchange — the industry-standard electronic messaging protocol for the real-time exchange of order and trade information between financial institutions, brokers, and trading systems. EpochOMS implements FIX 4.2.
FOK — Fill Or Kill
A Time in Force instruction that requires the entire order to be filled immediately in full, or it is cancelled entirely. No partial fills. Used when you need a specific quantity at a specific price and cannot tolerate a partial position.
G
Gamma
The rate of change of delta per $1 move in the underlying stock. High gamma means your option's delta (and therefore its price sensitivity) changes rapidly as the stock moves. ATM options have the highest gamma, especially close to expiry.
GICS — Global Industry Classification Standard
The industry sector classification system developed by MSCI and S&P Global. Divides companies into 11 sectors: Energy, Materials, Industrials, Consumer Discretionary, Consumer Staples, Healthcare, Financials, Information Technology, Communication Services, Utilities, Real Estate. Used for sector allocation tracking in EpochOMS.
Golden Cross
A bullish technical signal when the 50-day moving average crosses above the 200-day moving average. Indicates a potential shift from a bear to bull trend. Used by the MA Crossover strategy as a BUY signal.
GTC — Good Till Cancelled
A Time in Force instruction meaning the order remains active across trading sessions until it is filled or you manually cancel it. Contrast with DAY orders that expire at the close of the current trading session.
I
IOC — Immediate Or Cancel
A Time in Force instruction that fills as much of the order as possible immediately, then cancels any remaining unfilled portion. Unlike FOK, partial fills are accepted.
ITM — In The Money
An option that has intrinsic value. A call is ITM when the stock price is above the strike price. A put is ITM when the stock price is below the strike price. ITM options are more expensive but move more with the stock (higher delta).
IV — Implied Volatility
The market's expectation of future price volatility, derived from options prices. Expressed as an annualised percentage. High IV = options are expensive (the market expects large moves). IV typically spikes before earnings announcements and major macro events.
L
LEAPS
Long-term Equity Anticipation Securities — options with expiry dates more than 9 months away, sometimes up to 2–3 years. Because of their longer time horizon, they are less sensitive to short-term theta decay and more sensitive to changes in implied volatility (higher vega).
Limit Order
An order to buy or sell a security at a specified price or better. A buy limit order executes at or below the limit price. A sell limit order executes at or above the limit price. The trade-off: you control price but the order may not fill if the market never reaches your limit.
M
Market Order
An order to buy or sell immediately at the best available current price. Guaranteed to execute (in liquid stocks) but gives no price guarantee. Can result in slippage — the actual fill price may differ from the last quoted price, especially for large orders.
Max Drawdown
The largest peak-to-trough decline in portfolio value over a given period. Example: if your portfolio peaks at $100,000, falls to $82,000 before recovering, the max drawdown is -18%. A critical metric for assessing strategy risk and psychological tolerability.
Momentum
The tendency of assets that have recently outperformed to continue outperforming over the short term (and vice versa). One of the most well-documented market anomalies across asset classes and geographies. The EpochOMS Momentum strategy exploits 20-day price momentum.
Moving Average (MA)
The average price of a stock over a rolling window of trading days. MA20 = 20-day moving average, MA50 = 50-day, MA200 = 200-day. Longer MAs are smoother and slower to react; shorter MAs are more sensitive to recent price changes. When price crosses above a MA it is bullish; below is bearish.
O
Open Interest
The total number of outstanding options contracts that have not been settled or expired. Rising open interest with rising price confirms a trend. High open interest at a specific strike can act as a magnet for the stock price (a concept called "max pain").
OTM — Out of The Money
An option with no intrinsic value at the current stock price. A call is OTM when the strike is above the current price. A put is OTM when the strike is below the current price. OTM options are cheaper but have lower probability of expiring with value.
P
P/E Ratio — Price to Earnings
Stock price divided by earnings per share (EPS). A P/E of 25 means you are paying $25 for every $1 of annual earnings. Lower P/E = cheaper relative to earnings (Value strategy targets these). Higher P/E = more expensive, implying high growth expectations. Compare P/E within the same sector, not across sectors.
P&L — Profit and Loss
The financial result of your trading activity. Unrealised P&L is the gain or loss on positions you still hold. Realised P&L is locked in from positions you have closed. The two together give your total P&L.
Premium (Options)
The price paid to purchase an option contract. Composed of intrinsic value (how far ITM the option is) and time value (the remaining time until expiry multiplied by expected volatility). Premium = Intrinsic Value + Time Value.
Put Option
A derivative contract giving the holder the right to sell 100 shares at the strike price before expiry. Bought by investors who expect the stock to fall, or as portfolio insurance (hedging). A put on a stock you own acts like insurance — it caps your downside loss.
R
RSI — Relative Strength Index
A momentum oscillator ranging from 0 to 100, developed by J. Welles Wilder. Measures the speed and magnitude of recent price changes. Below 30 = oversold (stock has fallen sharply; potential bounce). Above 70 = overbought (stock has risen sharply; potential pullback). Between 30–70 = neutral. Does not predict price direction with certainty — in strong trends, stocks can remain oversold or overbought for extended periods.
Realised P&L
The profit or loss that has been locked in by closing (selling) a position. Realised P&L affects your cash balance and is taxable (depending on your jurisdiction). Contrast with Unrealised P&L, which is still at risk of market fluctuations.
S
Sharpe Ratio
A measure of risk-adjusted return: (Portfolio Return − Risk-Free Rate) ÷ Portfolio Standard Deviation. Above 1.0 = acceptable. Above 2.0 = excellent. Below 0 = taking risk without compensation. The Sharpe Ratio penalises all volatility (both upside and downside), which is why some prefer the Sortino Ratio.
Sortino Ratio
Like the Sharpe Ratio but only penalises downside volatility (negative deviations from the mean), not upside. More relevant for trading strategies where large upside swings are desirable. Above 1.5 is generally considered good.
Stop Order
An order that becomes a market order when the stock price reaches a specified "stop" price. Commonly used as a stop-loss — you set the stop below your entry price, and if the stock falls to that level, it automatically sells to limit your loss.
Strike Price
The fixed price at which an option holder can buy (call) or sell (put) the underlying stock when exercising the contract. The strike is set at the time the option contract is written and does not change.
T
Theta
Time decay — the amount an option loses in value each day just from the passage of time, all else equal. Theta is negative for option buyers (time works against you) and positive for option sellers (time works in your favour). Theta accelerates dramatically in the final 30 days before expiry.
TIF — Time in Force
An instruction on an order specifying how long it should remain active if not filled. Options in EpochOMS: DAY (expires at market close), GTC (Good Till Cancelled), IOC (Immediate Or Cancel), FOK (Fill Or Kill).
V
VaR — Value at Risk
A statistical measure of the maximum expected loss over a given time period at a specified confidence level. "95% 1-Day VaR of $4,820" means there is a 5% probability of losing more than $4,820 in a single trading day. VaR does not capture tail risk — the losses beyond the confidence threshold can be much larger.
Vega
An option's sensitivity to changes in implied volatility. If vega is 0.15, a 1% rise in IV increases the option's value by $0.15 ($15 per contract of 100 shares). Long options have positive vega (benefit from rising IV). Short options have negative vega (benefit from falling IV).
Volatility Smile / Skew
The pattern of implied volatility across different strike prices. A "smile" occurs when IV is higher for both deep ITM and deep OTM options than for ATM. A "skew" (common for equity index options) occurs when puts have higher IV than equidistant calls, reflecting demand for downside protection.
W
Walk-Forward Testing
A back-testing methodology that divides historical data into multiple In-Sample (IS) and Out-of-Sample (OOS) segments. The strategy is fitted on IS data, then tested on OOS data it has never seen. If performance holds in OOS, the strategy is likely robust. If OOS performance is significantly worse, the strategy was over-fitted to the training data.
Win Rate
The percentage of trades that result in a profit. A 60% win rate means 6 out of every 10 trades are profitable. Note: win rate alone is insufficient — a strategy with 40% win rate but 3:1 average reward-to-risk ratio is more profitable than one with 70% win rate but 1:2 reward-to-risk.