Pith. sign in

REVIEW 3 major objections 5 minor 35 references

Achieving Privacy Utility Balance for Multivariate Time Series Data

T0 review · 3 major / 5 minor · reviewed 2026-08-12 · deepseek-v4-flash

Pith's one-line read The paper claims that a certain class of matrix all-pass filters preserves all second-order structure of a multivariate time series, and that maximizing a multivariate incremental-privacy criterion over that class attains the best…

desk verdict The multivariate all-pass filter algebra is a genuine extension and the cepstral parameterization is clean, but the privacy claim only protects one time point at a time: anyone who knows the filter can reconstruct the full released series. read the letter →

arxiv 2411.17035 v1 pith:FHAWA52Z submitted 2024-11-26 stat.ME cs.CR

classification stat.MEcs.CR MSC 62M1062M1568P27
keywords multivariatetimeseriesprivacyall-passfilterlinearincrementalspectralfactorizationcepstralrepresentationprivacy-utilitytrade-offcross-correlationpreservationpositivedefinitedensityestimation
verification ladder T0 review T1 audit T2 compute T3 formal

The pith

A machine-rendered reading of the paper's core claim, the machinery that carries it, and where it could break.

The reading

The paper proposes a formal privacy mechanism for multivariate time series that does not destroy the data's dependence structure. It extends the univariate FLIP method to vector-valued series, where filters are matrices and multiplication does not commute. The central claim is that, for a target series with known positive definite spectral density $S$, the filter class $\{\Psi(z)=S_{+}(\lambda)U(z)S_{+}(\lambda)^{-1} : U(z)=\exp(\sum_k \Omega_k z^k),\ \Omega_k \text{ skew-symmetric}\}$ contains non-identity filters satisfying $\Psi S \Psi^* = S$, so the filtered series has exactly the same autocovariances and cross-covariances as the original. Selecting $U$ to maximize the m-LIP measure (14) is claimed to give the best privacy achievable at that level of utility. If this is right, a data agency could release privatized multivariate series whose second-order properties, including cross-series dependence, remain usable for downstream analysis.

What carries the argument

The central object is the spectral-density-relative all-pass filter, $\Psi(z)=S_{+}(\lambda)U(z)S_{+}(\lambda)^{-1}$, named $S$-MAP (S-multivariate all-pass), together with the cepstral parameterization $U(z)=\exp(\sum_{k=-r}^{r}\Omega_k z^k)$ with $\Omega_{-k}=-\Omega_k'$ and $\Omega_0$ skew-symmetric. The square-root conjugation is what makes the filter preserve $S$ exactly, while the unitary cepstral factor supplies a finite-dimensional smooth parameter space for optimization. The m-LIP criterion (14) turns privacy into a scalar in $[0,1]$, and the numerical optimization over the free entries of the cepstral matrices selects the filter that maximizes it.

What would settle it

Simulate a bivariate VAR(1), compute the m-LIP value from (14), and separately compute the conditional variance of $X_t$ given the entire released trajectory $\{Y_s\}$; if the full-trajectory disclosure can remain large while m-LIP approaches one, the claimed privacy-utility balance is not established. A simpler check: if the filter is treated as public, applying its inverse to a released realization recovers $X$ exactly.

Watch

Extended reading notes

Core claim

Given a spectral density $S$ assumed positive definite, an $S$-MAP filter has the form $\Psi(z)=S_{+}(\lambda)U(z)S_{+}(\lambda)^{-1}$, where $S_{+}$ is a spectral square root of $S$ and $U$ is unitary. Because $\Psi$ is a conjugate-similarity of a unitary matrix at each frequency, the relation $\Psi(z)S(\lambda)\Psi(z)^*=S(\lambda)$ holds, so the output process has the same spectral density, equivalently the same autocovariance function, as the input. Universal all-pass filters beyond the identity do not exist in the matrix case, so the class is indexed by the target spectral density rather than being filter-only. Privacy is scored by the multivariate Linear Incremental Privacy measure $\mathrm{m-LIP}(\Psi,S_{X|Z})=1-\det\big(\langle S_{X|Z},\Psi\rangle\langle\Psi S_{X|Z},\Psi\rangle^{-1}\langle\Psi,S_{X|Z}\rangle\big)/\det\langle S_{X|Z}\rangle$, which records how much a single filtered observation $Y_t$ adds to an attacker's ability to predict $X_t$ given auxiliary information $Z$. The paper's claim is that maximizing this criterion over a finite cepstral truncation of the filter class, using an estimated spectral density, yields the optimal privacy-utility balance: privacy values close to one and realized utility close to one in the simulations and in the QWI employment data.

