{"id":1462,"date":"2026-04-02T21:29:06","date_gmt":"2026-04-02T21:29:06","guid":{"rendered":"https:\/\/inphronesys.com\/?p=1462"},"modified":"2026-04-02T21:29:06","modified_gmt":"2026-04-02T21:29:06","slug":"your-first-forecast-in-15-minutes-a-supply-chain-pros-guide-to-r-rstudio-fpp3","status":"publish","type":"post","link":"https:\/\/inphronesys.com\/?p=1462","title":{"rendered":"Your First Forecast in 15 Minutes: A Supply Chain Pro&#8217;s Guide to R, RStudio &#038; FPP3"},"content":{"rendered":"<p>Yesterday, I argued that Excel&#8217;s FORECAST.LINEAR is the supply chain equivalent of navigating with a paper map in 2026. The response told me two things: a lot of you agreed \u2014 and most of you have no idea where to start.<\/p>\n<p>Fair enough. &#8222;Install R&#8220; is easy advice to give and surprisingly confusing advice to follow. There&#8217;s CRAN, there&#8217;s RStudio, there&#8217;s something called Posit now, and about forty Stack Overflow threads arguing about which one to download first. If you&#8217;ve ever abandoned an R installation halfway through because you weren&#8217;t sure if you needed &#8222;base R&#8220; or &#8222;R for macOS&#8220; or &#8222;Rtools&#8220; or all three \u2014 you&#8217;re not alone. And you&#8217;re not stupid. The onboarding experience is genuinely terrible.<\/p>\n<p>This post fixes that. By the end of it, you will have R installed, RStudio running, the fpp3 forecasting package loaded, and an actual forecast on your screen. Real data, real model, real prediction intervals \u2014 not a screenshot, not a promise, the actual thing running on your machine.<\/p>\n<p>Fifteen minutes. I timed it.<\/p>\n<h2>What Is R? (The 30-Second Version)<\/h2>\n<p>R is a free, open-source programming language designed for statistical computing. It was created by statisticians, for statisticians, which means it&#8217;s exceptionally good at the things supply chain professionals need: time series analysis, forecasting, data visualization, and statistical modeling.<\/p>\n<p>That&#8217;s the textbook answer. Here&#8217;s the practical one: <strong>R is a calculator that never forgets its work.<\/strong> Every analysis you run in R is saved as code. You can rerun it next month with new data. You can hand it to a colleague. You can audit exactly what happened and why. Try doing that with a spreadsheet where someone&#8217;s VLOOKUP references a deleted tab.<\/p>\n<p>R is free. It runs on Windows, Mac, and Linux. It has over 23,000 packages (think of them as plugins) for everything from basic statistics to machine learning to reading directly from your SAP database. And unlike Excel, it doesn&#8217;t crash when your dataset exceeds a million rows.<\/p>\n<h2>What Is RStudio? (And Why You Need It)<\/h2>\n<p>If R is the engine, <strong>RStudio is the car.<\/strong> You <em>can<\/em> run an engine by itself \u2014 but you wouldn&#8217;t enjoy the experience.<\/p>\n<p>R on its own gives you a bare console: a blinking cursor that accepts commands and returns results. It works, but it&#8217;s like editing a spreadsheet in Notepad. RStudio wraps that console in a proper working environment with four panels:<\/p>\n<ul>\n<li><strong>Source<\/strong> (top left): where you write and save your code \u2014 like an Excel worksheet, but for R scripts<\/li>\n<li><strong>Console<\/strong> (bottom left): where R actually runs your commands and shows results<\/li>\n<li><strong>Environment<\/strong> (top right): shows your data, variables, and models \u2014 a live inventory of everything R currently &#8222;knows&#8220;<\/li>\n<li><strong>Files\/Plots\/Help<\/strong> (bottom right): your file browser, chart output, and documentation \u2014 all in one place<\/li>\n<\/ul>\n<p>The company behind RStudio renamed itself to <strong>Posit<\/strong> in 2022 (as in &#8222;posit a hypothesis&#8220;), reflecting their expansion beyond R into Python and other languages. Don&#8217;t let the name change confuse you \u2014 you still download &#8222;RStudio Desktop&#8220; and it still works exactly the same way. Posit is the company, RStudio is the product. If the naming seems needlessly confusing, welcome to software. At least they didn&#8217;t call it &#8222;Meta.&#8220;<\/p>\n<p><strong>The free version of RStudio Desktop is all you need.<\/strong> There&#8217;s a paid &#8222;Pro&#8220; version for enterprise teams, but it adds server-level features that are irrelevant for individual forecasting work. Don&#8217;t let the pricing page trick you into thinking the free version is a demo \u2014 it&#8217;s the full product.<\/p>\n<h2>What Is FPP3? (Your Forecasting Toolkit)<\/h2>\n<p>FPP3 stands for <em>Forecasting: Principles and Practice, 3rd edition<\/em> \u2014 a textbook by Rob Hyndman and George Athanasopoulos that is freely available online at <a href=\"https:\/\/otexts.com\/fpp3\/\">otexts.com\/fpp3<\/a>. But it&#8217;s more than a book. The <code>fpp3<\/code> R package bundles together an entire forecasting ecosystem called the <strong>tidyverts<\/strong> that gives you everything you need to go from raw data to publishable forecast.<\/p>\n<p>Here&#8217;s what&#8217;s inside:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/inphronesys.com\/wp-content\/uploads\/2026\/04\/intro_fpp3_ecosystem.png\" alt=\"The fpp3 ecosystem: one install, everything you need for time series forecasting\" \/><\/p>\n<table style=\"border-collapse: collapse; width: 100%; margin: 1.5em 0; font-size: 0.95em; line-height: 1.5;\">\n<thead>\n<tr>\n<th style=\"border: 1px solid #ddd; padding: 10px 14px; background: #0073aa; color: #fff; font-weight: 600; text-align: left;\">Package<\/th>\n<th style=\"border: 1px solid #ddd; padding: 10px 14px; background: #0073aa; color: #fff; font-weight: 600; text-align: left;\">What It Does<\/th>\n<th style=\"border: 1px solid #ddd; padding: 10px 14px; background: #0073aa; color: #fff; font-weight: 600; text-align: left;\">Think of It As&#8230;<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr style=\"background: #f8f9fa;\">\n<td style=\"border: 1px solid #ddd; padding: 9px 14px; text-align: left;\"><strong>tsibble<\/strong><\/td>\n<td style=\"border: 1px solid #ddd; padding: 9px 14px; text-align: left;\">Turns your data into a proper time series format<\/td>\n<td style=\"border: 1px solid #ddd; padding: 9px 14px; text-align: left;\">The spreadsheet that understands dates<\/td>\n<\/tr>\n<tr style=\"background: #ffffff;\">\n<td style=\"border: 1px solid #ddd; padding: 9px 14px; text-align: left;\"><strong>feasts<\/strong><\/td>\n<td style=\"border: 1px solid #ddd; padding: 9px 14px; text-align: left;\">Decomposition, ACF plots, seasonal diagnostics<\/td>\n<td style=\"border: 1px solid #ddd; padding: 9px 14px; text-align: left;\">The magnifying glass \u2014 shows what&#8217;s hiding inside your data<\/td>\n<\/tr>\n<tr style=\"background: #f8f9fa;\">\n<td style=\"border: 1px solid #ddd; padding: 9px 14px; text-align: left;\"><strong>fable<\/strong><\/td>\n<td style=\"border: 1px solid #ddd; padding: 9px 14px; text-align: left;\">Builds and compares forecasting models (ETS, ARIMA, etc.)<\/td>\n<td style=\"border: 1px solid #ddd; padding: 9px 14px; text-align: left;\">The forecasting engine<\/td>\n<\/tr>\n<tr style=\"background: #ffffff;\">\n<td style=\"border: 1px solid #ddd; padding: 9px 14px; text-align: left;\"><strong>fpp3<\/strong><\/td>\n<td style=\"border: 1px solid #ddd; padding: 9px 14px; text-align: left;\">Loads all of the above plus core tidyverse packages with one command<\/td>\n<td style=\"border: 1px solid #ddd; padding: 9px 14px; text-align: left;\">The &#8222;install everything&#8220; button<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>When you type <code>install.packages(\"fpp3\")<\/code>, R downloads all of these \u2014 plus core <strong>tidyverse<\/strong> components like <code>ggplot2<\/code> (plotting), <code>dplyr<\/code> (data wrangling), and <code>tidyr<\/code> (reshaping), which handle data cleaning, filtering, and visualization. One install command, one ecosystem, zero configuration.<\/p>\n<h2>Installation: Three Steps, Ten Minutes<\/h2>\n<p>No IT ticket required. No admin password. No license key. If you can install Spotify, you can install R.<\/p>\n<h3>Step 1: Install R<\/h3>\n<p>Go to <strong><a href=\"https:\/\/cloud.r-project.org\/\">cloud.r-project.org<\/a><\/strong> and click the link for your operating system:<\/p>\n<ul>\n<li><strong>Windows<\/strong>: Click &#8222;Download R for Windows&#8220; \u2192 &#8222;base&#8220; \u2192 &#8222;Download R-4.x.x for Windows.&#8220; Run the installer, click Next through everything. Done.<\/li>\n<li><strong>Mac<\/strong>: Click &#8222;Download R for macOS&#8220; \u2192 download the <code>.pkg<\/code> file that matches your chip (Apple Silicon for M1 or later, Intel for older Macs). Double-click, install. Done.<\/li>\n<li><strong>Linux<\/strong>: You already know what you&#8217;re doing.<\/li>\n<\/ul>\n<p>That&#8217;s it. Don&#8217;t open R yet \u2014 it will show you the bare console, which is like opening a car hood and staring at the engine. We want the dashboard.<\/p>\n<h3>Step 2: Install RStudio<\/h3>\n<p>Go to <strong><a href=\"https:\/\/posit.co\/download\/rstudio-desktop\/\">posit.co\/download\/rstudio-desktop\/<\/a><\/strong> and download the <strong>free<\/strong> version for your OS. Install it the same way \u2014 next, next, finish.<\/p>\n<p>Now open <strong>RStudio<\/strong> (not R \u2014 look for the RStudio icon, which has a blue circle with an &#8222;R&#8220; in it). You should see four panels. The bottom-left one is the Console \u2014 that&#8217;s where you&#8217;ll type your first commands.<\/p>\n<p>If you see four panels and a blinking cursor, congratulations. You&#8217;ve done the hard part. Everything from here is just typing.<\/p>\n<h3>Step 3: Install fpp3<\/h3>\n<p>In the RStudio console (bottom-left panel), type this and press Enter:<\/p>\n<pre><code class=\"language-r\">install.packages(\"fpp3\")\n<\/code><\/pre>\n<p>R will download about 70 packages. This takes 2\u20135 minutes depending on your internet speed. You&#8217;ll see a lot of text scrolling by \u2014 that&#8217;s normal. It&#8217;s downloading the tidyverts, core tidyverse components, and all their dependencies. Go refill your coffee.<\/p>\n<p><strong>Two things that might happen (and shouldn&#8217;t worry you):<\/strong><\/p>\n<ul>\n<li>If R asks <em>&#8222;Do you want to install from sources the package which needs compilation? (Yes\/no\/cancel)&#8220;<\/em> \u2014 type <code>no<\/code> and press Enter. The pre-built version works perfectly fine.<\/li>\n<li>If R asks you to choose a CRAN mirror \u2014 pick any one close to your location. They all have the same packages.<\/li>\n<\/ul>\n<p>When it&#8217;s done, you&#8217;ll see the cursor blinking again with no error messages. If you see red text that says <code>Warning<\/code> \u2014 that&#8217;s usually fine (warnings are suggestions, not failures). If you see red text that says <code>Error<\/code> \u2014 something went wrong. The most common fix: close RStudio, reopen it, and try again. The second most common fix: update R to the latest version from CRAN.<\/p>\n<p>To verify everything worked:<\/p>\n<pre><code class=\"language-r\">library(fpp3)\n<\/code><\/pre>\n<p>If you see a message listing the loaded packages (tsibble, fable, feasts, and friends) with no errors \u2014 you&#8217;re in. The entire professional-grade forecasting toolkit is now on your machine. For free. While your ERP vendor is still emailing you about their &#8222;advanced analytics module&#8220; that costs six figures.<\/p>\n<h2>Your First Session: From Zero to Forecast<\/h2>\n<p>Let&#8217;s use that toolkit. We&#8217;re going to load a real dataset, visualize it, and produce a forecast with prediction intervals \u2014 all in about ten lines of code.<\/p>\n<h3>Look at Real Data<\/h3>\n<p>The fpp3 package comes with dozens of built-in datasets from real sources. We&#8217;ll use <code>aus_production<\/code>, which contains quarterly Australian beer production in megalitres. Why beer? Because it has beautiful seasonality (Australians brew more beer in Q4, their summer), a clear long-term trend, and it&#8217;s the kind of production planning data supply chain professionals deal with every day.<\/p>\n<p>Also: beer.<\/p>\n<pre><code class=\"language-r\">library(fpp3)\n\naus_production |&gt; select(Quarter, Beer)\n<\/code><\/pre>\n<p>The <code>|&gt;<\/code> symbol is called a <strong>pipe<\/strong>. Read it as &#8222;and then.&#8220; So this line says: &#8222;Take <code>aus_production<\/code>, <em>and then<\/em> select the Quarter and Beer columns.&#8220; If you&#8217;ve ever chained Excel formulas inside each other like <code>=ROUND(AVERAGE(IF(...)))<\/code> and wanted to scream, pipes are the readable version of that idea.<\/p>\n<h3>Make Your First Plot<\/h3>\n<p>Here&#8217;s where it gets fun:<\/p>\n<pre><code class=\"language-r\">aus_production |&gt;\n  autoplot(Beer) +\n  labs(title = \"Australian Quarterly Beer Production\",\n       y = \"Megalitres\")\n<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/inphronesys.com\/wp-content\/uploads\/2026\/04\/intro_first_plot.png\" alt=\"Your first time series plot in R \u2014 Australian beer production with clear quarterly seasonality\" \/><\/p>\n<p>One line of actual plotting code \u2014 <code>autoplot(Beer)<\/code> \u2014 and R gives you a publication-quality time series chart. The seasonal pattern jumps off the screen: production peaks every Q4 (Australian summer) and dips every Q2 (winter). You can see the boom years through the mid-1970s, the structural shift as drinking habits changed, and the gradual decline into the 2000s. Decades of production history, instantly visible.<\/p>\n<p>In Excel, getting a chart this clean would take you ten minutes of formatting: adjusting axes, removing gridlines, fixing the date labels, fighting with the legend placement. In R, it took one function call.<\/p>\n<h3>Run Your First Forecast<\/h3>\n<p>Now the moment you&#8217;ve been waiting for. Let&#8217;s take the data from 1992 onward (the more stable recent period) and ask R to forecast three years ahead:<\/p>\n<pre><code class=\"language-r\">beer &lt;- aus_production |&gt;\n  filter(year(Quarter) &gt;= 1992) |&gt;\n  select(Quarter, Beer)\n\nfit &lt;- beer |&gt;\n  model(ETS(Beer))\n\nfit |&gt;\n  forecast(h = \"3 years\") |&gt;\n  autoplot(beer) +\n  labs(title = \"Australian Beer Production: 3-Year Forecast\",\n       subtitle = \"ETS model with 80% and 95% prediction intervals\",\n       y = \"Megalitres\")\n<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/inphronesys.com\/wp-content\/uploads\/2026\/04\/intro_first_forecast.png\" alt=\"Your first real forecast \u2014 ETS model captures seasonality and shows honest uncertainty bands\" \/><\/p>\n<p><strong>That&#8217;s it.<\/strong> Five lines of real code, and you have a forecast with:<\/p>\n<ul>\n<li><strong>A seasonal pattern<\/strong> that R detected automatically \u2014 peak in Q4, trough in Q2, year after year<\/li>\n<li><strong>Prediction intervals<\/strong> \u2014 the shaded bands showing where production is 80% and 95% likely to fall<\/li>\n<li><strong>A named model<\/strong> \u2014 this is an ETS(A,N,A) model: Additive errors, No trend, Additive seasonality<\/li>\n<\/ul>\n<p>Let&#8217;s unpack what each line did:<\/p>\n<table style=\"border-collapse: collapse; width: 100%; margin: 1.5em 0; font-size: 0.95em; line-height: 1.5;\">\n<thead>\n<tr>\n<th style=\"border: 1px solid #ddd; padding: 10px 14px; background: #0073aa; color: #fff; font-weight: 600; text-align: left;\">Line<\/th>\n<th style=\"border: 1px solid #ddd; padding: 10px 14px; background: #0073aa; color: #fff; font-weight: 600; text-align: left;\">What It Does<\/th>\n<th style=\"border: 1px solid #ddd; padding: 10px 14px; background: #0073aa; color: #fff; font-weight: 600; text-align: left;\">Excel Equivalent<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr style=\"background: #f8f9fa;\">\n<td style=\"border: 1px solid #ddd; padding: 9px 14px; text-align: left;\"><code>filter(year(Quarter) &gt;= 1992)<\/code><\/td>\n<td style=\"border: 1px solid #ddd; padding: 9px 14px; text-align: left;\">Keep only data from 1992 onward<\/td>\n<td style=\"border: 1px solid #ddd; padding: 9px 14px; text-align: left;\">Deleting old rows manually<\/td>\n<\/tr>\n<tr style=\"background: #ffffff;\">\n<td style=\"border: 1px solid #ddd; padding: 9px 14px; text-align: left;\"><code>select(Quarter, Beer)<\/code><\/td>\n<td style=\"border: 1px solid #ddd; padding: 9px 14px; text-align: left;\">Keep only the columns we need<\/td>\n<td style=\"border: 1px solid #ddd; padding: 9px 14px; text-align: left;\">Hiding columns<\/td>\n<\/tr>\n<tr style=\"background: #f8f9fa;\">\n<td style=\"border: 1px solid #ddd; padding: 9px 14px; text-align: left;\"><code>model(ETS(Beer))<\/code><\/td>\n<td style=\"border: 1px solid #ddd; padding: 9px 14px; text-align: left;\">Fit an ETS forecasting model<\/td>\n<td style=\"border: 1px solid #ddd; padding: 9px 14px; text-align: left;\">There is no Excel equivalent<\/td>\n<\/tr>\n<tr style=\"background: #ffffff;\">\n<td style=\"border: 1px solid #ddd; padding: 9px 14px; text-align: left;\"><code>forecast(h = \"3 years\")<\/code><\/td>\n<td style=\"border: 1px solid #ddd; padding: 9px 14px; text-align: left;\">Predict 3 years into the future<\/td>\n<td style=\"border: 1px solid #ddd; padding: 9px 14px; text-align: left;\">=FORECAST.LINEAR (but worse)<\/td>\n<\/tr>\n<tr style=\"background: #f8f9fa;\">\n<td style=\"border: 1px solid #ddd; padding: 9px 14px; text-align: left;\"><code>autoplot(beer)<\/code><\/td>\n<td style=\"border: 1px solid #ddd; padding: 9px 14px; text-align: left;\">Plot forecast with intervals<\/td>\n<td style=\"border: 1px solid #ddd; padding: 9px 14px; text-align: left;\">30 minutes of chart formatting<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>The line that matters most is <code>model(ETS(Beer))<\/code>. That single function call estimates the optimal smoothing parameters, selects the best error-trend-seasonality combination using the Akaike Information Criterion, and fits the model to your data. Behind the scenes, R just evaluated 30 candidate models and picked the winner. Excel doesn&#8217;t even know those 30 models exist.<\/p>\n<h2>What Just Happened?<\/h2>\n<p>Take a breath. You just:<\/p>\n<ol>\n<li>Installed a professional statistical computing environment<\/li>\n<li>Loaded a curated forecasting toolkit used by thousands of practitioners worldwide<\/li>\n<li>Visualized a real production time series with one line of code<\/li>\n<li>Produced an honest-to-goodness ETS forecast with prediction intervals<\/li>\n<\/ol>\n<p>And you didn&#8217;t write a single VLOOKUP. Not one INDEX(MATCH()). No circular references. No broken chart axes. No mysterious <code>#REF!<\/code> errors cascading through seventeen worksheets.<\/p>\n<p>If you&#8217;re feeling a mix of &#8222;that was surprisingly easy&#8220; and &#8222;I have no idea what ETS actually does&#8220; \u2014 that&#8217;s exactly where you should be. You don&#8217;t need to understand the mathematics of exponential smoothing to use it effectively, just like you don&#8217;t need to understand combustion engineering to drive a car. The understanding will come with practice. For now, the important thing is that <em>it works<\/em> and <em>you made it work<\/em>.<\/p>\n<h2>Your Turn<\/h2>\n<p>Don&#8217;t close RStudio. Try these:<\/p>\n<p><strong>1. Change the forecast horizon.<\/strong> Replace <code>\"3 years\"<\/code> with <code>\"5 years\"<\/code> or <code>\"1 year\"<\/code>. Watch how the prediction intervals widen as you forecast further out \u2014 that&#8217;s R being honest about increasing uncertainty. Excel&#8217;s linear forecast doesn&#8217;t get wider. It should.<\/p>\n<p><strong>2. Try a different dataset.<\/strong> The <code>aus_production<\/code> table also has <code>Cement<\/code>, <code>Electricity<\/code>, and <code>Gas<\/code> columns. Replace <code>Beer<\/code> with any of them:<\/p>\n<pre><code class=\"language-r\">aus_production |&gt;\n  autoplot(Cement) +\n  labs(title = \"Australian Cement Production\", y = \"Tonnes ('000)\")\n<\/code><\/pre>\n<p><strong>3. Compare two models.<\/strong> This is where R starts to pull away from everything else. (If you&#8217;ve restarted RStudio since the forecast section, re-run the code from &#8222;Run Your First Forecast&#8220; first to recreate the <code>beer<\/code> variable.)<\/p>\n<pre><code class=\"language-r\">beer |&gt;\n  model(\n    ETS   = ETS(Beer),\n    ARIMA = ARIMA(Beer)\n  ) |&gt;\n  forecast(h = \"3 years\") |&gt;\n  autoplot(beer, level = 80) +\n  labs(title = \"ETS vs ARIMA: Who Forecasts Beer Better?\",\n       y = \"Megalitres\")\n<\/code><\/pre>\n<p>Two models, one chart, six lines. Try doing that in Excel. I&#8217;ll wait.<\/p>\n<p><strong>4. Check the numbers.<\/strong> Want to know which model actually wins?<\/p>\n<pre><code class=\"language-r\">beer |&gt;\n  model(\n    ETS    = ETS(Beer),\n    ARIMA  = ARIMA(Beer),\n    SNAIVE = SNAIVE(Beer)\n  ) |&gt;\n  accuracy() |&gt;\n  select(.model, RMSE, MAE, MAPE)\n<\/code><\/pre>\n<p>This prints a clean table comparing Root Mean Squared Error, Mean Absolute Error, and MAPE across all three models. No manual calculation. No helper columns. No pivot tables. Just the answer.<\/p>\n<h2>What&#8217;s Next<\/h2>\n<p>You&#8217;ve got the tools installed and your first forecast on screen.<\/p>\n<p>Next, we go deep. We&#8217;ll take a real multi-SKU supply chain dataset through the complete fpp3 workflow: cleaning messy data, decomposing time series to understand their hidden structure, fitting multiple models, cross-validating properly (not just eyeballing the chart and hoping for the best), and comparing accuracy metrics the way statisticians actually do it. If today was &#8222;start the car and drive around the block,&#8220; next time is &#8222;take it on the highway.&#8220;<\/p>\n<p>You&#8217;ll walk away with a reusable R script template you can plug your own ERP data into \u2014 the same workflow I use for production forecasting.<\/p>\n<p>If you haven&#8217;t installed R yet: do it now. Not tomorrow. Not &#8222;when things calm down&#8220; (things never calm down \u2014 you work in supply chain). Right now. The install takes 10 minutes, and everything we cover from here on out assumes you have a working setup.<\/p>\n<p>And if you get stuck \u2014 on installation, on a confusing error message, on anything \u2014 drop it in the comments. I&#8217;ve debugged more R install issues than I&#8217;ve debugged supply chain disruptions, and I&#8217;ve debugged a lot of supply chain disruptions.<\/p>\n<p>See you next time.<\/p>\n<h2>References<\/h2>\n<ul>\n<li>Hyndman, R.J., &amp; Athanasopoulos, G. (2021). <em>Forecasting: Principles and Practice<\/em>, 3rd edition. OTexts. Available free online at <a href=\"https:\/\/otexts.com\/fpp3\/\">otexts.com\/fpp3<\/a>.<\/li>\n<li>R Core Team (2026). <em>R: A Language and Environment for Statistical Computing<\/em>. R Foundation for Statistical Computing, Vienna, Austria. <a href=\"https:\/\/www.r-project.org\/\">r-project.org<\/a>.<\/li>\n<li>Grabowski, J.-P. (2024). <em>R For Purchasing Professionals (RFPP)<\/em>. A practical guide to using R for supply chain data analysis.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>You convinced your boss R is better than Excel. Now what? Install it, load fpp3, and produce your first real forecast \u2014 all before your coffee gets cold.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13,206,115],"tags":[243,8,127,245,242,15,240,26,218,244],"class_list":["post-1462","post","type-post","status-publish","format-standard","hentry","category-data-science","category-forecasting","category-supply-chain-management","tag-beginner","tag-forecasting","tag-fpp3","tag-installation-guide","tag-posit","tag-r","tag-rstudio","tag-supply-chain-analytics","tag-tidyverts","tag-tutorial"],"_links":{"self":[{"href":"https:\/\/inphronesys.com\/index.php?rest_route=\/wp\/v2\/posts\/1462","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/inphronesys.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/inphronesys.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/inphronesys.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/inphronesys.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1462"}],"version-history":[{"count":1,"href":"https:\/\/inphronesys.com\/index.php?rest_route=\/wp\/v2\/posts\/1462\/revisions"}],"predecessor-version":[{"id":1463,"href":"https:\/\/inphronesys.com\/index.php?rest_route=\/wp\/v2\/posts\/1462\/revisions\/1463"}],"wp:attachment":[{"href":"https:\/\/inphronesys.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1462"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/inphronesys.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1462"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/inphronesys.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1462"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}