VolModel
Create free accountUpgrade
Account

CompaniesAAOIApplied OptoelectronicsWatch

AAOI earnings: an expected move of 19.1%, an actual move of 15.3%.Averages over its last twelve reports. Here are all 17 reports.

Every Applied Optoelectronics earnings report since Nov 2022: the expected move the options priced the day before, how far the stock moved by the close and by 10:00 the next morning, and the IV crush afterwards, how far implied volatility fell. We read option prices from real quotes at 15:46 ET. Definitions on the methodology page.

Expected move19.1%the day before each of the last twelve reports
Actual move15.3%to the next close over the last twelve · 12.8% by 10:00
Past the price3of 12closes further than the options priced
On record17reportsevery report since Nov 2022
Median IV crush−35%over the last twelve reports · 15:46 ET
Next report—no date on the calendar yet

AAOI · the Nov 5 ’26 report, split and ranked

The options price an earnings move as one number. We take out the drift the stock would have had anyway, then rank what is left, the report’s own part, against AAOI’s earlier reports. Both were fixed at 15:46 ET the day before, and the history below does the same for every report.

1 · Split

The whole 16.6% is the report

quoted16.6%the report17.4%ordinarynone0%5%10%15%20%

The options expired the session after the report, so the quote has no ordinary days in it and there is nothing to take out. Our estimate of the report’s part, read from nine expiries, agrees within its range: 17.4%, between 16.1 and 18.6. On a longer expiry this step splits the quote in two.

§3 Splitting the move

2 · Rank

Higher than four of its last twelve

cheaprichNov 5 ’26 · 17.4%lowest of the thirteenhighest

We rank only the report’s part, and only against AAOI’s own earlier reports, so a jumpy stock does not read rich for being jumpy. 17.4% is the 33rd percentile: neither rich nor cheap for AAOI.

§5 Richness

3 · What happened

Moved 6.9%, inside the 17.4%

priced ±17.4%close +6.9% · 10:00 +7.1%−25%0+25%

+6.9% by the next close, +7.1% by 10:00 the next morning. The rank compares the price with AAOI’s past and does not forecast the move.

§1 Timing and samples

ReportNov 5 ’26Compared withtwelve earlier reportsRank33rd percentile · neutralHow the rank works 

AAOI · what the last twelve reports show

The charts read oldest to newest, left to right.priced moveclosed inside itclosed past itfall in implied volatility
Inside or past

Inside its priced move after nine of twelve

Feb ’24: priced 20.8%, moved −30.5%May ’24: priced 20.6%, moved −3.0%Aug ’24: priced 19.5%, moved −5.8%Nov ’24: priced 22.8%, moved +55.1%Feb ’25: priced 28.4%, moved −4.6%May ’25: priced 19.3%, moved −0.6%Aug ’25: priced 17.5%, moved −3.3%Nov ’25: priced 14.6%, moved −1.8%Feb ’26: priced 16.8%, moved +56.9%May ’26: priced 16.6%, moved −5.5%Aug ’26: priced 15.6%, moved +9.2%Nov ’26: priced 17.4%, moved +6.9%Feb ’24Nov ’26

Past it: Feb 2024 −30.5%, Nov 2024 +55.1% and Feb 2026 +56.9%.

Columns C2C, Priced in the table below

The biggest

+56.9% after the Feb 2026 report

priced16.8%moved, to the next close56.9%Feb ’26

The options had priced 16.8%. The largest on record is +67.1%, in Aug 2023, before these twelve.

Columns C2C, Priced in the table below

Implied volatility

Fell after every one, by 28% to 51%

Feb ’24: −44%May ’24: −51%Aug ’24: −35%Nov ’24: −39%Feb ’25: −33%May ’25: −44%Aug ’25: −47%Nov ’25: −35%Feb ’26: −31%May ’26: −28%Aug ’26: −31%Nov ’26: −28%median −35%Feb ’24Nov ’26

Median fall 35%, at the strike nearest the price, day before to day after.

Columns Crush · ATM in the table below

The priced move