Load-bearing premise

The load-bearing premise is that measuring privacy one released time point at a time, conditional on auxiliary information, captures the real disclosure risk of releasing the whole filtered series, even though the filter is invertible and an attacker with the full series and the filter could undo it.

Editorial extensions

If this is right

  • If the central claim is correct, agencies can release multivariate series whose autocovariances $\Gamma(h)$ and cross-covariances at every lag match the original, so second-order analyses on the released data agree with analyses on the original.
  • The released series preserves cross-series dependence information, a feature that univariate privacy mechanisms cannot provide.
  • The curator can tune the privacy-utility trade-off through the cepstral truncation order $r$, with more parameters giving more flexibility at greater computational cost.
  • In finite samples the guarantee becomes approximate because the spectral density must be estimated, and the paper measures that loss with the normalized Frobenius discrepancy, with the loss shrinking as the sample size grows.

Reading between the lines

Editorial extensions of the paper, not claims the author makes directly.

  • The m-LIP value is an incremental privacy score for a single contemporaneous observation $Y_t$; it is not by itself a bound on disclosure from the entire released trajectory $\{Y_t\}$, so a full-trajectory attack is the natural stress test for the method.
  • Every filter in the proposed class is invertible at each frequency, so an attacker who knows the filter and has the full released series can undo the transformation; the paper leaves filter secrecy unspecified, and the practical guarantee depends on that choice.
  • A single-stage trend-invariant version of the MAP filter, which the authors flag as future work, would remove the detrending error that the current two-stage implementation inherits.
Share X Bluesky LinkedIn Reddit HN

Editorial analysis

A structured set of objections, weighed in public.

Desk editor's note, referee report, and a circularity audit.

Referee Report

3 major / 5 minor

Summary. The paper proposes a privacy-preserving method for multivariate time series based on multivariate all-pass (MAP) filtering. The authors extend the univariate FLIP method to the multivariate setting by constructing a class of S-MAP filters parameterized through spectral factorization and matrix cepstral representations. They define a multivariate linear incremental privacy (m-LIP) measure and choose the filter to maximize this measure while preserving second-order utility (autocovariance and cross-covariance structure). The method is illustrated on simulated VAR, VARMA, and ARCH-type processes and on U.S. Census Bureau QWI employment data. The mathematical construction of the S-MAP filters and the derivations of the spectral-domain formulas are coherent and technically solid as far as they go.

Significance. The paper addresses a genuine gap: existing privacy mechanisms for multivariate time series generally preserve marginal properties but not cross-series dependence, and no formal privacy-utility framework for such data appears to be available. The S-MAP filter class and the use of spectral factorization are novel and could be useful building blocks. However, the central contribution is a privacy guarantee, and that guarantee is not established by the m-LIP measure as defined. The paper's numerical results demonstrate that the method preserves second-order utility and that the m-LIP values can be high, but they do not demonstrate privacy against an adversary who observes the entire released series. If the privacy definition were corrected or the threat model specified, the method might have value, but as it stands the main claim is unsupported.

