Stock Value LensCharts for long-term investors100% free

Loading stock chart…

Annual data and sources

CHOICEONE FINANCIAL SERVICES INC (COFS) · Nasdaq · USD · Sector unavailable · CIK 0000803164

Annual coverage: 2009-12-31–2025-12-31 (17 periods). Financial snapshot built 2026-10-09.

COFS annual financial history

All stored annual observations, independent of the chart window. Per-share amounts in USD. Unavailable values are not zero.

See the calculation and limitations.

Annual EPS, cash flow, dividends, and fiscal-year dividend yield for CHOICEONE FINANCIAL SERVICES INC
Fiscal year / endBasic EPSDiluted EPSFCF / shareDividends / shareFiscal-year dividend yieldFiling sources
2025
2025-12-31
2.022.011.801.133.75%Basic EPS (2026-03-13)
Diluted EPS (2026-03-13)
Operating cash flow (2026-03-13) · Capex (2026-03-13)
Dividend (2026-03-13)
2024
2024-12-31
3.273.255.521.093.08%Basic EPS (2026-03-13)
Diluted EPS (2026-03-13)
Operating cash flow (2026-03-13) · Capex (2026-03-13)
Dividend (2026-03-13)
2023
2023-12-31
2.822.825.561.053.58%Basic EPS (2026-03-13)
Diluted EPS (2026-03-13)
Operating cash flow (2026-03-13) · Capex (2026-03-13)
Dividend (2026-03-13)
2022
2022-12-31
3.153.155.731.013.48%Basic EPS (2025-03-11)
Diluted EPS (2025-03-11)
Operating cash flow (2025-03-11) · Capex (2025-03-11)
Dividend (2025-03-11)
2021
2021-12-31
2.872.864.540.943.71%Basic EPS (2024-03-13)
Diluted EPS (2024-03-13)
Operating cash flow (2024-03-13) · Capex (2024-03-13)
Dividend (2024-03-13)
2020
2020-12-31
2.082.070.880.822.88%Basic EPS (2023-03-23)
Diluted EPS (2023-03-23)
Operating cash flow (2023-03-23) · Capex (2023-03-23)
Dividend (2023-03-23)
2019
2019-12-31
1.581.581.861.40UnavailableBasic EPS (2022-03-18)
Diluted EPS (2022-03-18)
Operating cash flow (2022-03-18) · Capex (2022-03-18)
Dividend (2022-03-18)
2018
2018-12-31
2.032.021.580.71UnavailableBasic EPS (2021-04-21)
Diluted EPS (2021-04-21)
Operating cash flow (2021-04-21) · Capex (2021-04-21)
Dividend (2021-04-21)
2017
2017-12-31
1.701.701.770.64UnavailableBasic EPS (2020-03-16)
Diluted EPS (2020-03-16)
Operating cash flow (2020-03-16) · Capex (2020-03-16)
Dividend (2020-03-16)
2016
2016-12-31
1.681.682.510.62UnavailableBasic EPS (2019-03-18)
Diluted EPS (2019-03-18)
Operating cash flow (2019-03-18) · Capex (2019-03-18)
Dividend (2019-03-18)
2015
2015-12-31
1.671.660.850.63UnavailableBasic EPS (2018-03-29)
Diluted EPS (2018-03-29)
Operating cash flow (2018-03-29) · Capex (2018-03-29)
Dividend (2018-03-29)
2014
2014-12-31
1.731.722.020.59UnavailableBasic EPS (2017-03-27)
Diluted EPS (2017-03-27)
Operating cash flow (2015-03-13) · Capex (2017-03-27)
Dividend (2017-03-27)
2013
2013-12-31
1.551.542.900.54UnavailableBasic EPS (2016-03-28)
Diluted EPS (2016-03-28)
Operating cash flow (2015-03-13) · Capex (2016-03-28)
Dividend (2016-03-28)
2012
2012-12-31
1.291.292.650.50UnavailableBasic EPS (2015-03-13)
Diluted EPS (2015-03-13)
Operating cash flow (2015-03-13) · Capex (2015-03-13)
Dividend (2015-03-13)
2011
2011-12-31
1.071.073.660.48UnavailableBasic EPS (2014-03-31)
Diluted EPS (2014-03-31)
Operating cash flow (2014-03-31) · Capex (2014-03-31)
Dividend (2014-03-31)
2010
2010-12-31
0.830.832.360.48UnavailableBasic EPS (2013-03-29)
Diluted EPS (2013-03-29)
Operating cash flow (2013-03-29) · Capex (2013-03-29)
Dividend (2013-03-29)
2009
2009-12-31
0.450.45Unavailable0.48UnavailableBasic EPS (2012-03-28)
Diluted EPS (2012-03-28)
Operating cash flow (2012-03-28) · Capex (2012-03-28)
Dividend (2012-03-28)