Shrunk: 16.6% over the last four

Feb ’24: priced 20.8%May ’24: priced 20.6%Aug ’24: priced 19.5%Nov ’24: priced 22.8%Feb ’25: priced 28.4%May ’25: priced 19.3%Aug ’25: priced 17.5%Nov ’25: priced 14.6%Feb ’26: priced 16.8%May ’26: priced 16.6%Aug ’26: priced 15.6%Nov ’26: priced 17.4%20.4%16.6%eight beforelast four

From 20.4% over the eight before. The report’s own part of the move, with the ordinary drift taken out.

Columns Priced in the table below

Reportsthe last twelve, settledWrittenfrom the numbers on this pageHow each one is measured 

AAOI · earnings history: expected move vs actual move, all 17

CSV ↓
Columns shown on a phone
Every AAOI earnings report: expected move, actual move and IV crush
Report Report’s partPricedRank RealizedC2C By 10:00 Priced · realized · ±25% CrushATM As-sold Open ForecastPred. Error
Nov 5 ’26AMC ±17.4% 33 +6.9% +7.1% −28% −26% — −37% +9pt
Aug 6 ’26AMC ±15.6% cheap8 +9.2% +15.1% −31% −30% −23% −28% −3pt
May 7 ’26AMC ±16.6% cheap9 −5.5% +6.5% −28% −26% −20% −30% +2pt
Feb 26 ’26AMC ±16.8% cheap10 +56.9% +32.0% −31% — −19% −38% +8pt
Nov 6 ’25AMC ±14.6% cheap0 −1.8% −1.0% −35% −34% — −33% −2pt
Aug 7 ’25AMC ±17.5% cheap0 −3.3% −0.5% −47% −47% −39% −44% −4pt
May 8 ’25AMC ±19.3% — −0.6% −9.0% −44% −44% −34% −42% −2pt
Feb 26 ’25AMC ±28.4% — −4.6% −10.4% −33% −33% −28% −29% −4pt
Nov 7 ’24AMC ±22.8% — +55.1% +26.5% −39% — −45% −51% +12pt
Aug 6 ’24AMC ±19.5% — −5.8% +7.9% −35% −38% −27% −39% +4pt
May 9 ’24AMC ±20.6% — −3.0% +2.2% −51% −53% −37% −49% −3pt
Feb 22 ’24AMC ±20.8% — −30.5% −35.8% −44% — −30% −45% +1pt
Nov 9 ’23AMC ±18.9% — −4.1% −10.1% −47% −50% −45% −42% −5pt
Aug 3 ’23AMC ±20.2% — +67.1% +40.5% −5% 0% 3% — —
May 4 ’23AMC — — −10.7% −11.3% — — — — —
Feb 23 ’23AMC — — −14.1% — −17% −17% — — —
Nov 3 ’22AMC — — −14.4% — −11% — — — —
All · 17 ±19.2% avg 6 ranked 18.2% avg abs 14.6% avg abs −34% median −34% median −29% median −39% median 4.5pt avg abs
What the columns mean6 groups · 10 columns
Report’s part
The report’s share of what options priced at 15:46 ET the day before, taken from two or more expiries.
ColumnsPriced
Rank
Where the report’s part sits among AAOI’s own earlier reports, up to twelve, from 0 to 100: 33 on Nov 5 ’26 means it was priced higher than 4 of the 12 before it. Rich and cheap mark the top and bottom of that range. It needs eight earlier reports with a 10:00 move, so the oldest rows have none.
ColumnsRank
Realized
C2C is the move to the next close; By 10:00, the move to 10:00 the next morning.
ColumnsC2CBy 10:00
Chart
The grey band is what the options priced, the dark mark where the stock closed, the bar where it stood at 10:00, on a ±25% scale.
ColumnsPriced · realized · ±25%
Crush
How far implied volatility fell in the report’s expiry, from 15:46 ET the day before to the day after: at the new strike ATM and at the old one As-sold. Open reads it from the option’s 10:00 quotes the next morning, and is blank where there was none.
ColumnsATMAs-soldOpen
Forecast
Pred. is the crush we published the day before, graded on the public record. Error is what happened minus the forecast, in points of the crush.
ColumnsPred.Error
The stock closed past the priced move on 4 of 14 and was past it at 10:00 the next morning on 4 of 14. The 12 forecasts up to Aug 2026 were rebuilt from history rather than published the day before, and all are graded on the public record. A dash is a number we do not have, not a zero.
Reports17Open crush12 of 17Measured15:46 ET · day before → day afterEvery company’s full history is public 

