A MarketSmith-inspired overlay indicator that surfaces earnings-per-share and revenue data directly on your chart — with YoY growth, QoQ momentum, analyst surprises, and forward estimates.
Built on IBD/MarketSmith methodology. Pulls data directly from TradingView's financial APIs with intelligent fallback logic.
Switch between a compact Weekly Table (up to 8 quarters in a column) and a wide HeadBand Table (4 quarters side-by-side, MarketSurge-style).
Toggle between Year-over-Year and Quarter-over-Quarter percentage changes for both EPS and Sales. Color-coded positive/negative with ±999% cap.
Beat or miss vs. consensus estimates shown as a separate %Surp column for both EPS and Sales, with independent color controls.
Next quarter's EPS and Sales estimates displayed at the top of the table, labeled est, so you always see what the market expects.
Triangle markers placed at each earnings release bar, annotated with EPS % change (and optionally Sales %). Configurable size, color, and YoY/QoQ mode.
When growth is calculated against a prior negative EPS, the result is prefixed with # — matching IBD's convention for turnaround situations.
Optional extra rows for Gross Margin and Return on Equity, giving a fuller picture of profitability quality alongside the headline numbers.
One-click presets that replicate the exact color schemes of both platforms. Or fully customize every color, border, and background independently.
Every setting, what it controls, and its default value. Click a group to expand.
| Parameter | Type | Default | Description |
|---|---|---|---|
Displays Arrows |
bool | true | Show/hide the triangle markers at each earnings bar on the chart. |
Digits Only |
bool | false | When enabled, shows only the percentage text without the triangle shape. |
Arrow QoQ |
bool | false | Switch arrow annotation from YoY to QoQ percentage change. |
Sales |
bool | false | Append the Sales % change to the arrow label (e.g. +22% | +15%). |
Arrow Size |
string | "Small" | Size of the arrow label. Options: Tiny, Small, Normal, Large. |
Arrow Colors |
color | Transparent | Color of the triangle shape itself (separate from the text color). |
%Pos |
color | Blue | Text color for positive EPS/Sales % change on arrows. |
%Neg |
color | Red | Text color for negative EPS/Sales % change on arrows. |
Choose the layout that fits your workflow. Switch instantly via the Type of Table setting.
The default layout. Displays up to 8 quarters (or 5 with "Less Quarters") stacked vertically, with the most recent quarter at the top. Ideal for weekly charts where you want a compact, always-visible summary.
Triangle markers placed directly on the chart at each earnings release, annotated with the key growth metrics.
The indicator requests three EPS series from TradingView: actual (reported), standardized (adjusted), and estimate. When actual is unavailable, standardized is used as fallback — matching MarketSmith's approach.
Earnings events are detected by monitoring when any of the three EPS series changes value. Using ta.barssince() with a compound condition reduces false negatives when consecutive quarters report identical EPS.
TradingView sometimes returns stale REVENUE_ONE_YEAR_GROWTH values. The indicator detects this by comparing consecutive growth values and recalculates from raw revenue figures when a mismatch is found.
When EPS growth is calculated against a prior negative EPS, the result is mathematically valid but directionally misleading. The # prefix flags these cases, following IBD convention. Toggle Remove # to hide it.
Sales are displayed in millions by default. When revenue exceeds $10 billion, the indicator automatically switches to billions and updates the column header from Sales($Mil) to Sales($Bil).
A sameSales flag detects when TradingView returns the same sales figure as the prior quarter (a known API bug). Affected cells are blanked to avoid displaying stale data.
The full indicator source. Licensed under the Mozilla Public License 2.0.