Skip to main content

Hector v3.0

Hector estimates trends, periodic signals, and offsets in geodetic time series with correlated noise. It uses Restricted Maximum Likelihood Estimation (RMLE) and supports several noise models (GGM/flicker, power-law, AR(1), Matérn, white noise and combinations thereof).

Quick start

pip install hector-ts
hector-examples          # creates ./hector-examples/ with examples + manual PDF

hector-examples copies eight worked examples and the PDF user manual into a directory of your choice. Open hector_manual_v3.0.pdf first — it explains the workflow, all control-file parameters, and walks through every example step by step. The examples are self-contained: each has its own data and control files ready to run.

Installation

Windows

Pre-built wheels are available for Python 3.10–3.14. FFTW3 is bundled inside the wheel, so no separate installation is needed:

pip install hector-ts

macOS (Apple Silicon — M1 and later)

Pre-built wheels are available for Python 3.10–3.14. Install FFTW3 via Homebrew first (it is not bundled in the macOS wheel):

brew install fftw
pip install hector-ts

macOS (Intel)

Hector is compiled from source during pip install, so Xcode Command Line Tools must be present (xcode-select --install):

brew install fftw
pip install hector-ts

If the build fails, conda provides a self-contained alternative:

conda install -c conda-forge fftw
pip install hector-ts

Linux

Pre-built manylinux wheels are available for Python 3.10–3.14 on x86_64 — no FFTW3 headers needed for those platforms. For other architectures (ARM64 etc.) Hector builds from source; install the FFTW3 development package first:

# Ubuntu / Debian
sudo apt install libfftw3-dev

# CentOS / RHEL / Fedora
sudo yum install fftw-devel        # or: sudo dnf install fftw-devel

pip install hector-ts

Programs

Name Description
estimatetrend Estimate trend, seasonal signals, and offsets using RMLE
estimatespectrum Welch periodogram of the residuals
removeoutliers Flag and remove outliers before trend estimation
findoffsets Automated forward search for offset epochs
find_all_offsets Multivariate (E+N+U) offset search on NCF files
simulatenoise Generate synthetic coloured-noise time series
estimate_all_trends Batch trend estimation on all files in obs_files/
ncfgen Create a multi-channel NCF (NetCDF4) time-series file
ncfdump Inspect or export an NCF file
plot_ts Quick time-series plot from a mom file
date2mjd Convert calendar date to Modified Julian Date
mjd2date Inverse of date2mjd
convert_rlrdata2mom Convert PSMSL RLR data to mom format
predict_error Predict trend uncertainty as a function of series length

Reference

If you use Hector in your research, please cite:

Bos, M.S. (2026). Fast noise analysis and offset detection for continuous GNSS time series. Journal of Geodesy (submitted).

Performance

Hector v3.0 is a Python/Cython rewrite of Hector C++ v2.2. The core Toeplitz factorisation uses the Generalised Schur Algorithm (O(n log²n)) instead of Durbin-Levinson (O(n²)), and data gaps are handled with an FFT-based spectral approximation. The result is 6–27× faster for typical GNSS series lengths:

Series Gaps Hector v3.0 (s) Hector C++ v2.2 (s) Speedup
10 yr 0% 0.45 5.2 11.6×
20 yr 0% 1.7 14.4 8.5×
30 yr 0% 3.2 30.9 9.7×
40 yr 0% 4.4 91.9 20.7×
10 yr 10% 1.3 7.3 5.8×
30 yr 10% 14.2 85.4 6.0×
40 yr 10% 24.0 220.1 9.2×

Benchmarked on Apple M4 Pro, GGM+White noise model, including offset estimation.

License