Annual per-share context (USD/share)

Complete annual history, independent of chart loading and range. Revenue/share is annual revenue per average diluted share. Debt/share is borrowings per year-end common share, excluding leases. Missing inputs remain unavailable. Metric definitions.

Fiscal endRevenue / shareTotal debt / shareInputs & filing sources
2025-12-31UnavailableUnavailable
Inputs & filings

revenue: Banking or insurance accounting is outside this metric policy; averageDilutedShares: Banking or insurance accounting is outside this metric policy; totalDebt: Banking or insurance accounting is outside this metric policy; periodEndShares: Banking or insurance accounting is outside this metric policy

Source unavailable
2024-12-31UnavailableUnavailable
Inputs & filings

revenue: Banking or insurance accounting is outside this metric policy; averageDilutedShares: Banking or insurance accounting is outside this metric policy; totalDebt: Banking or insurance accounting is outside this metric policy; periodEndShares: Banking or insurance accounting is outside this metric policy

Source unavailable
2023-12-31UnavailableUnavailable
Inputs & filings

revenue: Banking or insurance accounting is outside this metric policy; averageDilutedShares: Banking or insurance accounting is outside this metric policy; totalDebt: Banking or insurance accounting is outside this metric policy; periodEndShares: Banking or insurance accounting is outside this metric policy

Source unavailable
2022-12-31UnavailableUnavailable
Inputs & filings

revenue: Banking or insurance accounting is outside this metric policy; averageDilutedShares: Banking or insurance accounting is outside this metric policy; totalDebt: Banking or insurance accounting is outside this metric policy; periodEndShares: Banking or insurance accounting is outside this metric policy

Source unavailable
2021-12-31UnavailableUnavailable
Inputs & filings

revenue: Banking or insurance accounting is outside this metric policy; averageDilutedShares: Banking or insurance accounting is outside this metric policy; totalDebt: Banking or insurance accounting is outside this metric policy; periodEndShares: Banking or insurance accounting is outside this metric policy

Source unavailable
2020-12-31UnavailableUnavailable
Inputs & filings

revenue: Banking or insurance accounting is outside this metric policy; averageDilutedShares: Banking or insurance accounting is outside this metric policy; totalDebt: Banking or insurance accounting is outside this metric policy; periodEndShares: Banking or insurance accounting is outside this metric policy

Source unavailable
2019-12-31UnavailableUnavailable
Inputs & filings

revenue: Banking or insurance accounting is outside this metric policy; averageDilutedShares: Banking or insurance accounting is outside this metric policy; totalDebt: Banking or insurance accounting is outside this metric policy; periodEndShares: Banking or insurance accounting is outside this metric policy

Source unavailable
2018-12-31UnavailableUnavailable
Inputs & filings

revenue: Banking or insurance accounting is outside this metric policy; averageDilutedShares: Banking or insurance accounting is outside this metric policy; totalDebt: Banking or insurance accounting is outside this metric policy; periodEndShares: Banking or insurance accounting is outside this metric policy

Source unavailable
2017-12-31UnavailableUnavailable
Inputs & filings

revenue: Banking or insurance accounting is outside this metric policy; averageDilutedShares: Banking or insurance accounting is outside this metric policy; totalDebt: Banking or insurance accounting is outside this metric policy; periodEndShares: Banking or insurance accounting is outside this metric policy

Source unavailable
2016-12-31UnavailableUnavailable
Inputs & filings

revenue: Banking or insurance accounting is outside this metric policy; averageDilutedShares: Banking or insurance accounting is outside this metric policy; totalDebt: Banking or insurance accounting is outside this metric policy; periodEndShares: Banking or insurance accounting is outside this metric policy

Source unavailable
2015-12-31UnavailableUnavailable
Inputs & filings

