<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Dom</title>
    <description>The latest articles on DEV Community by Dom (@codebydom).</description>
    <link>https://dev.to/codebydom</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3862499%2F0faac8f6-0fde-4e16-96f9-bd2a215103ba.png</url>
      <title>DEV Community: Dom</title>
      <link>https://dev.to/codebydom</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/codebydom"/>
    <language>en</language>
    <item>
      <title>Time-series Forecasting with Claude Opus 4.7 and Geneva Forecasting MCP</title>
      <dc:creator>Dom</dc:creator>
      <pubDate>Wed, 22 Apr 2026 01:38:28 +0000</pubDate>
      <link>https://dev.to/codebydom/time-series-forecasting-with-claude-opus-47-and-geneva-forecasting-mcp-577</link>
      <guid>https://dev.to/codebydom/time-series-forecasting-with-claude-opus-47-and-geneva-forecasting-mcp-577</guid>
      <description>&lt;p&gt;When it comes to any computer task, Claude is inserting itself as the first step for many workers. Instead of opening a spreadsheet, word doc, or powerpoint, a majority of tasks now start with a prompt in Claude. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Time-series forecasting&lt;/strong&gt; is another one of these tasks, often taken on by business analysts or data scientists. And while Claude is gaining the capability to do just about anything, it's token consumption and over-engineering can be a bit much for time series forecasting. &lt;/p&gt;

&lt;p&gt;Oftentimes when prompting claude to Forecast a time series, whether from a csv or a excel file, without a forecasting MCP, it will gladly do so, but at the cost of tokens, creating one off python scripts, extensive running/debugging, and added runtime. &lt;/p&gt;

&lt;p&gt;To avoid this problem, we went to build out our Time Series Forecasting MCP to make Claude not have to consume so many tokens just to run a time series forecast. &lt;strong&gt;Geneva MCP&lt;/strong&gt; is a model context protocol that allows Claude to easily forecast time-series data in seconds rather than minutes. &lt;/p&gt;

&lt;p&gt;Geneva MCP works natively in Claude's workflow, taking the forecast workload off of Claude, allowing it to focus on data parsing and visualizing the forecast results. Now lets do a few examples of it in action!&lt;/p&gt;

&lt;h2&gt;
  
  
  Forecasting in Claude Chat
&lt;/h2&gt;

&lt;p&gt;Prompt:&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr3wufqwbjdk2p0c9izxo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr3wufqwbjdk2p0c9izxo.png" alt="Chat Prompt" width="800" height="254"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Result: &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxfmsy629kpxhf7oou8lo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxfmsy629kpxhf7oou8lo.png" alt="Chat Result" width="800" height="659"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Forecasting from CSV - Claude Chat
&lt;/h2&gt;

&lt;p&gt;Prompt: &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fymgcjhjgt5oiuwfs8s7t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fymgcjhjgt5oiuwfs8s7t.png" alt="CSV Forecasting Prompt" width="800" height="387"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Result:&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkzio9w11eqrw5phedrde.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkzio9w11eqrw5phedrde.png" alt="CSV Forecasting Result" width="800" height="638"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Forecasting with Excel File (Claude Cowork)
&lt;/h2&gt;

&lt;p&gt;Prompt: &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkocq31rmfl6cpjezh60r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkocq31rmfl6cpjezh60r.png" alt="Excel Data Prompt" width="800" height="313"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Result: &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgsvmdwq2zq6pgme1tavl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgsvmdwq2zq6pgme1tavl.png" alt="Claude Generated Artifact" width="800" height="815"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;While new tab to Claude means creating a dashboard artifact the results remain impressive.&lt;/p&gt;

&lt;p&gt;These are just a few of the forecasting capabilities that the Geneva MCP helps enable for Claude - you can add the Geneva MCP for Free and read more about it here -&amp;gt; &lt;a href="https://portal.roadmap-tech.com/docs/mcp" rel="noopener noreferrer"&gt;Geneva Forecasting MCP&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>claude</category>
      <category>machinelearning</category>
      <category>datascience</category>
    </item>
    <item>
      <title>Geneva Forecasting API: An Expert System for Time-Series Forecasts</title>
      <dc:creator>Dom</dc:creator>
      <pubDate>Mon, 06 Apr 2026 21:06:32 +0000</pubDate>
      <link>https://dev.to/codebydom/geneva-forecasting-api-an-expert-system-for-time-series-forecasts-393n</link>
      <guid>https://dev.to/codebydom/geneva-forecasting-api-an-expert-system-for-time-series-forecasts-393n</guid>
      <description>&lt;p&gt;Time series forecasting has been around a while, and the Geneva Forecasting Engine has been quietly powering forecasts for over 25 years&lt;/p&gt;

