PerformanceAnalytics: Econometric tools for performance and risk analysis

Collection of econometric functions for performance and risk analysis. This package aims to aid practitioners and researchers in utilizing the latest research in analysis of non-normal return streams. In general, it is most tested on return (rather than price) data on a regular scale, but most functions will work with irregular return data as well, and increasing numbers of functions will work with P&L or price data where possible.

Install the latest version of this package by entering the following in R:
AuthorBrian G. Peterson [cre, aut, cph], Peter Carl [aut, cph], Kris Boudt [ctb, cph], Ross Bennett [ctb], Joshua Ulrich [ctb], Eric Zivot [ctb], Matthieu Lestel [ctb], Kyle Balkissoon [ctb], Diethelm Wuertz [ctb]
Date of publication2014-09-16 09:47:58
MaintainerBrian G. Peterson <>
LicenseGPL-2 | GPL-3

View on CRAN

Man pages

ActivePremium: Active Premium or Active Return

AdjustedSharpeRatio: Adjusted Sharpe ratio of the return distribution

apply.fromstart: calculate a function over an expanding window always starting...

apply.rolling: calculate a function over a rolling window

AppraisalRatio: Appraisal ratio of the return distribution

AverageDrawdown: Calculates the average depth of the observed drawdowns.

AverageLength: Calculates the average length (in periods) of the observed...

AverageRecovery: Calculates the average length (in periods) of the observed...

BernardoLedoitRatio: Bernardo and Ledoit ratio of the return distribution

BetaCoMoments: Functions to calculate systematic or beta co-moments of...

BurkeRatio: Burke ratio of the return distribution

CalmarRatio: calculate a Calmar or Sterling reward/risk ratio

CAPM.alpha: calculate single factor model (CAPM) alpha

CAPM.beta: calculate single factor model (CAPM) beta

CAPM.dynamic: Time-varying conditional single factor model beta

CAPM.epsilon: Regression epsilon of the return distribution

CAPM.jensenAlpha: Jensen's alpha of the return distribution

CAPM.RiskPremium: utility functions for single factor (CAPM) CML, SML, and...

CDD: Calculate Uryasev's proposed Conditional Drawdown at Risk...

centeredmoments: calculate centered Returns

chart.ACF: Create ACF chart or ACF with PACF two-panel chart

chart.Bar: wrapper for barchart of returns

chart.BarVaR: Periodic returns in a bar chart with risk metric overlay

chart.Boxplot: box whiskers plot wrapper

chart.CaptureRatios: Chart of Capture Ratios against a benchmark

chart.Correlation: correlation matrix chart

chart.CumReturns: Cumulates and graphs a set of periodic returns

chart.Drawdown: Time series chart of drawdowns through time

chart.ECDF: Create an ECDF overlaid with a Normal CDF

chart.Events: Plots a time series with event dates aligned

chart.Histogram: histogram of returns

chart.QQPlot: Plot a QQ chart

chart.Regression: Takes a set of returns and relates them to a market benchmark...

chart.RelativePerformance: relative performance chart between multiple return series

chart.RiskReturnScatter: scatter chart of returns vs risk for comparing multiple...

chart.RollingCorrelation: chart rolling correlation fo multiple assets

chart.RollingMean: chart the rolling mean return

chart.RollingPerformance: wrapper to create a chart of rolling performance metrics in a...

chart.RollingRegression: A wrapper to create charts of relative regression performance...

chart.Scatter: wrapper to draw scatter plot with sensible defaults

chart.SnailTrail: chart risk versus return over rolling time periods

charts.PerformanceSummary: Create combined wealth index, period performance, and...

charts.RollingPerformance: rolling performance chart

chart.StackedBar: create a stacked bar plot

chart.TimeSeries: Creates a time series chart with some extensions.

chart.VaRSensitivity: show the sensitivity of Value-at-Risk or Expected Shortfall...

checkData: check input data type and format and coerce to the desired...

clean.boudt: clean extreme observations in a time series to to provide...

CoMoments: Functions for calculating comoments of financial time series

DownsideDeviation: downside risk (deviation, variance) of the return...

DownsideFrequency: downside frequency of the return distribution

DRatio: d ratio of the return distribution

DrawdownDeviation: Calculates a standard deviation-type statistic using...

DrawdownPeak: Drawdawn peak of the return distribution