how these numbers are measured

A day's price path that ends near where it started: a short graphite bracket for the move from close to close, beside a much taller oxblood one for how far it swung in betweento the closein between
Two ways to measure the move

Closing prices miss the open

If you hold through the report you meet the open, not the close. We publish both: the move from one close to the next, and where the stock stood at 10:00 the next morning.

AAOI Nov 2024: +55.1% by the close, +26.5% at 10:00.

§1 Timing and samples

One beam enters a prism and two leave, one oxblood and one slatethe reportordinary
The report’s own share of it

Option prices cover more than the report

An expiry a week out also carries a week of ordinary movement. Comparing two expiries that both contain the report separates the two, and the report's share is the priced move.

AAOI Nov 2026: 16.6% from the options → 17.4% for the report.

§3 Splitting the move

Five expiries on a line; an oxblood beam strikes only the first, while a faint bracket spans all fivethe one that movedwhat 30 days average
The collapse in volatility

We measure the expiry that moved

A 30-day average mixes the expiry holding the report with expiries it never reaches, so it reads shallower than what you held. We read the expiry that holds the report, the day before and the day after, at both strikes.

AAOI Nov 2026: −28% new strike, −26% old strike.

§4 The collapse, three ways

AAOI · IV crush at the report’s expiry vs the 30-day average

One expiry contains the report. The 30-day figure is an average that also covers expiries the report never reaches. Every column below leans the same way, so the gap shows on each report, not only in the median.

Collapse at the report’s expiry−35%median, whole column
Seen by the 30-day number−19%median, the part it sees
Missed by the 30-day number16pton 15 of 15 reports
Nov 5 ’26Aug 6 ’26May 7 ’26Feb 26 ’26Nov 6 ’25Aug 7 ’25May 8 ’25Feb 26 ’25Nov 7 ’24Aug 6 ’24May 9 ’24Feb 22 ’24Nov 9 ’23Aug 3 ’23Nov 3 ’22

AAOI · the expected move, where it closed, where it stood at 10:00

Each row is one report: the band is what the options priced, the mark is where the stock closed, and the bar runs to where it stood at 10:00 the next morning. On 3 of 14 reports with both, the close and 10:00 pointed opposite ways.

Where the 10:00 number is missing, the cell stays blank instead of borrowing the close, and the data-quality grid below says why. How far apart the two run differs from company to company; this window measures it for AAOI.

Median move to the next close5.7%past the price on 4 of 14
Median move by 10:00 the next morning9.6%past the price on 4 of 14
Nov 5 ’26+6.9+7.1
Aug 6 ’26+9.2+15.1
May 7 ’26−5.5+6.5
Feb 26 ’26+56.9+32.0
Nov 6 ’25−1.8−1.0
Aug 7 ’25−3.3−0.5
May 8 ’25−0.6−9.0
Feb 26 ’25−4.6−10.4
Nov 7 ’24+55.1+26.5
Aug 6 ’24−5.8+7.9
May 9 ’24−3.0+2.2
Feb 22 ’24−30.5−35.8
Nov 9 ’23−4.1−10.1
Aug 3 ’23+67.1+40.5
−25−12.50+12.5+25

AAOI · the term structure the day before each report

The split reads the report out of the gap between the two lines. The small figure under each date is how many trading sessions the expiry holding the report had left. A shorter one carries the same report over fewer days, so it reads higher without the report being priced any bigger.

Drawn for the last twelve reports, like the other figures on this page. It is history; the current curve is on the board.

the expiry holding the reportthe next expirythe gap the split readsimplied vol, %

