Before you trust a forecast, try this OSS tool

You don’t need to understand forecasting to use it. This tool lets you test several algorithms on your own data, see how each behaves, and decide which story fits your context. One CSV, many futures—and a clearer way to …

Connections

The context

The first step in understanding forecasting is accepting that you do not need to understand forecasting algorithms. I don’t. That is exactly the point.

I built forecast_costs.py because I wanted a simple way to see how different forecasting methods behave on my own data without knowing the maths, the formulas, or the academic theory behind them. I work empirically: run several algorithms, compare their behaviour, and keep the ones that make sense for my workloads. Some overshoot. Some undershoot. Some wobble. Some stay calm. The differences matter.

This tool gives you the same power. It helps you understand which algorithms work for your data, and which ones misbehave. Once you know that, you can make smarter decisions when evaluating forecasting products. If a tool uses an algorithm that goes off the rails on your workloads, you know what to expect before you pay for it.

The goal isn’t expertise; the goal is confidence. Forecasting becomes less mystical when you can see the curves yourself.

The tool also follows the pattern behind the whole FinOps Toolkit: small, specialised tools that connect through pipes. Start with simple experiments. Try the demo. Watch how the models react. Once you can see how the algorithms move, you can build forecasting into your production workflow with a method—not blind faith.

You’re not surrendering to AI or any specific model. You’re building your own way to think.

And that leads straight into this month’s theme: context is everything.
Each algorithm tells a different story. Your job is not to pick the prettiest story, fit is to pick the story that matches your context.


Why it exists

Forecasting is universal. Banks forecast. Retailers forecast. Factories forecast. Yet in cloud we often treat forecasting as guesswork: either too naive (“just extrapolate”) or too engineered (“deploy a neural network”).

I wanted something in between: a tool that makes forecasting simple, plural, and transparent.

No dashboards. No black boxes. A set of clear, empirical results you can reason about.

See it on GitHub → https://github.com/fcontrepois/finops-toolkit
Watch and read the demo → https://fcontrepois.github.io/finops-toolkit-ui/forecast-demo


What it does

forecast_costs.py takes a CSV with precisely two required columns:

  • A column of dates (in ISO format: YYYY-MM-DD)
  • A column of numeric values

Nothing else is needed.
It does not assume AWS data. It works with anything.

When you run the tool, it outputs:

  • The same original two columns you provided
  • Plus new forecast columns, one per model
  • These new columns begin after the last row of your input, extending the time series into the future

In other words: you hand it a simple table, and it hands you the same table extended with a set of different futures.

It runs several forecasting models—SMA, exponential smoothing, Holt–Winters, ARIMA/SARIMA, Theta, NeuralProphet, Darts—plus an ensemble average.

Vendor-neutral. Cloud-neutral. Use it for spend, revenue, jobs, traffic, or any number that changes over time.


How to use it

Prepare a CSV with two columns:

Date,Value
2024-01-01,123
2024-01-02,124
...

Then run:

python forecast_costs.py --input yourfile.csv --date-column Date --value-column Value --milestone-summary

The output is a new CSV that contains:

  • Your original dates and values
  • New rows representing future dates
  • One column per model showing its forecast
  • A milestone summary in the terminal (end of month, next month, next quarter)

You can graph it in Excel, continue it through other tools, or pipe it to your anomaly detection scripts.


Why it matters

Forecasting isn’t about prediction; it’s about exploring possible futures.
When you compare algorithms, you start to understand the temperament of your data—whether it behaves like a rock or a squirrel.

This is where context reveals its importance.
Forecasts don’t tell you what will happen. They help you reason about what could happen, and why.

The model that fits your workload may be the one someone else ignores.

That is the essence of context-first FinOps: the answer is never universal.
It is always contextual.


Why it’s fun

There is something delightful about watching algorithms interpret your data.
Each method has a personality. Each curve tells a story.

Some lie.
Some panic.
Some flatter you.
Some glide through chaos.

You don’t need to be a statistician. You just need to see the behaviour.

This is hands-on forecasting: not abstraction, not theory, but exploration.


Design philosophy

forecast_costs.py is built to be:

– Vendor-neutral
– Multi-model
– Composable
– Transparent
– Extensible

A laboratory, not a black box.


A relatable use case

You have daily data—costs, users, jobs, anything. You run:

python forecast_costs.py --input data.csv --date-column Date --value-column Value --milestone-summary

You get a handful of possible futures.
Three feel reasonable. Two look nervous. One is useless. You learn something.

Overlay your plan. Compare the shapes.
You understand your data’s rhythm: not prediction, but clarity.


Tying it back to “context is everything”

Every forecasting model is a lens.
None is universally correct.
Each reveals something different about your data.

This tool helps you see that difference, not hide it.

When you understand the context of your data, you understand your future—and you understand which algorithm deserves your trust.

Forecasting becomes what it should be: a conversation, not a promise.


Explore forecast_costs.py → https://github.com/fcontrepois/finops-toolkit
Try the demo → https://fcontrepois.github.io/finops-toolkit-ui/forecast-demo

(Open-source. MIT licensed. Contributions welcome.)