edhec: EDHEC-Risk Hedge Fund Style Indices

ES: calculates Expected Shortfall(ES) (or Conditional...

FamaBeta: Fama beta of the return distribution

findDrawdowns: Find the drawdowns and drawdown levels in a timeseries.

Frequency: Frequency of the return distribution

HurstIndex: calculate the Hurst Index The Hurst index can be used to...

InformationRatio: InformationRatio = ActivePremium/TrackingError

Kappa: Kappa of the return distribution

KellyRatio: calculate Kelly criterion ratio (leverage or bet size) for a...

kurtosis: Kurtosis

legend: internal functions for setting useful defaults for graphs

lpm: calculate a lower partial moment for a time series

M2Sortino: M squared for Sortino of the return distribution

managers: Hypothetical Alternative Asset Manager and Benchmark Data

MarketTiming: Market timing models

MartinRatio: Martin ratio of the return distribution

maxDrawdown: caclulate the maximum drawdown from peak equity

MeanAbsoluteDeviation: Mean absolute deviation of the return distribution

mean.geometric: calculate attributes relative to the mean of the observation...

Modigliani: Modigliani-Modigliani measure

MSquared: M squared of the return distribution

MSquaredExcess: M squared excess of the return distribution

NetSelectivity: Net selectivity of the return distribution

Omega: calculate Omega for a return series

OmegaExcessReturn: Omega excess return of the return distribution

OmegaSharpeRatio: Omega-Sharpe ratio of the return distribution

PainIndex: Pain index of the return distribution

PainRatio: Pain ratio of the return distribution

PerformanceAnalytics-package: Econometric tools for performance and risk analysis.

portfolio_bacon: Bacon(2008) Data

prices: Selected Price Series Example Data

ProspectRatio: Prospect ratio of the return distribution

Return.annualized: calculate an annualized return for comparing instruments with...

Return.annualized.excess: calculates an annualized excess return for comparing...

Return.calculate: calculate simple or compound returns from prices

Return.clean: clean returns in a time series to to provide more robust risk...

Return.cumulative: calculate a compounded (geometric) cumulative return

Return.excess: Calculates the returns of an asset in excess of the given...

Return.Geltner: calculate Geltner liquidity-adjusted return series

Return.portfolio: Calculate weighted returns for a portfolio of assets Read returns data with different date formats

Return.relative: calculate the relative return of one asset to another

Selectivity: Selectivity of the return distribution

SharpeRatio: calculate a traditional or modified Sharpe Ratio of Return...

SharpeRatio.annualized: calculate annualized Sharpe Ratio

skewness: Skewness

SkewnessKurtosisRatio: Skewness-Kurtosis ratio of the return distribution

SmoothingIndex: calculate Normalized Getmansky Smoothing Index

sortDrawdowns: order list of drawdowns from worst to best

SortinoRatio: calculate Sortino Ratio of performance over downside risk

SpecificRisk: Specific risk of the return distribution

StdDev: calculates Standard Deviation for univariate and multivariate...

StdDev.annualized: calculate a multiperiod or annualized Standard Deviation

SystematicRisk: Systematic risk of the return distribution

table.AnnualizedReturns: Annualized Returns Summary: Statistics and Stylized Facts

table.Arbitrary: wrapper function for combining arbitrary function list into a...

table.Autocorrelation: table for calculating the first six autocorrelation...

table.CalendarReturns: Monthly and Calendar year Return table

table.CAPM: Single Factor Asset-Pricing Model Summary: Statistics and...

table.CaptureRatios: Calculate and display a table of capture ratio and related...

table.Correlation: calculate correlalations of multicolumn data

table.Distributions: Distributions Summary: Statistics and Stylized Facts

table.DownsideRisk: Downside Risk Summary: Statistics and Stylized Facts

table.DownsideRiskRatio: Downside Summary: Statistics and ratios

table.Drawdowns: Worst Drawdowns Summary: Statistics and Stylized Facts

table.DrawdownsRatio: Drawdowns Summary: Statistics and ratios

table.HigherMoments: Higher Moments Summary: Statistics and Stylized Facts

table.InformationRatio: Information ratio Summary: Statistics and Stylized Facts

table.MonthlyReturns: Returns Summary: Statistics and Stylized Facts

table.ProbOutPerformance: Outperformance Report of Asset vs Benchmark

table.RollingPeriods: Rolling Periods Summary: Statistics and Stylized Facts

table.SpecificRisk: Specific risk Summary: Statistics and Stylized Facts

table.Variability: Variability Summary: Statistics and Stylized Facts

textplot: Display text information in a graphics plot.

TotalRisk: Total risk of the return distribution

TrackingError: Calculate Tracking Error of returns against a benchmark

TreynorRatio: calculate Treynor Ratio or modified Treynor Ratio of excess...

UlcerIndex: calculate the Ulcer Index

UpDownRatios: calculate metrics on up and down markets for the benchmark...

UpsideFrequency: upside frequency of the return distribution

UpsidePotentialRatio: calculate Upside Potential Ratio of upside performance over...

UpsideRisk: upside risk, variance and potential of the return...

VaR: calculate various Value at Risk (VaR) measures

VolatilitySkewness: Volatility and variability of the return distribution

weights: Selected Portfolio Weights Data

zerofill: zerofill


ActivePremium Man page
ActiveReturn Man page
AdjustedSharpeRatio Man page
allsymbols Man page
apply.fromstart Man page
apply.rolling Man page
AppraisalRatio Man page
AverageDrawdown Man page
AverageLength Man page
AverageRecovery Man page
BernardoLedoitRatio Man page
BetaCoKurtosis Man page
BetaCoMoments Man page
BetaCoSkewness Man page
BetaCoVariance Man page
bluefocus Man page
bluemono Man page
bond.dates Man page
bond.labels Man page
BurkeRatio Man page
CalculateReturns Man page
CalmarRatio Man page
CAPM.alpha Man page
CAPM.beta Man page
CAPM.beta.bear Man page
CAPM.beta.bull Man page
CAPM.CML Man page
CAPM.CML.slope Man page
CAPM.dynamic Man page
CAPM.epsilon Man page
CAPM.jensenAlpha Man page
CAPM.RiskPremium Man page
CAPM.SML.slope Man page
CAPM.utils Man page
CDaR Man page
CDD Man page
centeredcomoment Man page
centeredmoment Man page
chart.ACF Man page
chart.ACFplus Man page
chart.Bar Man page
chart.BarVaR Man page
chart.Boxplot Man page
chart.CaptureRatios Man page
chart.Correlation Man page
chart.CumReturns Man page
chart.Drawdown Man page
chart.ECDF Man page
chart.Events Man page
chart.Histogram Man page
chart.QQPlot Man page
chart.Regression Man page
chart.RelativePerformance Man page
chart.RiskReturnScatter Man page
chart.RollingCorrelation Man page
chart.RollingMean Man page
chart.RollingPerformance Man page
chart.RollingQuantileRegression Man page
chart.RollingRegression Man page
charts.Bar Man page
charts.BarVaR Man page
chart.Scatter Man page
chart.SnailTrail Man page
charts.PerformanceSummary Man page
charts.RollingPerformance Man page
charts.RollingRegression Man page
chart.StackedBar Man page
charts.TimeSeries Man page
chart.TimeSeries Man page
chart.VaRSensitivity Man page
checkData Man page
clean.boudt Man page
closedsymbols Man page
CoKurtosis Man page
CoKurtosisMatrix Man page
CoMoments Man page
CoSkewness Man page
CoSkewnessMatrix Man page
CoVariance Man page
CVaR Man page
cycles.dates Man page
dark6equal Man page
dark8equal Man page
DownsideDeviation Man page
DownsideFrequency Man page
DownsidePotential Man page
DRatio Man page
DrawdownDeviation Man page
DrawdownPeak Man page
Drawdowns Man page
edhec Man page
equity.dates Man page
equity.labels Man page
ES Man page
ETL Man page
FamaBeta Man page
fillsymbols Man page
findDrawdowns Man page
Frequency Man page
greenfocus Man page
greenmono Man page
grey6mono Man page
grey8mono Man page
HurstIndex Man page
InformationRatio Man page
Kappa Man page
KellyRatio Man page
kurtosis Man page
legend Man page
linesymbols Man page
lpm Man page
M2Sortino Man page
M3.MM Man page
M4.MM Man page
macro.dates Man page
macro.labels Man page
managers Man page
MarketTiming Man page
MartinRatio Man page
maxDrawdown Man page
MeanAbsoluteDeviation Man page
mean.geometric Man page
mean.LCL Man page
mean.stderr Man page
mean.UCL Man page
mean.utils Man page
Modigliani Man page
MSquared Man page
MSquaredExcess Man page
NetSelectivity Man page
Omega Man page
OmegaExcessReturn Man page
OmegaExessReturn Man page
OmegaSharpeRatio Man page
opensymbols Man page
PainIndex Man page
PainRatio Man page
PerformanceAnalytics Man page
PerformanceAnalytics.internal Man page
PerformanceAnalytics-package Man page
portfolio_bacon Man page
prices Man page
ProspectRatio Man page
rainbow10equal Man page
rainbow12equal Man page
rainbow6equal Man page
rainbow8equal Man page
redfocus Man page
redmono Man page
replaceTabs Man page
replaceTabs.inner Man page
Return.annualized Man page
Return.annualized.excess Man page
Return.calculate Man page
Return.centered Man page
Return.clean Man page
Return.cumulative Man page
Return.excess Man page
Return.Geltner Man page
Return.portfolio Man page Man page
Return.rebalancing Man page
Return.relative Man page
rich10equal Man page
rich12equal Man page
rich6equal Man page
rich8equal Man page
risk.dates Man page
risk.labels Man page
sd.annualized Man page
sd.multiperiod Man page
Selectivity Man page
SemiDeviation Man page
SemiVariance Man page
set6equal Man page
set8equal Man page
SFM.alpha Man page
SFM.beta Man page
SFM.CML Man page
SFM.CML.slope Man page
SFM.dynamic Man page
SFM.epsilon Man page
SFM.jensenAlpha Man page
SFM.RiskPremium Man page
SFM.SML.slope Man page
SFM.utils Man page
SharpeRatio Man page
SharpeRatio.annualized Man page
SharpeRatio.modified Man page
skewness Man page
SkewnessKurtosisRatio Man page
Skewness-KurtosisRatio Man page
SmoothingIndex Man page
sortDrawdowns Man page
SortinoRatio Man page
SpecificRisk Man page
statsTable Man page
StdDev Man page
StdDev.annualized Man page
SterlingRatio Man page
SystematicRisk Man page
table.AnnualizedReturns Man page
table.Arbitrary Man page
table.Autocorrelation Man page
table.CalendarReturns Man page
table.CAPM Man page
table.CaptureRatios Man page
table.Correlation Man page
table.Distributions Man page
table.DownsideRisk Man page
table.DownsideRiskRatio Man page
table.Drawdowns Man page
table.DrawdownsRatio Man page
table.HigherMoments Man page
table.InformationRatio Man page
table.MonthlyReturns Man page
table.ProbOutPerformance Man page
table.Returns Man page
table.RollingPeriods Man page
table.SFM Man page
table.SpecificRisk Man page
table.Stats Man page
table.TrailingPeriods Man page
table.TrailingPeriodsRel Man page
table.UpDownRatios Man page
table.Variability Man page
textplot Man page
textplot.character Man page Man page
textplot.default Man page
textplot.matrix Man page
tim10equal Man page
tim12equal Man page
tim6equal Man page
tim8equal Man page
TimingRatio Man page
tol10qualitative Man page
tol11qualitative Man page
tol12qualitative Man page
tol14rainbow Man page
tol15rainbow Man page
tol18rainbow Man page
tol1qualitative Man page
tol21rainbow Man page
tol2qualitative Man page
tol3qualitative Man page
tol4qualitative Man page
tol5qualitative Man page
tol6qualitative Man page
tol7qualitative Man page
tol8qualitative Man page
tol9qualitative Man page
TotalRisk Man page
TrackingError Man page
TreynorRatio Man page
UlcerIndex Man page
UpDownRatios Man page
UPR Man page
UpsideFrequency Man page
UpsidePotentialRatio Man page
UpsideRisk Man page
VaR Man page
VaR.CornishFisher Man page
VolatilitySkewness Man page
weights Man page
zerofill Man page


inst/doc/PA-charts.R inst/doc/PA-Bacon.R
R/lpm.R R/TrackingError.R R/UpsidePotentialRatio.R R/charts.TimeSeries.R R/table.CAPM.R R/chart.Regression.R R/chart.Bar.R R/SmoothingIndex.R R/chart.Boxplot.R R/AdjustedSharpeRatio.R R/checkData.R R/UlcerIndex.R R/CAPM.beta.R R/Return.portfolio.R R/DrawdownPeak.R R/chart.Events.R R/chart.ACF.R R/table.Arbitrary.R R/UpDownRatios.R R/chart.Correlation.R R/maxDrawdown.R R/ProspectRatio.R R/CAPM.jensenAlpha.R R/Drawdowns.R R/charts.PerformanceSummary.R R/ActivePremium.R R/Return.annualized.excess.R R/DRatio.R R/CoMoments.R R/chart.CaptureRatios.R R/CAPM.dynamic.R R/BernadoLedoitratio.R R/VaR.R R/replaceTabs.R R/charts.RollingRegression.R R/SortinoRatio.R R/table.Drawdowns.R R/chart.ECDF.R R/charts.BarVaR.R R/chart.RollingMean.R R/BurkeRatio.R R/UpsideRisk.R R/MSquaredExcess.R R/table.DownsideRiskRatio.R R/legend.R R/SharpeRatio.annualized.R R/MartinRatio.R R/table.ProbOutperformance.R R/SystematicRisk.R R/table.Distributions.R R/chart.CumReturns.R R/OmegaSharpeRatio.R R/chart.Drawdown.R R/chart.RollingCorrelation.R R/Return.Geltner.R R/table.Correlation.R R/chart.RiskReturnScatter.R R/chart.BarVaR.R R/sortDrawdowns.R R/M2Sortino.R R/CAPM.utils.R R/HurstIndex.R R/na.skip.R R/PortfolioRisk.R R/chart.ACFplus.R R/Return.annualized.R R/OmegaExcessReturn.R R/chart.StackedBar.R R/CalmarRatio.R R/chart.RollingPerformance.R R/table.CaptureRatios.R R/table.MonthlyReturns.R R/SharpeRatio.R R/table.DownsideRisk.R R/chart.Scatter.R R/table.AnnualizedReturns.R R/HerfindahlIndex.R R/table.Autocorrelation.R R/TotalRisk.R R/VaR.Marginal.R R/SpecificRisk.R R/MeanAbsoluteDeviation.R R/KellyRatio.R R/DownsideDeviation.R R/charts.RollingPerformance.R R/Return.cumulative.R R/StdDev.R R/table.SpecificRisk.R R/table.DrawdownsRatio.R R/AppraisalRatio.R R/Selectivity.R R/MarketTiming.R R/skewness.R R/Omega.R R/chart.TimeSeries.R R/PainRatio.R R/InformationRatio.R R/TreynorRatio.R R/DownsideFrequency.R R/table.RollingPeriods.R R/table.UpDownRatios.R R/FamaBeta.R R/table.CalendarReturns.R R/CAPM.alpha.R R/apply.fromstart.R R/ES.R R/Frequency.R R/chart.RelativePerformance.R R/ R/table.InformationRatio.R R/PainIndex.R R/textplot.R R/chart.QQPlot.R R/table.HigherMoments.R R/Return.relative.R R/chart.Histogram.R R/Return.clean.R R/chart.RollingRegression.R R/chart.RollingQuantileRegression.R R/kurtosis.R R/SemiDeviation.R R/chart.SnailTrail.R R/mean.utils.R R/charts.Bar.R R/findDrawdowns.R R/Kappa.R R/chart.VaRSensitivity.R R/StdDev.annualized.R R/zerofill.R R/CAPM.epsilon.R R/NetSelectivity.R R/MultivariateMoments.R R/Return.calculate.R R/apply.rolling.R R/Modigliani.R R/MSquared.R R/zzz.R R/Return.excess.R R/SkewnessKurtosisRatio.R R/VolatilitySkewness.R R/UpsideFrequency.R R/table.Variability.R
man/TreynorRatio.Rd man/table.Correlation.Rd man/chart.ACF.Rd man/chart.Events.Rd man/AdjustedSharpeRatio.Rd man/table.SpecificRisk.Rd man/ActivePremium.Rd man/chart.Histogram.Rd man/TrackingError.Rd man/table.RollingPeriods.Rd man/chart.Correlation.Rd man/chart.RollingMean.Rd man/MSquared.Rd man/charts.RollingPerformance.Rd man/UpDownRatios.Rd man/CAPM.alpha.Rd man/AverageRecovery.Rd man/chart.StackedBar.Rd man/chart.ECDF.Rd man/Return.portfolio.Rd man/SmoothingIndex.Rd man/SortinoRatio.Rd man/VolatilitySkewness.Rd man/SystematicRisk.Rd man/apply.rolling.Rd man/SharpeRatio.Rd man/chart.RiskReturnScatter.Rd man/CAPM.dynamic.Rd man/legend.Rd man/TotalRisk.Rd man/table.Distributions.Rd man/DownsideFrequency.Rd man/InformationRatio.Rd man/OmegaSharpeRatio.Rd man/AverageLength.Rd man/chart.Drawdown.Rd man/chart.BarVaR.Rd man/chart.Regression.Rd man/skewness.Rd man/maxDrawdown.Rd man/table.Arbitrary.Rd man/chart.QQPlot.Rd man/ES.Rd man/chart.RollingCorrelation.Rd man/table.Autocorrelation.Rd man/Return.annualized.excess.Rd man/sortDrawdowns.Rd man/VaR.Rd man/table.HigherMoments.Rd man/portfolio_bacon.Rd man/UlcerIndex.Rd man/managers.Rd man/UpsideFrequency.Rd man/NetSelectivity.Rd man/CAPM.RiskPremium.Rd man/MSquaredExcess.Rd man/DRatio.Rd man/table.CalendarReturns.Rd man/checkData.Rd man/Return.clean.Rd man/centeredmoments.Rd man/CDD.Rd man/Return.cumulative.Rd man/ProspectRatio.Rd man/CAPM.jensenAlpha.Rd man/SkewnessKurtosisRatio.Rd man/BernardoLedoitRatio.Rd man/chart.RollingRegression.Rd man/StdDev.Rd man/edhec.Rd man/chart.RelativePerformance.Rd man/Return.calculate.Rd man/Return.Geltner.Rd man/chart.RollingPerformance.Rd man/chart.VaRSensitivity.Rd man/BurkeRatio.Rd man/table.Variability.Rd man/CAPM.beta.Rd man/DrawdownPeak.Rd man/table.ProbOutPerformance.Rd man/StdDev.annualized.Rd man/kurtosis.Rd man/PainIndex.Rd man/SpecificRisk.Rd man/lpm.Rd man/Frequency.Rd man/table.CAPM.Rd man/PainRatio.Rd man/ man/AppraisalRatio.Rd man/Kappa.Rd man/BetaCoMoments.Rd man/MeanAbsoluteDeviation.Rd man/SharpeRatio.annualized.Rd man/clean.boudt.Rd man/chart.Scatter.Rd man/mean.geometric.Rd man/chart.CaptureRatios.Rd man/Return.relative.Rd man/PerformanceAnalytics-package.Rd man/table.Drawdowns.Rd man/CalmarRatio.Rd man/table.DrawdownsRatio.Rd man/M2Sortino.Rd man/Return.excess.Rd man/table.DownsideRisk.Rd man/chart.TimeSeries.Rd man/Modigliani.Rd man/MarketTiming.Rd man/chart.CumReturns.Rd man/textplot.Rd man/zerofill.Rd man/chart.Boxplot.Rd man/FamaBeta.Rd man/table.AnnualizedReturns.Rd man/chart.Bar.Rd man/table.MonthlyReturns.Rd man/OmegaExcessReturn.Rd man/weights.Rd man/CAPM.epsilon.Rd man/KellyRatio.Rd man/apply.fromstart.Rd man/DrawdownDeviation.Rd man/AverageDrawdown.Rd man/UpsideRisk.Rd man/table.CaptureRatios.Rd man/CoMoments.Rd man/Omega.Rd man/MartinRatio.Rd man/Return.annualized.Rd man/UpsidePotentialRatio.Rd man/findDrawdowns.Rd man/prices.Rd man/table.InformationRatio.Rd man/Selectivity.Rd man/chart.SnailTrail.Rd man/DownsideDeviation.Rd man/table.DownsideRiskRatio.Rd man/HurstIndex.Rd man/charts.PerformanceSummary.Rd

Questions? Problems? Suggestions? or email at

Please suggest features or report bugs with the GitHub issue tracker.

All documentation is copyright its authors; we didn't write any of that.