Free for academic, research, and educational use. Commercial use requires a separate license from TeroMovigo – Earth Innovation Lda. See LICENSE for full terms.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hector_ts-3.0.10.tar.gz (12.6 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

hector_ts-3.0.10-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (15.9 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

hector_ts-3.0.10-cp314-cp314-win_amd64.whl (13.1 MB view details)

Uploaded CPython 3.14Windows x86-64

hector_ts-3.0.10-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (15.8 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

hector_ts-3.0.10-cp314-cp314-macosx_14_0_arm64.whl (12.6 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

hector_ts-3.0.10-cp313-cp313-win_amd64.whl (12.7 MB view details)

Uploaded CPython 3.13Windows x86-64

hector_ts-3.0.10-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (15.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

hector_ts-3.0.10-cp313-cp313-macosx_14_0_arm64.whl (12.6 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

hector_ts-3.0.10-cp312-cp312-win_amd64.whl (12.7 MB view details)

Uploaded CPython 3.12Windows x86-64

hector_ts-3.0.10-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (15.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

hector_ts-3.0.10-cp312-cp312-macosx_14_0_arm64.whl (12.6 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

hector_ts-3.0.10-cp311-cp311-win_amd64.whl (12.7 MB view details)

Uploaded CPython 3.11Windows x86-64

hector_ts-3.0.10-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (15.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

hector_ts-3.0.10-cp311-cp311-macosx_14_0_arm64.whl (12.6 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

hector_ts-3.0.10-cp310-cp310-win_amd64.whl (12.7 MB view details)

Uploaded CPython 3.10Windows x86-64

hector_ts-3.0.10-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (15.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

hector_ts-3.0.10-cp310-cp310-macosx_14_0_arm64.whl (12.6 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

File details

Details for the file hector_ts-3.0.10.tar.gz.

File metadata

  • Download URL: hector_ts-3.0.10.tar.gz
  • Upload date:
  • Size: 12.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for hector_ts-3.0.10.tar.gz
Algorithm Hash digest
SHA256 fee8b96339a708f6c47e7b516bbfefff6238b3bd9fbca021fbc272197de06142
MD5 a1c190fb620a2457c54ba51d19d21a50
BLAKE2b-256 1846934a18d00ee88236679664d58931083670656db9fc1411af790b79b222c5

See more details on using hashes here.

Provenance

The following attestation bundles were made for hector_ts-3.0.10.tar.gz:

Publisher: release.yml on machielbos8/hector-ts

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hector_ts-3.0.10-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for hector_ts-3.0.10-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c3567ff80a2f5e03014c102d8d43d04b40010d2113b6cff1b02ac58507826e84
MD5 9274a4098a70b74c7d8037da0cc86154
BLAKE2b-256 b264d7f4ffaf38ebe536dbf17abfea400c04f1b8e41adee35268e54cac953dc2

See more details on using hashes here.

Provenance

The following attestation bundles were made for hector_ts-3.0.10-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on machielbos8/hector-ts

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hector_ts-3.0.10-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: hector_ts-3.0.10-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 13.1 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for hector_ts-3.0.10-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 60e89f8f74c66ef1f65ecc67830146320659d3b78483dc11a762dcc3c607c5d0
MD5 811434c5082cac76b7935da7ec80cadd
BLAKE2b-256 8c745cb6ffe03fc997c9def049119d93d1eeb2e7e68a7ccba726140bdf252f33

See more details on using hashes here.

Provenance

The following attestation bundles were made for hector_ts-3.0.10-cp314-cp314-win_amd64.whl:

Publisher: release.yml on machielbos8/hector-ts

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hector_ts-3.0.10-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for hector_ts-3.0.10-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 83e0172d4ad4d3e2586a45e8f185578c3d882db2627ff8b9ab474a4ec3e9ea49
MD5 6d8cf94ed165bb66ceb2cbe0bb7c956b
BLAKE2b-256 ceb66529a99259d3426c9a70528d6fe59ceab962a8849474ad9b8b45bd71b93f

See more details on using hashes here.

Provenance

The following attestation bundles were made for hector_ts-3.0.10-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on machielbos8/hector-ts

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hector_ts-3.0.10-cp314-cp314-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for hector_ts-3.0.10-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 4882e040ce2db87281d0c2874e8668f4372ecab116bf1051e3467cab8727dc49
MD5 ba9d128cff2826e1ef63b3d6e40dce6c
BLAKE2b-256 8efc5742510e26a353af735a4f7f57558bf4e2e6f734cd1e13536aa71902dc4d

See more details on using hashes here.

Provenance

The following attestation bundles were made for hector_ts-3.0.10-cp314-cp314-macosx_14_0_arm64.whl:

Publisher: release.yml on machielbos8/hector-ts

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hector_ts-3.0.10-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: hector_ts-3.0.10-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 12.7 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for hector_ts-3.0.10-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 9137cb5ad790197b91aa4d6d874cad260ea3894baaf60039327d48b6839859c4
MD5 3b046cf16a21e6f040a3071535fe3454
BLAKE2b-256 e9f650c80751742830247ec6dd78c332f674f5af440dc6b3d0e78937c78ff5b6

See more details on using hashes here.

Provenance

The following attestation bundles were made for hector_ts-3.0.10-cp313-cp313-win_amd64.whl:

Publisher: release.yml on machielbos8/hector-ts

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hector_ts-3.0.10-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for hector_ts-3.0.10-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 116d2c701e6fef5432d852ef3bdf1ca0711b193758c28aa1e1b467fb41147814
MD5 9fc2a15a5fee95eec29bb97309438709
BLAKE2b-256 ed938cc5fd1020975d6de95088f7013d5b58b92966fafd7a685ac9aab01de58f

See more details on using hashes here.

Provenance

The following attestation bundles were made for hector_ts-3.0.10-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on machielbos8/hector-ts

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hector_ts-3.0.10-cp313-cp313-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for hector_ts-3.0.10-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 9e8459483228ff4251cd6aba5becf3a00913896cb0f69c88d973f670f9691f3a
MD5 e350bb546ac18214a5552fdefc143c17
BLAKE2b-256 7809a81679b87bf237d1885063688976dbcecc3363eba4a43eeb293792066725

See more details on using hashes here.

Provenance

The following attestation bundles were made for hector_ts-3.0.10-cp313-cp313-macosx_14_0_arm64.whl:

Publisher: release.yml on machielbos8/hector-ts

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hector_ts-3.0.10-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: hector_ts-3.0.10-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 12.7 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for hector_ts-3.0.10-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 e59dc8d65091e44902646f2c284471dbe1db26a3f961049bfe37712ffbccc27f
MD5 75c741a076fd5d082dfa10c5343ff881
BLAKE2b-256 0e74119cd0bf50b2addd9b2239a5e817da2e53445e5075990f7a59ecf350261b

See more details on using hashes here.

Provenance

The following attestation bundles were made for hector_ts-3.0.10-cp312-cp312-win_amd64.whl:

Publisher: release.yml on machielbos8/hector-ts

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hector_ts-3.0.10-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for hector_ts-3.0.10-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 37a4e480831c8a38592ed6ba8d90d4cc7138331729f25c17537d257ed701ebd1
MD5 679bb8b007b68617ecbc17ab2a02ec6f
BLAKE2b-256 9d49aceab8140eeb9856b609d54173895d93e094536bcad3ae12d582bbd1700d

See more details on using hashes here.

Provenance

The following attestation bundles were made for hector_ts-3.0.10-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on machielbos8/hector-ts

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hector_ts-3.0.10-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for hector_ts-3.0.10-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 338b8c4acf74b278e5aeccac0b1553d3443de35820e202e3c114a4f84e4b7094
MD5 fbfde29dce5648aa0a1dbe2748b73aad
BLAKE2b-256 71ad6cc24e1cf29473db5c181cdd0fd38a27b7c4c14031de0135302d0a39c8b9

See more details on using hashes here.

Provenance

The following attestation bundles were made for hector_ts-3.0.10-cp312-cp312-macosx_14_0_arm64.whl:

Publisher: release.yml on machielbos8/hector-ts

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hector_ts-3.0.10-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: hector_ts-3.0.10-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 12.7 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for hector_ts-3.0.10-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 2f4a090ab5f3183ecbd3b995e9f7494b54722927c937fa048851000a9e36e09d
MD5 bbcf5028030802549cedc27fef8ea036
BLAKE2b-256 df96c373df803988744d7c5415ef59978645e99beb3a5f36a846b6e22bb90fa5

See more details on using hashes here.

Provenance

The following attestation bundles were made for hector_ts-3.0.10-cp311-cp311-win_amd64.whl:

Publisher: release.yml on machielbos8/hector-ts

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hector_ts-3.0.10-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for hector_ts-3.0.10-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 01f3a14c0074c2045e3086a60db12a34d2da23fa38396a395714b62d8c1ede88
MD5 fbfbffde470834854d39c574011f5d73
BLAKE2b-256 fe50fbc90feabbffe0f55eac5319410792565101a55b0685f5f20a8450b8f8cd

See more details on using hashes here.

Provenance

The following attestation bundles were made for hector_ts-3.0.10-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on machielbos8/hector-ts

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hector_ts-3.0.10-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for hector_ts-3.0.10-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 1283dc684c4157eb733993acc3db808a95f8c30868f867e3a043f5d578d79823
MD5 cec51438ff00ef4203c411e498aba123
BLAKE2b-256 cbd9aa3570460338e0bb7b50a85582411c00b72cb535a6441d9c0c4958352079

See more details on using hashes here.

Provenance

The following attestation bundles were made for hector_ts-3.0.10-cp311-cp311-macosx_14_0_arm64.whl:

Publisher: release.yml on machielbos8/hector-ts

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hector_ts-3.0.10-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: hector_ts-3.0.10-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 12.7 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for hector_ts-3.0.10-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 387954158d3ad1212591bd2dc9a4fb0e0cdd8be4a4e4062c68bd546049a66732
MD5 a05b1e24b8d24a957411c43762ffcb0d
BLAKE2b-256 928c4ba8a9a4539581df91eef3d350666d0167a1330b25f5d98ff5399eff157e

See more details on using hashes here.

Provenance

The following attestation bundles were made for hector_ts-3.0.10-cp310-cp310-win_amd64.whl:

Publisher: release.yml on machielbos8/hector-ts

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hector_ts-3.0.10-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for hector_ts-3.0.10-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9bb20f671489e20760867e9ba89a7518cecc39760867bfc09dc5d546c833532f
MD5 1072312eacb3ce9d97ec79dfc61a53dd
BLAKE2b-256 ba3cd1fb5371c1117b77bb6b507cd9154bb771307e0515ac885785f6a0af9658

See more details on using hashes here.

Provenance

The following attestation bundles were made for hector_ts-3.0.10-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on machielbos8/hector-ts

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hector_ts-3.0.10-cp310-cp310-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for hector_ts-3.0.10-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 74b6daba89cb6a8b107e1b695f78519b2dd8f25b6141664fe93ebc37a27e39c3
MD5 159508e2742f8f9f749202e838bb5d45
BLAKE2b-256 5395a009384caca9f5d2abb23f0de5487e4faa5c9cc6192d4045f227ddda1139

See more details on using hashes here.

Provenance

The following attestation bundles were made for hector_ts-3.0.10-cp310-cp310-macosx_14_0_arm64.whl:

Publisher: release.yml on machielbos8/hector-ts

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

3.1.1

17 files

3.1.0

17 files

This release

3.0.10 This release

17 files

3.0.9

17 files

3.0.8

17 files

3.0.7

17 files

3.0.6

17 files

3.0.5

17 files

3.0.4

17 files

3.0.3

17 files

3.0.2

17 files

3.0.1

17 files

3.0

12 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page