revenue: Banking or insurance accounting is outside this metric policy; averageDilutedShares: Banking or insurance accounting is outside this metric policy; totalDebt: Banking or insurance accounting is outside this metric policy; periodEndShares: Banking or insurance accounting is outside this metric policy

Source unavailable
2014-12-31UnavailableUnavailable
Inputs & filings

revenue: Banking or insurance accounting is outside this metric policy; averageDilutedShares: Banking or insurance accounting is outside this metric policy; totalDebt: Banking or insurance accounting is outside this metric policy; periodEndShares: Banking or insurance accounting is outside this metric policy

Source unavailable
2013-12-31UnavailableUnavailable
Inputs & filings

revenue: Banking or insurance accounting is outside this metric policy; averageDilutedShares: Banking or insurance accounting is outside this metric policy; totalDebt: Banking or insurance accounting is outside this metric policy; periodEndShares: Banking or insurance accounting is outside this metric policy

Source unavailable
2012-12-31UnavailableUnavailable
Inputs & filings

revenue: Banking or insurance accounting is outside this metric policy; averageDilutedShares: Banking or insurance accounting is outside this metric policy; totalDebt: Banking or insurance accounting is outside this metric policy; periodEndShares: Banking or insurance accounting is outside this metric policy

Source unavailable
2011-12-31UnavailableUnavailable
Inputs & filings

revenue: Banking or insurance accounting is outside this metric policy; averageDilutedShares: Banking or insurance accounting is outside this metric policy; totalDebt: Banking or insurance accounting is outside this metric policy; periodEndShares: Banking or insurance accounting is outside this metric policy

Source unavailable
2010-12-31UnavailableUnavailable
Inputs & filings

revenue: Banking or insurance accounting is outside this metric policy; averageDilutedShares: Banking or insurance accounting is outside this metric policy; totalDebt: Banking or insurance accounting is outside this metric policy; periodEndShares: Banking or insurance accounting is outside this metric policy

Source unavailable
2009-12-31UnavailableUnavailable
Inputs & filings

revenue: Banking or insurance accounting is outside this metric policy; averageDilutedShares: Banking or insurance accounting is outside this metric policy; totalDebt: Banking or insurance accounting is outside this metric policy; periodEndShares: Banking or insurance accounting is outside this metric policy

Source unavailable

Annual returns and cash generation (%)

Complete annual history, independent of chart loading and range. FCF margin and FCF / net income use matching annual totals. ROCE uses positive exact opening and closing capital-employed bases. Inputs, scopes and unavailable reasons are disclosed below. Missing inputs remain unavailable. Metric definitions.

Fiscal endFCF margin (%)FCF / net income (%)ROCE (%)Inputs & filing sources
2025-12-31UnavailableUnavailableUnavailable
Inputs & filings

Calculation inputs: {"original":{},"recovered":{}}; fcfMargin: Banking or insurance accounting is outside this metric policy; cashConversion: Banking or insurance accounting is outside this metric policy; roce: Banking or insurance accounting is outside this metric policy

Source unavailable
2024-12-31UnavailableUnavailableUnavailable
Inputs & filings

Calculation inputs: {"original":{},"recovered":{}}; fcfMargin: Banking or insurance accounting is outside this metric policy; cashConversion: Banking or insurance accounting is outside this metric policy; roce: Banking or insurance accounting is outside this metric policy

Source unavailable
2023-12-31UnavailableUnavailableUnavailable
Inputs & filings

Calculation inputs: {"original":{},"recovered":{}}; fcfMargin: Banking or insurance accounting is outside this metric policy; cashConversion: Banking or insurance accounting is outside this metric policy; roce: Banking or insurance accounting is outside this metric policy

Source unavailable
2022-12-31UnavailableUnavailableUnavailable
Inputs & filings

Calculation inputs: {"original":{},"recovered":{}}; fcfMargin: Banking or insurance accounting is outside this metric policy; cashConversion: Banking or insurance accounting is outside this metric policy; roce: Banking or insurance accounting is outside this metric policy

Source unavailable
2021-12-31UnavailableUnavailableUnavailable
Inputs & filings

Calculation inputs: {"original":{},"recovered":{}}; fcfMargin: Banking or insurance accounting is outside this metric policy; cashConversion: Banking or insurance accounting is outside this metric policy; roce: Banking or insurance accounting is outside this metric policy