major comments (3)
  1. [Section 3.2, Definition 3 (Eq. (10))] The m-LIP measure conditions on the single contemporaneous vector Y_t only, not on the entire released process {Y_t}. This is explicit in the paper: 'we focus on the sensitivity of X_t given the new information Y_t over the available information {Z_t}.' However, the mechanism releases the whole filtered series {Y_t} (Section 4.5), and an attacker observing the batch release would have all of {Y_t}. Conditioning on Y_t alone does not bound the incremental information contained in the full released series: an attacker can form predictions of X_t from all Y_s, not just Y_t. The paper gives no argument that Var[X_t | Y_t, Z] bounds Var[X_t | {Y_s}, Z], and in fact the inequality does not hold in general.
  2. [Section 2.2, Eq. (5)] Every filter in the proposed class F_S is invertible at every frequency, since Ψ(z) = S^+(λ)U(z)S^+(λ)^{-1} with U(z) unitary. Consequently, an adversary who knows the filter and observes the full released series {Y_t} can recover the original sensitive series {X_t} essentially exactly by applying the inverse filter. The manuscript never states whether the filter is intended to be kept secret, and it does not analyze the secrecy of the filter or the information about the filter that the released data themselves may leak. Thus the privacy values reported in Section 5 (e.g., m-LIP near 0.99 in Table 1) do not quantify the disclosure risk of the actual data product, which is the entire filtered series. This undermines the abstract's claim of achieving a 'privacy utility balance.'
  3. [Section 5, Tables 1 and 2] The empirical evaluation reports m-LIP values and utility measures, but no attack-based evaluation against an adversary who observes the whole released series and either knows the filter or attempts to estimate it. Given the invertibility of the filters, a natural evaluation would be to apply the inverse filter to the released series and measure the discrepancy between the recovered series and the original. The absence of such an evaluation is not a mere presentation issue; it reflects the fact that the privacy measure used to guide and justify the method does not match the batch-release threat model.
minor comments (5)
  1. [Section 2.2, Eq. (5)] The notation in (5), 'Ω_k ∈ S_n' for all k, is inconsistent with the earlier development, which states Ω_k = -Ω'_{-k} and that only Ω_0 is skew-symmetric; the condition should be stated as Ω_0 ∈ S_n and Ω_{-k} = -Ω'_k for k > 0.
  2. [Section 4.5] The sentence 'use this same spectral density to generate optimum one-sided h− ahead forecasts for h − 0, 1, . . . , M' contains typographical errors; it should refer to h = 0, 1, ..., M.
  3. [Figure 7] The caption states 'The y-axis is employment count (in units of 10^5)', but the axis labels range from 2.8 to 3.6, which are consistent with units of 10^5. The parenthetical is therefore redundant, and the figure would be clearer if the axis label indicated 'Employment count (×10^5)'.
  4. [Table 2] The column header 'error' in Table 2 is unexplained; it should be labeled 'VAR(1) with ARCH(1) error' or similar for consistency with the text.
  5. [References] Reference [5] is incomplete, lacking a journal name and volume/page information. Reference [7] is cited as 'accessed in 2022 and 2023' but the text says data were retrieved on January 28, 2024; the access date should be consistent.

Circularity Check

0 steps flagged · score 2.0 of 10

No significant circularity; the S-MAP class and m-LIP are derived from stated assumptions, with the main caveat being a threat-model mismatch rather than a circular reduction.

full rationale

The derivation chain is self-contained up to standard linear time-series facts. Definition 2 and the class FS in (5) follow from the identity SX = S+ S+* combined with Result 1: for any S-MAP filter, (Psi S+)(Psi S+)* = S+ S+*, so Psi = S+ U S+^{-1} with U unitary; the cepstral condition Omega_k = -Omega'_{-k} is proved in the text, not merely imported. The m-LIP measure (10) is defined through the conditional variance decomposition of Proposition 1, whose proof is given via Brillinger's predictor formula; the optimization (14) minimizes exactly the complement of m-LIP. Thus the table of privacy values reports the in-sample value of the optimized objective, not a fitted quantity presented as an independent prediction. The paper does rely on the authors' own FLIP paper [21] for motivation and the name LIP, and on [14] for the cepstral parameterization, but neither citation carries a load-bearing claim that is not re-derived or standard: [21] is not a uniqueness theorem, and the unitary parameterization is derived in Section 2.2. The main weakness is a threat-model/scope gap, not circularity: m-LIP conditions on the single contemporaneous Y_t, while the released product is the full process, and since each Psi(z) in (5) is nonsingular the full series plus known filter would reveal X_t; but the paper never makes a circular equation to reach its stated m-LIP numbers. Self-citation is present but not load-bearing, so the score is a low 2 rather than 0.

Assumptions & free parameters 3 free parameters · 5 assumptions · 0 invented entities

No new physical entities, particles, forces, or dimensions are introduced. The m-LIP measure and S-MAP filter class are mathematical constructs defined from stated assumptions, not observable entities with independent falsifiable handles.

