Financials / Cash Flow Statement / Operating
StkOptCF(offset, type[, NAHandling])
Full Description

Stock-based compensation represents employee compensation paid through equity instruments (stock options, restricted stock units, etc.) rather than cash. This creates a unique accounting situation where expenses are recognized without corresponding cash outflows. The accounting rules require companies to:

  1. Record an expense on the income statement (StkOptExp) - showing the economic cost
  2. Add it back on the cash flow statement (StkOptCF) - because no cash was actually spent

StkOptExp

StkOptExp is the expense companies record for employee stock compensation like stock options and restricted stock. This cost appears on the income statement as an operating expense that reduces earnings. The expense reflects the fair value of stock awards given to employees, spread out over the time period when employees earn the right to use them (the vesting period).

Key Characteristics:

  • Appears primarily within SG&A (Selling, General & Administrative) or R&D in the income statement, and reduces operating income and net income
  • Non-cash expense representing the fair value of equity awards
  • Recognized over the vesting period using fair value at grant date
  • Directly impacts reported earnings and EPS

StkOptCF

StkOptCF is the stock-based compensation adjustment that appears in the operating activities section of the cash flow statement. This function addresses the accounting treatment of stock-based compensation, which is a non-cash expense that reduces net income on the income statement but must be added back when calculating cash flow from operations.

Key Characteristics:

  • Appears in operating activities section of cash flow statement
  • Added back to net income when calculating cash from operations
  • Reconciles the non-cash expense from the income statement
  • No actual cash leaves the company for this expense

Key Differences

Aspect StkOptExp StkOptCF
Financial Statement Income Statement Cash Flow Statement
Impact Reduces net income Increases operating cash flow
Purpose Shows economic cost to shareholders Adjusts for non-cash charge
Direction Expense (negative) Add-back (positive)

Practical Applications

Financial Analysis Uses

  • Profitability Analysis: Use StkOptExp to understand true operating costs including dilution
  • Cash Flow Analysis: Use StkOptCF to calculate actual cash generation
  • Valuation Models: Both factors needed for accurate DCF and earnings adjustments
  • Peer Comparison: Compare compensation structures and their financial impacts

Common Analytical Adjustments

  • Adjusted EBITDA: Often adds back StkOptExp to show earnings before this non-cash charge
  • Free Cash Flow: StkOptCF ensures FCF reflects actual cash available
  • Non-GAAP Earnings: Companies may exclude StkOptExp from adjusted earnings metrics
  • Return on Capital: Consider whether to include StkOptExp in operating income calculations

Important Relationships

Expected Relationship

  • Over time, StkOptCF and StkOptExp should converge, but may differ in any given period due to grant timing, forfeitures, or classification nuances
  • Both represent the same economic transaction from different perspectives
  • Analysts often expect alignment, but timing mismatches can confuse without understanding these potential differences

Potential Differences

  • Timing: Recognition differences between statements
  • Classification: Expenses may be allocated differently
  • Tax Effects: Tax benefits may create variations
  • Forfeitures: Changes in forfeiture estimates affect amounts

 

Line Item Functions and Derived Factors

The data points come from SEC filings or company earnings announcements. Because our data provider standardizes financial information to make it comparable across different companies, the specific figures may not always match the original source. For a list of all our line items please refer to our Line-Item Reference Spreadsheet. 

Access Methods

There are two access methods: prebuilt factors and using a function.

Function

ItemName(offset, type[, NAHandling])

offset: 0-24 (for interim) 0-19 (for annual)
type: QTR (for interim), ANN (for annual), TTM (for trailing twelve months)
NAHandling: [FALLBACK], KEEPNA, ZERONA

For types QTR & ANN the value is taken straight out of the filing with the corresponding offset, ex: 0 is most recent, 1 is previous, etc. TTM types are computed in two ways: for income and cash flow statement values are calculated by adding four quarterly values. For balance sheet items, TTM is the average of the trailing four quarters.

Example

To screen for stocks whose trailing 12 months revenue is higher than the previous 12 months enter: Sales(0,TTM) > Sales(4,TTM) The above can also be done using prebuilt ratios: SalesTTM < SalesPTM

NA Handling

The NAHandling parameter is optional and is used to control what happens in preliminary reports where many items could be missing. Preliminary reports are press releases by the company and only affect the most recent ("0") offset period. They can last several weeks and can cause false signals due to incomplete data (see "CompleteStmt" for a way to identify companies with preliminary data).

Three options are available when an NA is found in a preliminary report: 

FALLBACK

The default setting. When an NA is encountered the value is pulled from the offset "1" period.

KEEPNA

NAs will be preserved, which can cause the entire expression to fail.

ZERONA

NAs are converted to 0

Pre-built factors

Below are the available pre-built factors for convenience with the corresponding formula parameters. Please note that availability varies by factor.

Period Description Corresponding Parameters

Q

Recent Quarter

(0, QTR)

PQ Prior Quarter (1, QTR)
PYQ Prior Year quarter (4, QTR)
TTM Trailing Twelve Months (0, TTM)
PTM Prior Trailing Twelve Months (4, TTM)
A Recent Annual (0, ANN)
PY Prior Year (1, ANN)
Gr%PQ Growth % PQ (0, QTR) / (1, QTR)
Gr%PYQ Growth % PYQ (0, QTR) / (4, QTR)
Gr%TTM Growth % TTM (0, TTM) / (4, TTM)
Gr%PQTTM Growth % TTM 1Q Ago (0, TTM) / (1, TTM)
Gr%A Growth % Annual (0, ANN) / (1, ANN)
Gr%3Y Growth % 3 year (0, ANN) / (3, ANN) annualized
Gr%5Y Growth % 5 year (0, ANN) / (5, ANN) annualized
Gr%10Y Growth % 10 year (0, ANN) / (10, ANN) annualized
RSD%ANN RSD % 10Y of annuals LoopRelStdDev ("function(CTR,ANN)",10,0,1,1))
RSD%TTM RSD % 5Y of TTM LoopRelStdDev ("function(CTR*2,TTM)",10,0,1,1))
RegEstTTM Regression Est 5Y Eval(LinReg("function(CTR * 2, TTM)", 10) , EstimateY(0), NA)
RegGr%TTM Regression Gr% 5Y Eval(LinReg("function(CTR * 2, TTM)", 10) , RegGr%(2), NA)
RegEstANN Regression Est 10Y Eval(LinReg("function(CTR, ANN)", 10) , EstimateY(0), NA)
RegGr%ANN Regression Gr% 10Y Eval(LinReg("function(CTR, ANN)", 10) , RegGr%(1), NA)
Period Description Corresponding Parameters
%SalesQ % of Q Sales function(0, QTR) / Sales(0, QRT)
%SalesA % of A Sales function(0, ANN) / Sales(0, ANN)
%AssetQ % of Q Assets function(0, QTR) / AstTot(0, QRT)
%AssetA % of A Assets function(0, ANN) / AstTot(0, ANN)
PSQ Per Share Q function(0, QTR) / Shares(0, QRT)
PSA Per Share A function(0, ANN) / Shares(0, ANN)
3YAvg 3 Year Average LoopAvg("function(CTR, ANN)", 3)
5YAvg 5 Year Average LoopAvg("function(CTR, ANN)", 5)

NOTES: 

  • Availability varies by factor.
  • PTM uses interim periods, so the offset is 4, not 1.

Click here for the Line-Item Reference Spreadsheet.