Source unavailable
2020-12-31UnavailableUnavailableUnavailable
Inputs & filings

Calculation inputs: {"original":{},"recovered":{}}; fcfMargin: Banking or insurance accounting is outside this metric policy; cashConversion: Banking or insurance accounting is outside this metric policy; roce: Banking or insurance accounting is outside this metric policy

Source unavailable
2019-12-31UnavailableUnavailableUnavailable
Inputs & filings

Calculation inputs: {"original":{},"recovered":{}}; fcfMargin: Banking or insurance accounting is outside this metric policy; cashConversion: Banking or insurance accounting is outside this metric policy; roce: Banking or insurance accounting is outside this metric policy

Source unavailable
2018-12-31UnavailableUnavailableUnavailable
Inputs & filings

Calculation inputs: {"original":{},"recovered":{}}; fcfMargin: Banking or insurance accounting is outside this metric policy; cashConversion: Banking or insurance accounting is outside this metric policy; roce: Banking or insurance accounting is outside this metric policy

Source unavailable
2017-12-31UnavailableUnavailableUnavailable
Inputs & filings

Calculation inputs: {"original":{},"recovered":{}}; fcfMargin: Banking or insurance accounting is outside this metric policy; cashConversion: Banking or insurance accounting is outside this metric policy; roce: Banking or insurance accounting is outside this metric policy

Source unavailable
2016-12-31UnavailableUnavailableUnavailable
Inputs & filings

Calculation inputs: {"original":{},"recovered":{}}; fcfMargin: Banking or insurance accounting is outside this metric policy; cashConversion: Banking or insurance accounting is outside this metric policy; roce: Banking or insurance accounting is outside this metric policy

Source unavailable
2015-12-31UnavailableUnavailableUnavailable
Inputs & filings

Calculation inputs: {"original":{},"recovered":{}}; fcfMargin: Banking or insurance accounting is outside this metric policy; cashConversion: Banking or insurance accounting is outside this metric policy; roce: Banking or insurance accounting is outside this metric policy

Source unavailable
2014-12-31UnavailableUnavailableUnavailable
Inputs & filings

Calculation inputs: {"original":{},"recovered":{}}; fcfMargin: Banking or insurance accounting is outside this metric policy; cashConversion: Banking or insurance accounting is outside this metric policy; roce: Banking or insurance accounting is outside this metric policy

Source unavailable
2013-12-31UnavailableUnavailableUnavailable
Inputs & filings

Calculation inputs: {"original":{},"recovered":{}}; fcfMargin: Banking or insurance accounting is outside this metric policy; cashConversion: Banking or insurance accounting is outside this metric policy; roce: Banking or insurance accounting is outside this metric policy

Source unavailable
2012-12-31UnavailableUnavailableUnavailable
Inputs & filings

Calculation inputs: {"original":{},"recovered":{}}; fcfMargin: Banking or insurance accounting is outside this metric policy; cashConversion: Banking or insurance accounting is outside this metric policy; roce: Banking or insurance accounting is outside this metric policy

Source unavailable
2011-12-31UnavailableUnavailableUnavailable
Inputs & filings

Calculation inputs: {"original":{},"recovered":{}}; fcfMargin: Banking or insurance accounting is outside this metric policy; cashConversion: Banking or insurance accounting is outside this metric policy; roce: Banking or insurance accounting is outside this metric policy

Source unavailable
2010-12-31UnavailableUnavailableUnavailable
Inputs & filings

Calculation inputs: {"original":{},"recovered":{}}; fcfMargin: Banking or insurance accounting is outside this metric policy; cashConversion: Banking or insurance accounting is outside this metric policy; roce: Banking or insurance accounting is outside this metric policy

Source unavailable
2009-12-31UnavailableUnavailableUnavailable
Inputs & filings

Calculation inputs: {"original":{},"recovered":{}}; fcfMargin: Banking or insurance accounting is outside this metric policy; cashConversion: Banking or insurance accounting is outside this metric policy; roce: Banking or insurance accounting is outside this metric policy

Source unavailable

Annual operating facts

Complete annual history, independent of chart loading and range. Operating margin is operating profit as a percentage of revenue; net margin is consolidated net profit as a percentage of revenue. Negative margins show losses. Missing inputs remain unavailable. Metric definitions.