free parameters (3)
  • Cepstral coefficients ϑ (elements of Ω_0, Ω_1, ..., Ω_r) = Not reported; optimized per simulation and application
    These free parameters define the unitary rotation U(z) in the S-MAP filter class (13). The optimal filter is selected by minimizing (14), so the achieved privacy values depend on this optimization.
  • Truncation order r = r = 0, 1, or partial r = 1 in simulations; chosen by data curator
    r controls the number of cepstral lags and therefore the dimension of the filter class. Results in Tables 1 and 2 vary with r, and the paper says r is chosen by the data curator.
  • Eigenvalue truncation epsilon_T in flat-top spectral estimator = 1/T
    Chosen in Section 4.1 to force positive definiteness of the spectral density estimate. It affects the estimated spectral density and hence the realized utility and the resulting filter.
assumptions (5)
  • domain assumption The spectral density matrix S(λ) is positive definite for all λ (Assumption PD, Section 2.2).
    Required to define the square root S+ and the S-MAP class in (4)-(5). Violated by cointegrated series or components with zero spectral energy at some frequency.
  • domain assumption The sensitive, released, and auxiliary series are jointly weakly stationary with known spectral density S_X,Z (Section 3, equation (7)).
    The m-LIP formulas and the optimization in (12) assume this. In applications the density is estimated, introducing error that is acknowledged in Section 4.6.
  • domain assumption The adversary's optimal attack is a linear predictor based on the known spectral density (Proposition 1 and Definition 3).
    m-LIP is defined via linear conditional expectation updates. Nonlinear attacks are not bounded by the measure, and the paper does not warn about this limitation.
  • standard math Bauer's spectral factorization and Brillinger's linear prediction theorem are correct as used (Sections 4.2 and proof of Proposition 1).
    The paper cites [5] and [6] for these tools and does not prove them.
  • ad hoc to paper The AGMsDR optimizer with random initialization finds a parameter vector that approximately maximizes m-LIP (Section 4.4).
    The objective is non-convex and no global optimality guarantee is given. The reported near-maximal privacy values depend on this practical assumption.

how reviews work

0 comments
Cite this review

Pith. "Pith review of Achieving Privacy Utility Balance for Multivariate Time Series Data." pith.science (2026). https://pith.science/paper/FHAWA52Z

