Arte SheetsLearn. Try. Understand.

Market Microstructure & Quant Finance

Hasbrouck Information Share Bounds for Two-Venue Price Discovery

Calculate Hasbrouck (1995) Cholesky upper, lower, and midpoint price-discovery information shares across two cointegrated trading venues and audit correlation sensitivity.

Understand why correlated venue innovations require upper and lower Cholesky bounds

When the same equity or futures contract trades on two cointegrated venues, Hasbrouck (1995) measures each venue’s share of efficient random-walk variance var_rw = (psi1*sig1)^2 + 2*rho*psi1*psi2*sig1*sig2 + (psi2*sig2)^2. Whenever reduced-form innovations correlate contemporaneously (rho <> 0), ordering Venue 1 first in a Cholesky factorization attributes shared covariance to Venue 1 (Upper Bound), while ordering Venue 1 second strips it out via (1 - rho^2) (Lower Bound).

Verify by hand with permanent impact weights psi1 = 0.70 (B2), psi2 = 0.30 (B3), innovation SDs sig1 = 0.10 (B4), sig2 = 0.10 (B5), and correlation rho = 0.60 (B6): psi1*sig1 = 0.07, psi2*sig2 = 0.03, and var_rw = 0.0049 + 0.00252 + 0.0009 = 0.00832. Venue 1’s Upper Bound is (0.07 + 0.03*0.60)^2 / 0.00832 = 0.007744 / 0.00832 = 0.9308, while its Lower Bound is 0.0049*(1 - 0.36) / 0.00832 = 0.3769, yielding midpoint IS = 0.6538.

Hasbrouck MetricFormula ExpressionSample Output (rho = 0.60)
Random-Walk Variance var_rw(psi1*sig1)^2 + 2*rho*psi1*psi2*sig1*sig2 + (psi2*sig2)^20.00832
Venue 1 Upper Bound (First)(psi1*sig1 + rho*psi2*sig2)^2 / var_rw0.9308 (93.08%)
Venue 1 Lower Bound (Second)(psi1*sig1)^2 * (1 - rho^2) / var_rw0.3769 (37.69%)
Midpoint Information Share0.5 * (IS1_upper + IS1_lower)0.6538 (65.38%)

Hasbrouck Midpoint Information Share Formula

Guard |rho| >= 1 or non-positive random-walk variance before computing the Cholesky bounds.

=LET(p_1, B2, p_2, B3, s_1, B4, s_2, B5, rho_v, B6, a_1, p_1 * s_1, a_2, p_2 * s_2, var_rw, a_1^2 + 2 * rho_v * a_1 * a_2 + a_2^2, IF(OR(ABS(rho_v) >= 1, s_1 <= 0, s_2 <= 0, var_rw <= 0), "Degenerate Covariance", LET(is_up, (a_1 + rho_v * a_2)^2 / var_rw, is_lo, (a_1^2 * (1 - rho_v^2)) / var_rw, ROUND(0.5 * (is_up + is_lo), 4))))

Bound-Width Diagnostic & Zero-Correlation Convergence Check

Track the Cholesky ambiguity spread IS1_upper - IS1_lower. When timestamp resolution eliminates contemporaneous correlation (set B6 = 0), upper and lower bounds collapse identically to 0.0049 / 0.0058 = 0.8448 with bound width = 0.

=LET(a_1, B2 * B4, a_2, B3 * B5, rho_v, B6, var_rw, a_1^2 + 2 * rho_v * a_1 * a_2 + a_2^2, ROUND(((a_1 + rho_v * a_2)^2 - a_1^2 * (1 - rho_v^2)) / var_rw, 4))

Try the example

Use the original values or change them to test your understanding.

Further reading