Fiscal endRevenue (USD)Operating margin (%)Net margin (%)Inputs & filing sources
2025-12-31UnavailableUnavailableUnavailable
Inputs & filings

revenue: Banking or insurance accounting is outside this metric policy; operatingIncome: Banking or insurance accounting is outside this metric policy; netIncome: Banking or insurance accounting is outside this metric policy

Source unavailable
2024-12-31UnavailableUnavailableUnavailable
Inputs & filings

revenue: Banking or insurance accounting is outside this metric policy; operatingIncome: Banking or insurance accounting is outside this metric policy; netIncome: Banking or insurance accounting is outside this metric policy

Source unavailable
2023-12-31UnavailableUnavailableUnavailable
Inputs & filings

revenue: Banking or insurance accounting is outside this metric policy; operatingIncome: Banking or insurance accounting is outside this metric policy; netIncome: Banking or insurance accounting is outside this metric policy

Source unavailable
2022-12-31UnavailableUnavailableUnavailable
Inputs & filings

revenue: Banking or insurance accounting is outside this metric policy; operatingIncome: Banking or insurance accounting is outside this metric policy; netIncome: Banking or insurance accounting is outside this metric policy

Source unavailable
2021-12-31UnavailableUnavailableUnavailable
Inputs & filings

revenue: Banking or insurance accounting is outside this metric policy; operatingIncome: Banking or insurance accounting is outside this metric policy; netIncome: Banking or insurance accounting is outside this metric policy

Source unavailable
2020-12-31UnavailableUnavailableUnavailable
Inputs & filings

revenue: Banking or insurance accounting is outside this metric policy; operatingIncome: Banking or insurance accounting is outside this metric policy; netIncome: Banking or insurance accounting is outside this metric policy

Source unavailable
2019-12-31UnavailableUnavailableUnavailable
Inputs & filings

revenue: Banking or insurance accounting is outside this metric policy; operatingIncome: Banking or insurance accounting is outside this metric policy; netIncome: Banking or insurance accounting is outside this metric policy

Source unavailable
2018-12-31UnavailableUnavailableUnavailable
Inputs & filings

revenue: Banking or insurance accounting is outside this metric policy; operatingIncome: Banking or insurance accounting is outside this metric policy; netIncome: Banking or insurance accounting is outside this metric policy

Source unavailable
2017-12-31UnavailableUnavailableUnavailable
Inputs & filings

revenue: Banking or insurance accounting is outside this metric policy; operatingIncome: Banking or insurance accounting is outside this metric policy; netIncome: Banking or insurance accounting is outside this metric policy

Source unavailable
2016-12-31UnavailableUnavailableUnavailable
Inputs & filings

revenue: Banking or insurance accounting is outside this metric policy; operatingIncome: Banking or insurance accounting is outside this metric policy; netIncome: Banking or insurance accounting is outside this metric policy

Source unavailable
2015-12-31UnavailableUnavailableUnavailable
Inputs & filings

revenue: Banking or insurance accounting is outside this metric policy; operatingIncome: Banking or insurance accounting is outside this metric policy; netIncome: Banking or insurance accounting is outside this metric policy

Source unavailable
2014-12-31UnavailableUnavailableUnavailable
Inputs & filings

revenue: Banking or insurance accounting is outside this metric policy; operatingIncome: Banking or insurance accounting is outside this metric policy; netIncome: Banking or insurance accounting is outside this metric policy

Source unavailable
2013-12-31UnavailableUnavailableUnavailable
Inputs & filings

revenue: Banking or insurance accounting is outside this metric policy; operatingIncome: Banking or insurance accounting is outside this metric policy; netIncome: Banking or insurance accounting is outside this metric policy

Source unavailable
2012-12-31UnavailableUnavailableUnavailable
Inputs & filings

revenue: Banking or insurance accounting is outside this metric policy; operatingIncome: Banking or insurance accounting is outside this metric policy; netIncome: Banking or insurance accounting is outside this metric policy

Source unavailable
2011-12-31UnavailableUnavailableUnavailable
Inputs & filings

revenue: Banking or insurance accounting is outside this metric policy; operatingIncome: Banking or insurance accounting is outside this metric policy; netIncome: Banking or insurance accounting is outside this metric policy

Source unavailable
2010-12-31UnavailableUnavailableUnavailable
Inputs & filings