AAOI · data quality, report by report

Counted over the 17 reports shown. A marker on one quarter says little about the company, and one on most of them says a lot, so the count is what tells them apart.

Every marker on the reports above is counted here, one cell per report, newest first as in the history table.

Nov 5
’26
Aug 6
’26
May 7
’26
Feb 26
’26
Nov 6
’25
Aug 7
’25
May 8
’25
Feb 26
’25
Nov 7
’24
Aug 6
’24
May 9
’24
Feb 22
’24
Nov 9
’23
Aug 3
’23
May 4
’23
Feb 23
’23
Nov 3
’22
reports
WithheldThe cell is blank on the marked reports.
no prediction4 of 17
no trade at the cover4 of 17
no decomposition2 of 17
no 10:00 tape2 of 17
decomposition failed1 of 17
no T+1 chain1 of 17
Shown, kept off the board’s sortPublished, but it does not rank this name on the board.
thin trade at the cover4 of 17
derived numbers unreliable3 of 17
wide decomposition band2 of 17
wide straddle quote2 of 17
Shown as measuredNotes on how a number was measured. Each says what it touches.
macro event in the window15 of 17
held to expiry12 of 17
crush expiry substituted12 of 17
next-morning price from quotes6 of 17
skew contamination5 of 17
no re-struck cover IV5 of 17
noisy IV rank4 of 17
gapped past the wings4 of 17
an anchor was refused2 of 17
cover mark above spot1 of 17
T+1 tape not released yet1 of 17
path incomplete1 of 17
What each marker means22 markers · 6 withhold a number

Withheld

no prediction4 of 17crush_pred_unavailable
No predicted crush could be frozen for this print, so it has no entry in the scored accuracy record. Never filled in afterwards — a prediction written after the outcome is not one.
Lands inPred.Error
no trade at the cover4 of 17open_crush_no_trade
The option legs did not trade at the 10:00 cover anchor, so the crush there could not be measured. It comes from the tape, not an outage, so it is permanent and counts in the published coverage ratio.
Lands inOpen
no decomposition2 of 17decomp_unavailable
There were not enough usable expiries, or not enough distinct ones, to separate the report's move from ordinary volatility, so its split is blank.
Lands inPriced move
no 10:00 tape2 of 17rm_intra_unavailable
The equity minute bars behind the 10:00 anchor do not exist for this session, so the anchor is blank and stays blank. It is never substituted from the opening price: a history with two different anchors mixed together is worse than a shorter one.
Lands inBy 10:00Open
decomposition failed1 of 17decomp_failed
The maths that splits implied volatility into the report's own part and the ordinary part had no valid answer for this name, so its split is not published.
Lands inPriced move
no T+1 chain1 of 17post_unavailable
The option chain on the session after the print has no contracts near the money within 75 days, on a date long since published. No crush exists to measure. A property of the data, not an outage.
Lands inEvery crush column

Shown, kept off the board’s sort

thin trade at the cover4 of 17open_crush_thin_trade
Too few prints stand behind the 10:00 anchor for it to be a reliable price. The crush is shown and kept out of the rankings.
Lands inOpen
derived numbers unreliable3 of 17derived_unreliable
Quotes on this name were too wide — or a 25Δ wing was missing — for the derived numbers on this row to be trusted: implied move, decomposition, crush and skew. Shown, kept off the board’s sort, and marked ≈ where its rank is shown.
Lands inThe derived columns
wide decomposition band2 of 17decomp_low_confidence
The decomposed implied move has a wide confidence band on this row. The number is published and kept off the board’s sort, because a sort cannot express an error bar; where its rank is shown, it is marked ≈.
Lands inPriced move
wide straddle quote2 of 17wide_quote
The T−1 straddle’s bid-ask spread was wide relative to its own price, so every number read off that quote inherits the width. Published on purpose — the friction is real — but kept off the board’s sort, and marked ≈ where its rank is shown.
Lands inImplied (naive)Short-straddle P&Lon the ticker page, not this one

Shown as measured