@misc{pith2026241117035,
  author       = {Pith},
  title        = {Pith review of: Achieving Privacy Utility Balance for Multivariate Time Series Data},
  year         = {2026},
  howpublished = {\url{https://pith.science/paper/FHAWA52Z}},
  note         = {Machine review of arXiv:2411.17035}
}
read the original abstract

Utility-preserving data privatization is of utmost importance for data-producing agencies. The popular noise-addition privacy mechanism distorts autocorrelation patterns in time series data, thereby marring utility; in response, McElroy et al. (2023) introduced all-pass filtering (FLIP) as a utility-preserving time series data privatization method. Adapting this concept to multivariate data is more complex, and in this paper we propose a multivariate all-pass (MAP) filtering method, employing an optimization algorithm to achieve the best balance between data utility and privacy protection. To test the effectiveness of our approach, we apply MAP filtering to both simulated and real data, sourced from the U.S. Census Bureau's Quarterly Workforce Indicator (QWI) dataset.

Figures

Figures reproduced from arXiv: 2411.17035 by the authors.

Figure 1
Figure 1. Comparison of sample autocorrelation function (ACF) and the cross-correlation function (CCF) of the [PITH_FULL_IMAGE:figures/full_fig_p011_1.png] view at source ↗
Figure 2
Figure 2. Histograms of m-LIP values for VAR(1) (left) and VARMA(1,1) (right), r = 0 case. VAR(1) VARMA(1,1) VAR(1),ARCH(1) error Parameters Min. Privacy Max. Privacy Time (avg) Min. Privacy Max. Privacy Time (avg) Min. Privacy Max. Privacy Time (avg) 1 0.692 0.998 22.7 0.695 0.85 91.54 0.652 0.894 82.75 2 0.786 0.9989 48.9 0.895 0.9991 89.391 0.7973 1 122.431 5 0.996 1 339.76 0.9921 1 432.567 0.9254 1 323.698 [PITH_FULL_IMA… view at source ↗
Figure 3
Figure 3. Comparison of sample autocorrelation and the cross-correlation functions of the original and the filtered [PITH_FULL_IMAGE:figures/full_fig_p013_3.png] view at source ↗
Figures from the paper (4 more)
Figure 4
Figure 4. Figure 4: Comparison of sample autocorrelation and the cross-correlation functions of the original and the filtered [PITH_FULL_IMAGE:figures/full_fig_p014_4.png]
Figure 5
Figure 5. Figure 5: QWI employment count for Maryland counties. [PITH_FULL_IMAGE:figures/full_fig_p014_5.png]
Figure 6
Figure 6. Figure 6: Comparison of sample autocorrelation and the cross-correlation functions of the original and the filtered [PITH_FULL_IMAGE:figures/full_fig_p015_6.png]
Figure 7
Figure 7. Figure 7: Comparison of standardized sample paths of the original and the filtered copies for the Baltimore (top panel) [PITH_FULL_IMAGE:figures/full_fig_p015_7.png]

Discussion (0). Continue with ORCID to comment.

Reference graph

Works this paper leans on

35 extracted references · 35 canonical work pages

  1. [1]

    J. M. Abowd, K. Gittings, K. L. McKinney, B. E. Stephens, L. Vilhuber, and S. Woodcock. Dynami- cally consistent noise infusion and partially synthetic data as confidentiality protection measures for related time series. US Census Bureau Center for Economic Studies Paper No. CES-WP-12-13, Available at SSRN: https://ssrn.com/abstract=2159800 or http://dx.d...

  2. [2]

    J. M. Abowd and L. Vilhuber. National estimates of gross employment and job flows from the quarterly workforce indicators with demographic and industry detail. Journal of econometrics, 161(1):82–99, 2011

  3. [3]

    The 2020 census disclosure avoidance system topdown algorithm

    John M Abowd, Robert Ashmead, Ryan Cumings-Menon, Simson Garfinkel, Micah Heineck, Christine Heiss, Robert Johns, Daniel Kifer, Philip Leclerc, Ashwin Machanavajjhala, et al. The 2020 census disclosure avoidance system topdown algorithm. Harvard Data Science Review, (Special Issue 2), 2022

  4. [4]

    H. H. Arcolezi, J-F. Couchot, D. Renaud, B. Al Bouna, and X. Xiao. Differentially private multivariate time series forecasting of aggregated human mobility with deep learning: Input or gradient perturbation? Neural Computing and Applications, 34:13355–13369, 2022

  5. [5]

    F. Bauer. Ein direktes iterationsverfahren zur hurwitz-zerlegung eines polynoms. Archiv der elektrischen ¨Ubertragung, 2017

  6. [6]

    D. R. Brillinger. Time Series: Data Analysis and Theory - David R. Brillinger. Siam, 2001

  7. [7]

    Census Bureau

    U.S. Census Bureau. Quarterly Workforce Indicator. https://qwiexplorer.ces.census.gov, 2023. [On- line; accessed in 2022 and 2023]

  8. [8]

    C. Dwork. Differential privacy. International Colloquium on Automata, Languages and Programming, part II (ICALP), 2006

Show all 35 references
  1. [9]

    Dwork, F

    C. Dwork, F. McSherry, K. Nissim, and A. Smith. Calibrating noise to sensitivity in private data analysis.Theory of Cryptography Conference(TCC), pages 265–284, 2006

  2. [10]

    Dwork and A

    C. Dwork and A. Roth. The algorithmic foundations of differential privacy. Foundations and Trends in Theoret- ical Computer Science, 9:211–407, 2014

  3. [11]

    M. A. Erdogdu, N. Fawaz, and A. Montanari. Privacy-utility tradeoff for time-series with application to smart- meter data. Association for the Advancement of Artificial Intelligence, 2015. 16 Achieving Privacy Utility Balance for Multivariate Time Series Data

  4. [12]

    Fioretto and P

    F. Fioretto and P. V . Hentenryck. Optstream: Releasing time series privately. Journal of Artificial Intelligence Research, 2019

  5. [13]

    Congenial differential privacy under mandated disclosure

    Ruobin Gong and Xiao-Li Meng. Congenial differential privacy under mandated disclosure. FODS ’20, page 59–70, New York, NY , USA, 2020. Association for Computing Machinery

  6. [14]

    Holan, T

    S. Holan, T. S. McElroy, and G. Wu. The cepstral model for multivariate time series: The vector exponential model. Statistica Sinica, pages 23–42, 2017

  7. [15]

    S.K. Hong, K. Gurjar, H.S. Kim, and Y .S. Moon. A survey on privacy preserving time-series data mining. International Conference on Intelligent Computational Systems (ICICS), 2013

  8. [16]

    Privacy preserving time-series forecasting of user health data streams

    Sana Imtiaz, Sonia-Florina Horchidan, Zainab Abbas, Muhammad Arsalan, Hassan Nazeer Chaudhry, and Vladimir Vlassov. Privacy preserving time-series forecasting of user health data streams. In 2020 IEEE In- ternational Conference on Big Data (Big Data), pages 3428–3437, 2020

  9. [17]

    Katsomallos, K

    M. Katsomallos, K. Tzompanaki, and D. Kotzinos. Landmark privacy: Configurable differential privacy protec- tion for time series. Conference on Data and Application Security and Privacy (CODASPY), 2022

  10. [18]

    F. L. Lako, P. Lajoie-Mazenc, and M. Laurent. Privacy-preserving publication of time-series data in smart grid. Security and Communication Networks, 2021

  11. [19]

    Privacy-preserving publication of time-series data in smart grid

    Franklin Leukam, Paul Lajoie-Mazenc, and Maryline Laurent. Privacy-preserving publication of time-series data in smart grid. Security and Communication Networks, 2021:1–21, 2021

  12. [20]

    L. Lyu, Y . W. Law, J. Jin, and M. Palaniswami. Privacy-preserving aggregation of smart metering via transfor- mation and encryption. IEEE Trustcom/BigDataSE/ICESS, pp. 472–479, IEEE, Sydney, Australia, 2017

  13. [21]

    McElroy, A

    T. McElroy, A. Roy, and G. Hore. Flip: A utility preserving privacy mechanism for time series. Journal of Machine Learning Research, 2023

  14. [22]

    T. S. McElroy. Recursive computation for block-nested covariance matrices. Journal of Time Series Analysis , 2017

  15. [23]

    T. S. McElroy and D. N. Politis. Time Series: A First Course with Bootstrap Starter. CRC Press, 2020

  16. [24]

    S McElroy and A

    T. S McElroy and A. Roy. Model identification via total frobenius norm of multivariate spectra. Journal of the Royal Statistical Society Series B: Statistical Methodology, 84(2):473–495, 2022

  17. [25]

    Nesterov, A

    Y . Nesterov, A. Gasnikov, S. Guminov, and P. Dvurechensky. Primal–dual accelerated gradient methods with small-dimensional relaxation oracle. Optimization Methods and Software, 36:773–810, 2021

  18. [26]

    R. A. Davis P. J. Brockwell. Introduction to Time Series and Forecasting. Springer

  19. [27]

    D. N. Politis. Higher-order accurate, positive semi-definite estimation of large-sample covariance and spectral density matrices. Econometric Theory, 2011

  20. [28]

    Rastogi and S

    V . Rastogi and S. Nath. Differentially private aggregation of distributed time-series with transformation and encryption. International Conference on Management of Data, ACM SIGMOD, pages 735–746, 2010

  21. [29]

    Y . Sang, H. Shen, and H. Tian. Privacy-preserving tuple matching in distributed databases. IEEE Transactions on Knowledge and Data Engineering, 21(12), page 1767–1782, 2009

  22. [30]

    Shi, T-H

    E. Shi, T-H. H. Chan, and E. Rieffel. Privacy-preserving aggregation of time-series data. In Proc. of the Network and Distributed System Security Symposium, San Diego, California, 2011

  23. [31]

    Song and K

    S. Song and K. Chaudhuri. Composition properties of inferential privacy for time-series data. arXiv:1707.02702, 2017

  24. [32]

    S. Song, Y . Wang, and K. Chaudhuri. Pufferfish privacy mechanisms for correlated data. arXiv:1603.03977, 2017

  25. [33]

    C. Stach. Vault: A privacy approach towards high-utility time series data. International Conference on Emerging Security Information, Systems and Technologies, pp. 41–46, 2019

  26. [34]

    L Wasserman and S. Zhou. A statistical framework for differential privacy. Journal of the American Statistical Association, 105:375–389, 2009

  27. [35]

    G. ´Acs, C. Castelluccia, and R. Chen. Differentially private histogram publishing through lossy compression. IEEE International Conference on Data Mining, 2012. 17

Pith tools

Reviewed August 12, 2026 · model on record in the stance chip above.