revenue: Banking or insurance accounting is outside this metric policy; operatingIncome: Banking or insurance accounting is outside this metric policy; netIncome: Banking or insurance accounting is outside this metric policy

Source unavailable
2009-12-31UnavailableUnavailableUnavailable
Inputs & filings

revenue: Banking or insurance accounting is outside this metric policy; operatingIncome: Banking or insurance accounting is outside this metric policy; netIncome: Banking or insurance accounting is outside this metric policy

Source unavailable

CHOICEONE FINANCIAL SERVICES INC (COFS) P/E ratio history

The interactive P/E chart contains all 347 stored weekly price points (2020-02-21–2026-10-08); 347 have an eligible basic or diluted ratio. Annual EPS is carried forward from its fiscal end. Use the P/E range bar or any other chart range bar to change all five chart windows.

Fiscal-year-end snapshots

6 eligible fiscal-year-end observations span 2020-12-31–2025-12-31. Latest eligible diluted P/E: 14.99×; basic P/E: 14.91×, for fiscal end 2025-12-31, using the close on 2025-12-26.

Annual P/E = eligible fiscal-year-end close ÷ reported annual EPS. This is retrospective annual P/E, not TTM or forward P/E. Why we use annual data. Missing or non-positive EPS and missing eligible prices produce unavailable ratios.

Explore the P/E chart and optional reference lines · How P/E history is calculated.

Complete annual P/E history (17 fiscal periods)
Full stored fiscal-year-end P/E history, independent of the selected chart window. Ratios in ×; prices in USD.
Fiscal endPrice dateClosePrice basisBasic P/EDiluted P/EEPS filings
2025-12-312025-12-2630.12Adjusted close14.9114.99Basic EPS (2026-03-13) Diluted EPS (2026-03-13)
2024-12-312024-12-2735.42Adjusted close10.8310.90Basic EPS (2026-03-13) Diluted EPS (2026-03-13)
2023-12-312023-12-2929.30Adjusted close10.3910.39Basic EPS (2026-03-13) Diluted EPS (2026-03-13)
2022-12-312022-12-3029.00Adjusted close9.219.21Basic EPS (2025-03-11) Diluted EPS (2025-03-11)
2021-12-312021-12-3125.34Adjusted close8.838.86Basic EPS (2024-03-13) Diluted EPS (2024-03-13)
2020-12-312020-12-3128.43Adjusted close13.6713.74Basic EPS (2023-03-23) Diluted EPS (2023-03-23)
2019-12-31UnavailableUnavailableUnavailableUnavailableUnavailableBasic EPS (2022-03-18) Diluted EPS (2022-03-18)
2018-12-31UnavailableUnavailableUnavailableUnavailableUnavailableBasic EPS (2021-04-21) Diluted EPS (2021-04-21)
2017-12-31UnavailableUnavailableUnavailableUnavailableUnavailableBasic EPS (2020-03-16) Diluted EPS (2020-03-16)
2016-12-31UnavailableUnavailableUnavailableUnavailableUnavailableBasic EPS (2019-03-18) Diluted EPS (2019-03-18)
2015-12-31UnavailableUnavailableUnavailableUnavailableUnavailableBasic EPS (2018-03-29) Diluted EPS (2018-03-29)
2014-12-31UnavailableUnavailableUnavailableUnavailableUnavailableBasic EPS (2017-03-27) Diluted EPS (2017-03-27)
2013-12-31UnavailableUnavailableUnavailableUnavailableUnavailableBasic EPS (2016-03-28) Diluted EPS (2016-03-28)
2012-12-31UnavailableUnavailableUnavailableUnavailableUnavailableBasic EPS (2015-03-13) Diluted EPS (2015-03-13)
2011-12-31UnavailableUnavailableUnavailableUnavailableUnavailableBasic EPS (2014-03-31) Diluted EPS (2014-03-31)
2010-12-31UnavailableUnavailableUnavailableUnavailableUnavailableBasic EPS (2013-03-29) Diluted EPS (2013-03-29)
2009-12-31UnavailableUnavailableUnavailableUnavailableUnavailableBasic EPS (2012-03-28) Diluted EPS (2012-03-28)

Did this research save you time?

I build and maintain Stock Value Lens independently. If you found it useful, a coffee helps me maintain the tools and improve data updates.

Buy me a coffee · €5 (opens Buy Me a Coffee in a new tab)