macro event in the window15 of 17decomp_macro_window
A scheduled macro event (a CPI print, an FOMC day) falls inside the decomposition window, so a little of the volatility attributed to the event belongs to the calendar instead.
Lands inPriced move
held to expiry12 of 17cover_mark_settled
The straddle that was sold expired at one of these closes, so its price there is its settlement value: the distance from the stock to the strike. That exit pays no bid/ask spread, and it ignores the cost of being assigned stock on the in-the-money leg.
Lands inShort-straddle P&Lon the ticker page, not this one
crush expiry substituted12 of 17crush_expiry_substituted
The expiry that would have been measured was not available on both sides of the print, so a neighbouring one stood in. The crush is real; it is measured on a slightly different contract than the label implies.
Lands inATM
next-morning price from quotes6 of 17open_crush_restruck_quoted
The option at the 10:00 strike did not trade on both sides between 09:55 and 10:05, so the next-morning volatility was read from the midpoint of its quoted bid and ask over the same ten minutes. Used only when both sides were quoted and the quote was less than 50% wide.
Lands inOpen
skew contamination5 of 17crush_skew_contaminated
The gap between the strike sold and where the stock ended up is large enough that the as-sold crush cannot stand in for the comparable one, so this print carries no scored open crush.
Lands inAccuracy recordon the public record, not this one
no re-struck cover IV5 of 17open_crush_restruck_unavailable
The comparable at-the-money volatility could not be read at the 10:00 anchor, so only the as-sold contract is available there.
Lands inOpen
noisy IV rank4 of 17iv_rank_noisy
This name’s quote width is large against its own 52-week volatility range, so the rank carries a read error worth noting. A true property of a quiet name, not a defect — the rank itself is computed normally.
Lands inIV rankon the ticker page, not this one
gapped past the wings4 of 17open_crush_gap_otm
The stock gapped far enough that the contract sold at T−1 is no longer near the money at the cover, so the as-sold crush there is partly a move along the smile rather than a collapse in volatility.
Lands inOpen
an anchor was refused2 of 17open_crush_anchor_unreliable
At least one observation behind the 10:00 crush was rejected: a price below intrinsic, a crossed quote, or a solve that did not converge. The number here was measured from the anchors that did invert, and is scored normally.
Lands inOpen
cover mark above spot1 of 17cover_mark_above_spot
A stored buy-back price exceeds the whole stock — the straddle marked above 100% of the price it is written on, which no real move in this history produces. It affects the worst-case P&L figures and nothing else.
Lands inShort-straddle P&Lon the ticker page, not this one
T+1 tape not released yet1 of 17open_crush_embargoed
The option tape for the session after this print had not been released when we settled it, so the cover anchors were never requested. Temporary and self-resolving on the next visit.
Lands inOpen
path incomplete1 of 17path_incomplete
The T+2 or T+3 leg of the post-print path is missing, so the multi-day drift columns stop short of where a held position would.
Lands inT+2T+3on the ticker page, not this one

AAOI · companies whose reports traded alike

Each company’s last twelve reports.average priced movemoved less than pricedmoved moremedian fall in implied volatilityAAOI’s values

Six companies whose reports traded like AAOI’s

The closest on all three numbers at the top of each company page. It compares how the reports traded, not the businesses.

12%15%15%20%20%AEHRALABAMBAAMSCAPLDAPPASANASTSBILLBMBLCHPTCRDOCRNCCRWVCVNADAVEDLODOCNDOCSDUOLELFEOSEESTCFIGFIVNFLNCFROGGCTGLBEGTMHELEHLFHTZIOTKSSKVYOLOVELRNLYFTLZMDBMNDYNVAXODDOUSTPATHPENGPGYPINSPLAYPSFEPTONPUBMQBTSQDELRBLXRBRKRDDTRELYRHSEDGSFIXSGSMCISNAPSPTSYMTDCTMDXTNDMTRUPUUNFIUPSTUPWKDBILMNDAAOIWOLFBYNDNTSKENVXaverage priced move →average move made →all 728
Where they sit. A close-up of AAOI’s part of the field; the small map in its corner shows where that sits among all 728 companies with a page and all three numbers. Grey dots are other companies here. Below the dashed line, a stock moved less than its options priced.
Figureseach company’s last twelve reportsCompared onpriced, moved, crush