&lt;p&gt;While very few developers have heard of it by name, it has been used as the core forecasting engine inside many Oracle products for years. In Oracle OLAP, the DML provides built-in statements (&lt;code&gt;FCOPEN&lt;/code&gt;, &lt;code&gt;FCSET&lt;/code&gt;, &lt;code&gt;FCEXEC&lt;/code&gt;, etc.) that rely on the Geneva engine for demand planning and statistical forecasting.&lt;/p&gt;

&lt;p&gt;For a long time, the only way to access the Geneva Forecasting system was through Oracle products or direct licensing from RoadMap Technologies. That changed recently: RoadMap Technologies has now made the same proven engine available to &lt;strong&gt;all developers&lt;/strong&gt; through a simple, modern API.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://portal.roadmap-tech.com/" rel="noopener noreferrer"&gt;https://portal.roadmap-tech.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Free tier&lt;/strong&gt;: 1,000 forecasts per month - no credit card required.&lt;/p&gt;

&lt;p&gt;The Geneva Forecasting API is intentionally lightweight. Here’s a complete working example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;geneva_forecast&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;GenevaClient&lt;/span&gt;

&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;GenevaClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;api_url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://api.roadmap-tech.com&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;gva_xxxxxx&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;forecast&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;118&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;153&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;137&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;186&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;129&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;164&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
         &lt;span class="mi"&gt;152&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;207&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;156&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;178&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;168&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;225&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
         &lt;span class="mi"&gt;167&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;205&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;176&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;248&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;185&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;213&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
         &lt;span class="mi"&gt;199&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;272&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;196&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;244&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;218&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;298&lt;/span&gt; &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;horizon&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;wave_periods&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;confidence_level&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.95&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;forecast&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsvaso2wj3hfqvnim0dbr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsvaso2wj3hfqvnim0dbr.png" alt="Geneva Forecasting API" width="800" height="408"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Geneva is a lightweight, rule-driven engine that automatically evaluates 10 statistical forecasting methods (each with best-fit parameter tuning and seasonality detection). It selects the strongest performer for your specific series and returns the forecast, all in usually under 200 ms.&lt;/p&gt;

&lt;p&gt;One of its biggest strengths is the built-in Expert System. An expert system is a classic AI architecture that encodes the knowledge and decision-making process of human specialists into software. Instead of training a giant neural network on millions of examples, it uses explicit rules, heuristics, and evaluation logic to mimic how a domain expert would approach a problem. When you don’t specify a forecasting method, Geneva’s Expert System automatically finds the optimal model by testing all 10 methods against your historical data and performance metrics.&lt;/p&gt;

&lt;p&gt;It then returns not only the forecast, but full visibility into its decision:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The exact &lt;code&gt;method_name&lt;/code&gt; chosen
&lt;/li&gt;
&lt;li&gt;MAPE, MAD, and RMSE metrics
&lt;/li&gt;
&lt;li&gt;Whether smoothing or seasonality handling was applied
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Whether you're building dashboards, planning inventory, or adding forecasting to an internal tool, Geneva is a great fit when you want reliable results quickly and don't need (or want) to manage a full custom modeling pipeline.&lt;/p&gt;

&lt;p&gt;There are so many ways to add Geneva to different use cases and we are excited to see how developers start building with it.&lt;/p&gt;

&lt;p&gt;If you have any questions about the Geneva Forecasting API, we will be happy to answer them here, and a lot of information about it available @ &lt;a href="https://portal.roadmap-tech.com/" rel="noopener noreferrer"&gt;https://portal.roadmap-tech.com/&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;I will be posting more about the various other capabilities of the Geneva Forecasting API - from probabilistic forecasting to agentic ai forecasting, follow along for more!&lt;/p&gt;

</description>
      <category>machinelearning</category>
      <category>api</category>
      <category>python</category>
      <category>forecasting</category>
    </item>
  </channel>
</rss>