the board · the last fortnight, then the next 14 days

PricedRichness · own historyRatioOutcome
  1. Reported · the fortnight to 5 Nov · settled, free
  2. 1COPConocoPhillipsNov 5BMO3.4%1001.79inside
  3. 2EOGEOG ResourcesNov 5AMC4.2%1001.58inside
  4. 3GEOGeo GroupNov 5BMO9.8%1001.31inside
  5. 4GHGuardant HealthNov 5AMC19.1%1002.10inside
  6. 5KTOSKratos Defense & Security SolutionsNov 5AMC11.9%1001.59inside
  7. Next 14 days · 523 names · symbol and date free
  8. ·AAONMon 9AMC—
  9. ·ABCLMon 9AMC—
  10. ·ACHRMon 9AMC—
  11. ·AIOTMon 9BMO—
  12. 11 of 523 shown · the next 14 days

    The ranked columns are the board

    Symbol and date are free for all 523 names. A subscription fills in the three columns held back on every locked row: the priced move, its richness against that name's own last twelve reports, and the ratio between them.

    $29/mo or $290/yr Get the board two months free on the year
    $29/mo or $290/yr Get the board two months free on the year

    A free account adds today’s board rows and the full 14-day calendar, without these three columns.

    Today's board rows and the full forward calendar are on your board.

  13. ·ALTGMon 9AMC—
  14. ·AMCXMon 9AMC—
  15. ·AMGMon 9BMO—
  16. ·AMPYMon 9AMC—
  17. ·AMRCMon 9AMC—
  18. ·ANNXMon 9BMO—
  19. ·APEIMon 9AMC—
The board: the last fortnight’s settled reports, then the next 14 days
#NameReportPriced moveRichness · own historyRatioOutcome
Reported · the fortnight to 5 Nov · settled, free
1COPConocoPhillipsNov 5BMO3.4%1001.79inside
2EOGEOG ResourcesNov 5AMC4.2%1001.58inside
3GEOGeo GroupNov 5BMO9.8%1001.31inside
4GHGuardant HealthNov 5AMC19.1%1002.10inside
5KTOSKratos Defense & Security SolutionsNov 5AMC11.9%1001.59inside
Next 14 days · 523 names · symbol and date free
·AAONMon 9AMC—
·ABCLMon 9AMC—
·ACHRMon 9AMC—
·AIOTMon 9BMO—
12 of 523 shown · the next 14 days

The ranked columns are the board

Symbol and date are free for all 523 names. A subscription fills in the three columns held back on every locked row: the priced move, its richness against that name's own last twelve reports, and the ratio between them.

$29/mo or $290/yr Get the board two months free on the year
$29/mo or $290/yr Get the board two months free on the year

A free account adds today’s board rows and the full 14-day calendar, without these three columns.

Today's board rows and the full forward calendar are on your board.

·ALTGMon 9AMC—
·AMCXMon 9AMC—
·AMGMon 9BMO—
·AMPYMon 9AMC—
·AMRCMon 9AMC—
·ANNXMon 9BMO—
·APEIMon 9AMC—
·APPSMon 9AMC—
on the board — not known yet Ranked by richness against each name's own last twelve reports. Ratio is the priced move over that name’s typical actual move; inside: the stock stayed within the priced move.

How to read this page

History table
Its columns are explained right under it: What the columns mean ↑
Coverage
AAOI’s 17 reports. The board rows are the fortnight’s five richest settled reports, then the first of the next 523 names.
Ratio
The priced move over the name’s typical actual move.
Markers
Notes on a report’s data, counted in the data-quality grid with what each one touches.

A number looks wrong? Tell us what you expected and we’ll check it.Report a data issue

History is a record, not a forecast. Derived values only; no option prices are shown. Nothing here is investment advice.