<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Coder Legion - Recent posts tagged forecasting</title>
<link>https://coderlegion.com/tag/forecasting</link>
<description>Powered by Question2Answer</description>
<item>
<title>S&amp;OP Engineering II: Demand Planning from Guessing to Probability</title>
<link>https://coderlegion.com/13607/sop-engineering-ii-demand-planning-from-guessing-to-probability</link>
<description>&lt;p&gt;Your Excel says &quot;we'll sell 100 units.&quot; A round, clean, deterministic number. What if you sell 120? Stockout, unhappy customer, contractual penalty. What if you sell 50? 50 units sitting in your warehouse, immobilizing capital that could be generating returns.&lt;/p&gt;
&lt;p&gt;The problem isn't the forecast itself. It's the &lt;strong&gt;arrogance of the single number&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;In &lt;a rel=&quot;nofollow&quot; href=&quot;https://datalaria.com/en/posts/sop_engineering-data-hygiene/&quot;&gt;Chapter 1&lt;/a&gt; we built a &quot;Quality Valve&quot; that filters ERP noise. Now that we have a pure signal, we're going to do something Excel can't: &lt;strong&gt;measure uncertainty&lt;/strong&gt;.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Executive Summary:&lt;/strong&gt; A probabilistic forecast doesn't tell you &quot;you'll sell 100.&quot; It tells you &quot;with 95% probability, you'll sell between 35 and 157.&quot; That uncertainty band is the mathematical foundation for calculating your Safety Stock without resorting to rules of thumb.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&quot;the-architecture-mlops-not-scripts&quot;&gt;The Architecture: MLOps, Not Scripts&lt;/h3&gt;
&lt;p&gt;We haven't written a throwaway script. We've connected our mathematical brain (Python/Prophet) directly to our Single Source of Truth (Supabase/PostgreSQL).&lt;/p&gt;
&lt;p&gt;The key design is the &lt;code&gt;demand_forecasts&lt;/code&gt; table. Notice one column that separates this from a basic tutorial:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-sql&quot;&gt;CREATE TABLE demand_forecasts (
    id              UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
    execution_date  DATE NOT NULL,     -- ← When we ran the model
    ds              DATE NOT NULL,     -- Predicted future date
    yhat            NUMERIC NOT NULL,  -- Central prediction
    yhat_lower      NUMERIC NOT NULL,  -- Lower bound (Safety Stock)
    yhat_upper      NUMERIC NOT NULL,  -- Upper bound (Risk)
    model_version   TEXT NOT NULL,     -- Traceability
    UNIQUE(execution_date, ds)         -- One forecast per execution and date
);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Why &lt;code&gt;execution_date&lt;/code&gt;?&lt;/strong&gt; Because in 6 months, when you want to audit whether your model was accurate, you need to know &lt;em&gt;when&lt;/em&gt; you made the prediction versus &lt;em&gt;what actually happened&lt;/em&gt;. This is what MLOps calls &lt;strong&gt;Snapshotting&lt;/strong&gt;: recording the context of each execution to evaluate model drift over time.&lt;/p&gt;
&lt;p&gt;Without this column, you have a model. With it, you have an &lt;strong&gt;auditable system&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id=&quot;the-engineering-why-prophet-and-not-a-textbook-arima-&quot;&gt;The Engineering: Why Prophet (and Not a Textbook ARIMA)&lt;/h3&gt;
&lt;p&gt;Prophet is a time series engine developed by Meta, designed for irregular business data: gaps, holidays, trend changes. Exactly what a real supply chain has.&lt;/p&gt;
&lt;p&gt;Here's the core fragment from our &lt;code&gt;ProphetPredictor&lt;/code&gt; class:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;def train_model(self, country_code='ES'):
    &quot;&quot;&quot;
    Trains Prophet with two key S&amp;amp;OP configurations:
    - interval_width: Confidence interval width
    - country_holidays: Country operational context
    &quot;&quot;&quot;
    self.model = Prophet(
        interval_width=0.95,     # ← 95% confidence interval
        weekly_seasonality=True,
        yearly_seasonality=True
    )
    # Holidays that alter loading/unloading patterns
    self.model.add_country_holidays(country_name=country_code)
    self.model.fit(self.ts_df)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Two engineering decisions that separate us from a YouTube tutorial:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;interval_width=0.95&lt;/code&gt;&lt;/strong&gt;: This is not a decorative parameter. The upper bound (&lt;code&gt;yhat_upper&lt;/code&gt;) represents the maximum probable demand with 95% confidence. This is literally your calculation basis for &lt;strong&gt;Safety Stock&lt;/strong&gt;: &lt;code&gt;Safety Stock = yhat_upper - yhat&lt;/code&gt;. Without this interval, your safety stock is a gut feeling; with it, it's mathematics.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;add_country_holidays('ES')&lt;/code&gt;&lt;/strong&gt;: In S&amp;amp;OP, holidays aren't &quot;days off.&quot; They're operational anomalies: the factory closes, the warehouse doesn't dispatch, transportation stops. If the model doesn't know that August 15th is a national holiday in Spain, it will interpret the drop in orders as a downward trend. This corrupts the September prediction.&lt;/p&gt;
&lt;h3 id=&quot;translating-math-into-business-decisions&quot;&gt;Translating Math into Business Decisions&lt;/h3&gt;
&lt;p&gt;Theory is nice. But a CEO doesn't approve budgets based on Python code. They need visual evidence.&lt;/p&gt;
&lt;h4 id=&quot;the-probabilistic-forecast&quot;&gt;The Probabilistic Forecast&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://datalaria.com/en/posts/sop-engineering-part2-forecasting/prophet_forecast_plot.png&quot; alt=&quot;Probabilistic demand forecast with 95% confidence intervals&quot;&gt;&lt;br&gt;
&lt;em&gt;The black dots are your actual historical demand. The central blue line is the prediction (yhat). The shaded band is the 95% confidence interval. The greater the historical volatility, the wider the band → the more Safety Stock you need → the more cash you immobilize. This band is the conversation you should be having with your CFO.&lt;/em&gt;&lt;/p&gt;
&lt;h4 id=&quot;explainability-separating-trend-from-seasonal-noise&quot;&gt;Explainability: Separating Trend from Seasonal Noise&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://datalaria.com/en/posts/sop-engineering-part2-forecasting/prophet_components_plot.png&quot; alt=&quot;Model component decomposition: trend, weekly and yearly seasonality&quot;&gt;&lt;br&gt;
&lt;em&gt;This is XAI (Explainable AI) applied to business. The model separates Trend (is the business growing or shrinking?) from Seasonality (are there spikes by time of year?) and holiday effects. This is what the CEO needs to see to approve the operations plan: knowing whether growth is real or just a calendar effect.&lt;/em&gt;&lt;/p&gt;
&lt;h3 id=&quot;open-kitchen-try-it-yourself&quot;&gt;Open Kitchen: Try It Yourself&lt;/h3&gt;
&lt;p&gt;I distrust articles I can't execute. That's why I've prepared an isolated environment where you can train the model on an anonymized snapshot of the data we just cleaned in Chapter 1.&lt;/p&gt;
&lt;p&gt;You don't need to install Python, Prophet, or configure Supabase. You just need a browser:&lt;/p&gt;
&lt;p&gt; &lt;strong&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://colab.research.google.com/drive/1q_iZ3rPmcoXXJ3qXQzSrlxMYCSstyP12?usp=sharing&quot;&gt;Open the interactive Notebook on Google Colab&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Hit &quot;Play&quot; on the cells and watch a probabilistic forecast with uncertainty bands being generated. Modify the horizon, the country, the confidence interval. Do engineering, not faith.&lt;/p&gt;
&lt;h3 id=&quot;next-step-from-prediction-to-decision&quot;&gt;Next Step: From Prediction to Decision&lt;/h3&gt;
&lt;p&gt;Now we know the probability of what we're going to sell. The question shifts from &lt;em&gt;&quot;how much will we sell?&quot;&lt;/em&gt; to &lt;strong&gt;&quot;what should we manufacture or purchase to maximize margin and minimize risk?&quot;&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;In Chapter 3, we'll introduce &lt;strong&gt;Mathematical Optimization&lt;/strong&gt; (PuLP) and &lt;strong&gt;Theory of Constraints&lt;/strong&gt; to transform predictions into supply decisions: how much to buy, when to produce, and how to distribute finite resources while minimizing costs.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;The difference between an Operations Director who reacts and one who decides is a mathematical model between the data and the action.&lt;/p&gt;
&lt;/blockquote&gt;
</description>
<category>Tutorials</category>
<guid isPermaLink="true">https://coderlegion.com/13607/sop-engineering-ii-demand-planning-from-guessing-to-probability</guid>
<pubDate>Sat, 28 Mar 2026 16:18:34 +0000</pubDate>
</item>
<item>
<title>Forecast Kebutuhan Bahan &amp; Produksi Konveksi dengan Python (Praktis + Template)</title>
<link>https://coderlegion.com/12135/forecast-kebutuhan-bahan-produksi-konveksi-dengan-python-praktis-template</link>
<description>&lt;p&gt;Di konveksi, “ramai order” bukan selalu kabar baik—kalau stok kain meleset, jadwal jahit jadi chaos, dan vendor bahan mulai susah diajak senyum. Industri manufaktur (termasuk apparel) makin banyak mengadopsi &lt;em&gt;smart production planning&lt;/em&gt; untuk menekan biaya dan menaikkan akurasi keputusan, seperti dibahas dalam artikel tentang &lt;strong&gt;perencanaan produksi cerdas&lt;/strong&gt; di &lt;a rel=&quot;nofollow&quot; href=&quot;https://fmipa.unpad.ac.id/smart-production-planning-boosts-clothing-industry-profits-and-supports-sustainable-growth/&quot;&gt;FMIPA Unpad&lt;/a&gt;. Kalau Anda pernah “kehabisan kain 2 roll” atau “kebanyakan stok warna yang salah”, artikel ini akan jadi &lt;em&gt;playbook&lt;/em&gt; yang bisa dipraktikkan—dan kita akan menutup paragraf ini dengan satu frasa yang akan jadi kompas SEO sekaligus kompas kerja: &lt;strong&gt;forecast kebutuhan bahan python&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Dari sisi ilmiah, praktik peramalan permintaan (demand forecasting) yang memadukan data historis dan fitur kontekstual sudah jadi fondasi kuat di supply chain modern; salah satu rujukan riset yang relevan bisa Anda jadikan landasan adalah artikel di &lt;a rel=&quot;nofollow&quot; href=&quot;https://www.sciencedirect.com/science/article/abs/pii/S0169207023000134&quot;&gt;ScienceDirect tentang demand forecasting&lt;/a&gt;. Kita mengangkat tema ini karena banyak developer (dan founder) membangun sistem order tapi lupa “otak belakangnya”: perencanaan bahan, &lt;em&gt;capacity planning&lt;/em&gt;, dan jadwal produksi yang data-driven—padahal di lapangan, itu yang menentukan order selesai tepat waktu.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;“Kalau data order sudah rapi, stok bahan seharusnya bisa diprediksi. Kalau stok bisa diprediksi, jadwal produksi bisa diatur. Kalau jadwal teratur, reputasi naik.”&lt;/strong&gt;&lt;br&gt;
Ringkasnya: kita tidak sedang membahas “sekadar analitik”, tapi cara membuat operasional konveksi terasa seperti &lt;em&gt;product engineering&lt;/em&gt;—ada metrik, ada logika, ada iterasi.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h3 id=&quot;1-kenapa-konveksi-perlu-forecast-bukan-tebak-tebakan&quot;&gt;1. Kenapa Konveksi Perlu Forecast, Bukan Tebak-Tebakan&lt;/h3&gt;
&lt;p&gt;Di banyak bisnis konveksi, pengambilan keputusan bahan masih mengandalkan intuisi: “bulan lalu laku, bulan ini pasti laku.” Masalahnya, pola permintaan seragam kerja, jersey event, sampai pakaian muslim sering dipengaruhi kalender (lebaran, wisuda, agenda HR, event olahraga), tren desain, bahkan &lt;em&gt;lead time&lt;/em&gt; vendor. Di sinilah &lt;strong&gt;forecast kebutuhan bahan python&lt;/strong&gt; jadi alat bantu: bukan untuk meramal masa depan secara mistis, tapi untuk mengurangi &lt;em&gt;variance&lt;/em&gt; keputusan.&lt;/p&gt;
&lt;h4 id=&quot;apa-yang-biasanya-bocor-di-alur-produksi&quot;&gt;Apa yang Biasanya “Bocor” di Alur Produksi&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Overstock&lt;/strong&gt;: kain numpuk, cashflow ketahan.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Stockout&lt;/strong&gt;: produksi berhenti, deadline kacau.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mismatch spesifikasi&lt;/strong&gt;: warna/gramasi salah karena reorder buru-buru.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bottleneck jahit/finishing&lt;/strong&gt;: bahan ada, kapasitas tidak siap.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;sinyal-data-yang-sering-diabaikan&quot;&gt;Sinyal Data yang Sering Diabaikan&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Tanggal &lt;em&gt;PO&lt;/em&gt; vs tanggal &lt;em&gt;delivery&lt;/em&gt; (indikator lead time real).&lt;/li&gt;
&lt;li&gt;Ukuran dominan (S/M/L/XL) per klien/per industri.&lt;/li&gt;
&lt;li&gt;Rasio reject/QC (pengaruh ke kebutuhan kain ekstra).&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id=&quot;2-data-minimal-yang-anda-butuhkan-dan-cara-menyusunnya-&quot;&gt;2. Data Minimal yang Anda Butuhkan (Dan Cara Menyusunnya)&lt;/h3&gt;
&lt;p&gt;Sebelum ngomong model, rapikan dulu datanya. Kabar baiknya: Anda tidak butuh data warehouse mewah. Cukup satu tabel order yang konsisten.&lt;/p&gt;
&lt;h4 id=&quot;struktur-tabel-data-order&quot;&gt;Struktur Tabel Data Order&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;&lt;th&gt;Kolom         &lt;/th&gt;&lt;th&gt;Contoh          &lt;/th&gt;&lt;th&gt;Kenapa penting         &lt;/th&gt;&lt;th&gt;Catatan praktis&lt;/th&gt;&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;order_id      &lt;/td&gt;&lt;td&gt;ORD-2026-0021   &lt;/td&gt;&lt;td&gt;identitas transaksi    &lt;/td&gt;&lt;td&gt;unik dan konsisten&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;tanggal_order &lt;/td&gt;&lt;td&gt;2026-02-10      &lt;/td&gt;&lt;td&gt;time series            &lt;/td&gt;&lt;td&gt;gunakan ISO date&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;kategori      &lt;/td&gt;&lt;td&gt;seragam kerja   &lt;/td&gt;&lt;td&gt;segmentasi permintaan  &lt;/td&gt;&lt;td&gt;bisa: seragam/jersey/muslim/merch&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;sku/desain    &lt;/td&gt;&lt;td&gt;SPV-KIIC-01     &lt;/td&gt;&lt;td&gt;pola demand per desain &lt;/td&gt;&lt;td&gt;opsional tapi bagus&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;qty           &lt;/td&gt;&lt;td&gt;120             &lt;/td&gt;&lt;td&gt;target produksi        &lt;/td&gt;&lt;td&gt;integer&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ukuran_mix    &lt;/td&gt;&lt;td&gt;M:60,L:40,XL:20 &lt;/td&gt;&lt;td&gt;estimasi konsumsi kain &lt;/td&gt;&lt;td&gt;bisa JSON&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;bahan         &lt;/td&gt;&lt;td&gt;oxford 200gsm   &lt;/td&gt;&lt;td&gt;konsumsi &amp;amp; substitusi  &lt;/td&gt;&lt;td&gt;normalisasi nama&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;lebar_kain_cm &lt;/td&gt;&lt;td&gt;150             &lt;/td&gt;&lt;td&gt;konversi meter         &lt;/td&gt;&lt;td&gt;penting untuk yield&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;allowance_qc  &lt;/td&gt;&lt;td&gt;0.03            &lt;/td&gt;&lt;td&gt;buffer reject          &lt;/td&gt;&lt;td&gt;3%–7% sesuai historis&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;tanggal_kirim &lt;/td&gt;&lt;td&gt;2026-02-25      &lt;/td&gt;&lt;td&gt;SLA                    &lt;/td&gt;&lt;td&gt;untuk evaluasi jadwal&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&quot;data-konsumsi-kain-per-item&quot;&gt;Data Konsumsi Kain per Item&lt;/h4&gt;
&lt;p&gt;Buat tabel kecil lain (bisa spreadsheet) untuk “konsumsi standar” per kategori/ukuran.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;&lt;th&gt;kategori      &lt;/th&gt;&lt;th&gt;ukuran &lt;/th&gt;&lt;th&gt;konsumsi_meter &lt;/th&gt;&lt;th&gt;catatan&lt;/th&gt;&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;seragam kerja &lt;/td&gt;&lt;td&gt;     M &lt;/td&gt;&lt;td&gt;           1.6 &lt;/td&gt;&lt;td&gt;termasuk kampuh&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;seragam kerja &lt;/td&gt;&lt;td&gt;     L &lt;/td&gt;&lt;td&gt;           1.7 &lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;jersey        &lt;/td&gt;&lt;td&gt;     M &lt;/td&gt;&lt;td&gt;           1.3 &lt;/td&gt;&lt;td&gt;tergantung pola&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;gamis         &lt;/td&gt;&lt;td&gt;     L &lt;/td&gt;&lt;td&gt;           2.6 &lt;/td&gt;&lt;td&gt;termasuk rok&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Di titik ini, Anda sudah siap menjalankan &lt;strong&gt;forecast kebutuhan bahan python&lt;/strong&gt; dengan cara yang realistis: mulai dari demand (qty) → convert ke meter kain → tambahkan buffer QC → hasilkan rencana pembelian.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;3-howto-scheme-dari-data-order-ke-rencana-beli-kain&quot;&gt;3. HowTo Scheme: Dari Data Order ke Rencana Beli Kain&lt;/h3&gt;
&lt;p&gt;Bab ini sengaja dibuat seperti &lt;em&gt;engineering playbook&lt;/em&gt;—biar bisa Anda copy ke repo internal.&lt;/p&gt;
&lt;h4 id=&quot;step-by-step-skema-praktis-&quot;&gt;Step-by-step (Skema Praktis)&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Ambil data order&lt;/strong&gt; per hari/minggu dan segmentasi per kategori atau bahan.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Konversi qty → kebutuhan meter kain&lt;/strong&gt; (berdasarkan ukuran mix + konsumsi standar).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Buat time series&lt;/strong&gt; kebutuhan kain (meter) per bahan.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Forecast 4–8 minggu ke depan&lt;/strong&gt; (pilih metode sederhana dulu).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hitung reorder point&lt;/strong&gt; = forecast demand selama lead time + safety stock.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Generate purchase plan&lt;/strong&gt;: tanggal pesan, jumlah meter, prioritas supplier.&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id=&quot;template-python-ringkas-tapi-siap-jalan-&quot;&gt;Template Python (Ringkas Tapi Siap Jalan)&lt;/h4&gt;
&lt;blockquote&gt;&lt;p&gt;Fokus contoh ini: forecasting mingguan untuk satu bahan. Anda bisa loop untuk semua bahan.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;import pandas as pd
import numpy as np

# 1) Load data order yang sudah dikonversi ke kebutuhan meter per bahan
# kolom minimal: tanggal_order, bahan, kebutuhan_meter

df = pd.read_csv(&quot;order_kebutuhan_meter.csv&quot;)
df[&quot;tanggal_order&quot;] = pd.to_datetime(df[&quot;tanggal_order&quot;])

bahan_target = &quot;oxford 200gsm&quot;
ts = (
    df[df[&quot;bahan&quot;] == bahan_target]
    .set_index(&quot;tanggal_order&quot;)[&quot;kebutuhan_meter&quot;]
    .resample(&quot;W&quot;)
    .sum()
    .asfreq(&quot;W&quot;, fill_value=0)
)

# 2) Baseline forecast: moving average 4 minggu (simple &amp;amp; stable)
window = 4
forecast_horizon = 8

ma = ts.rolling(window=window, min_periods=1).mean()
last_ma = float(ma.iloc[-1])
forecast = pd.Series(
    [last_ma] * forecast_horizon,
    index=pd.date_range(ts.index[-1] + pd.Timedelta(weeks=1), periods=forecast_horizon, freq=&quot;W&quot;)
)

# 3) Reorder point (ROP)
lead_time_weeks = 2
service_factor = 1.65  # ~95% service level

hist = ts.tail(12)  # 3 bulan terakhir
sigma = float(hist.std(ddof=0))

expected_demand_lt = float(forecast.head(lead_time_weeks).sum())
safety_stock = service_factor * sigma * np.sqrt(lead_time_weeks)
rop = expected_demand_lt + safety_stock

print(&quot;Bahan:&quot;, bahan_target)
print(&quot;Forecast 8 minggu (meter/minggu):&quot;)
print(forecast.round(2))
print(&quot;\nROP (meter):&quot;, round(rop, 2))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Kenapa baseline ini cukup masuk akal?&lt;/strong&gt; Karena di operasional, &lt;em&gt;forecast&lt;/em&gt; yang “sedikit salah tapi stabil” sering lebih berguna daripada model kompleks yang susah dipelihara. Setelah baseline, baru naik level: &lt;em&gt;feature engineering&lt;/em&gt; (musiman, event), atau model time series lain.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Tip: Di CoderLegion ada contoh yang relevan untuk memahami pola forecasting dari data historis—lihat &lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/10251/weather-service-project-part-3-predicting-the-future-with-ai-and-openweathermap&quot;&gt;Weather Service Project (Part 3): Predicting the Future with AI and OpenWeatherMap&lt;/a&gt; untuk gambaran alur “data → model → keputusan”.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Dalam praktik, Anda bisa menyebut pipeline ini sebagai &lt;strong&gt;forecast kebutuhan bahan python&lt;/strong&gt; versi MVP.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;4-metrik-yang-harus-anda-pantau-biar-forecast-tidak-jadi-pajangan-&quot;&gt;4. Metrik yang Harus Anda Pantau (Biar Forecast Tidak Jadi Pajangan)&lt;/h3&gt;
&lt;p&gt;Forecast yang bagus itu bukan yang terlihat keren di notebook, tapi yang memperbaiki keputusan pembelian dan produksi.&lt;/p&gt;
&lt;h4 id=&quot;kpi-operasional-yang-nyambung&quot;&gt;KPI Operasional yang Nyambung&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Fill rate&lt;/strong&gt;: % order yang dipenuhi tanpa stockout.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Lead time aktual&lt;/strong&gt;: dari PO ke bahan datang (per supplier).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Waste rate&lt;/strong&gt;: sisa kain/lembar cutting.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;On-time delivery&lt;/strong&gt;: ketepatan kirim.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;error-metric-untuk-model-&quot;&gt;Error Metric (Untuk Model)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MAE&lt;/strong&gt; (Mean Absolute Error): mudah dipahami tim ops.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MAPE&lt;/strong&gt;: hati-hati kalau demand sering nol.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bias&lt;/strong&gt;: apakah forecast cenderung over/under.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Kalau Anda baru mulai, cukup pantau: MAE + bias. Jalankan &lt;strong&gt;forecast kebutuhan bahan python&lt;/strong&gt; mingguan, lalu review tiap akhir minggu.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;5-studi-kasus-mini-seragam-industri-dengan-size-mix&quot;&gt;5. Studi Kasus Mini: Seragam Industri dengan Size Mix&lt;/h3&gt;
&lt;p&gt;Misal ada 3 klien industri minggu ini, total 420 pcs. Komposisi ukuran dan konsumsi standar memengaruhi kebutuhan kain.&lt;/p&gt;
&lt;h4 id=&quot;contoh-perhitungan-cepat&quot;&gt;Contoh Perhitungan Cepat&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Ukuran mix: M 50%, L 35%, XL 15%&lt;/li&gt;
&lt;li&gt;Konsumsi (meter): M 1.6, L 1.7, XL 1.85&lt;/li&gt;
&lt;li&gt;Allowance QC: 4%&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Kebutuhan meter (tanpa QC):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;M: 210 × 1.6 = 336&lt;/li&gt;
&lt;li&gt;L: 147 × 1.7 = 249.9&lt;/li&gt;
&lt;li&gt;XL: 63 × 1.85 = 116.55&lt;/li&gt;
&lt;li&gt;Total = 702.45 m&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Dengan QC 4%: 702.45 × 1.04 = &lt;strong&gt;730.55 m&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Kalau Anda merekam perhitungan ini per minggu, Anda akan punya time series yang siap untuk &lt;strong&gt;forecast kebutuhan bahan python&lt;/strong&gt; tanpa ribet.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;6-faq-yang-sering-ditanya-developer-amp-owner-konveksi-&quot;&gt;6. FAQ (Yang Sering Ditanya Developer &amp;amp; Owner Konveksi)&lt;/h3&gt;
&lt;h4 id=&quot;apakah-harus-pakai-model-machine-learning-&quot;&gt;Apakah harus pakai model machine learning?&lt;/h4&gt;
&lt;p&gt;Tidak. Mulai dari baseline (moving average / exponential smoothing) dulu. ML masuk kalau Anda sudah punya data stabil dan ingin memanfaatkan fitur kontekstual.&lt;/p&gt;
&lt;h4 id=&quot;data-saya-bolong-bolong-bisa-&quot;&gt;Data saya bolong-bolong, bisa?&lt;/h4&gt;
&lt;p&gt;Bisa, asal Anda konsisten “mengisi nol” untuk periode tanpa order. Time series butuh kontinuitas.&lt;/p&gt;
&lt;h4 id=&quot;berapa-horizon-forecast-yang-realistis-&quot;&gt;Berapa horizon forecast yang realistis?&lt;/h4&gt;
&lt;p&gt;Untuk konveksi: 4–8 minggu biasanya paling actionable. Di atas itu, ketidakpastian naik (event/seasonality/negosiasi klien).&lt;/p&gt;
&lt;h4 id=&quot;bagaimana-kalau-ada-order-mendadak-besar-&quot;&gt;Bagaimana kalau ada order mendadak besar?&lt;/h4&gt;
&lt;p&gt;Tambahkan mekanisme &lt;em&gt;override&lt;/em&gt;: forecast baseline + “known future orders”. Ini lebih jujur daripada memaksa model mengerti kejutan.&lt;/p&gt;
&lt;h4 id=&quot;apa-kaitannya-dengan-produksi-bukan-cuma-beli-kain-&quot;&gt;Apa kaitannya dengan produksi (bukan cuma beli kain)?&lt;/h4&gt;
&lt;p&gt;Forecast bahan bisa diturunkan ke &lt;em&gt;capacity planning&lt;/em&gt;: estimasi jam jahit, kebutuhan operator, urutan produksi per deadline.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;7-closing-yang-lebih-engineering-dari-sekadar-operasional&quot;&gt;7. Closing yang Lebih “Engineering” dari Sekadar Operasional&lt;/h3&gt;
&lt;p&gt;Sebagai penutup, menarik mengingat analogi dari &lt;a rel=&quot;nofollow&quot; href=&quot;https://en.wikipedia.org/wiki/Andrew_Ng&quot;&gt;Andrew Ng&lt;/a&gt;: &lt;strong&gt;“AI is the new electricity.”&lt;/strong&gt; Artinya: AI (dan praktik data-driven) akan menjadi &lt;em&gt;utility&lt;/em&gt; yang meresap ke banyak industri—bukan cuma tech company. Dalam konteks konveksi, “listrik” itu bisa berupa pipeline sederhana: data order → metrik → keputusan pembelian → jadwal produksi. Anda tidak harus mulai dari model canggih; yang penting adalah kebiasaan membuat keputusan berdasarkan data, lalu mengiterasinya.&lt;/p&gt;
&lt;p&gt;Kalau Anda ingin melihat implementasi nyata di lapangan (seragam kerja, jersey, pakaian muslim, hingga merchandise) dan bagaimana kebutuhan produksi diterjemahkan jadi eksekusi yang rapi, Anda bisa cek profil layanan kami di akhir tulisan ini—dan jadikan artikel ini sebagai fondasi &lt;em&gt;forecast kebutuhan bahan python&lt;/em&gt; yang dapat Anda adaptasi ke proyek internal.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Backlink (narasi yang wajar):&lt;/strong&gt; Jika Anda sedang mencari mitra produksi seragam/konveksi yang siap diajak kolaborasi berbasis data—mulai dari estimasi kebutuhan bahan sampai penjadwalan produksi—kunjungi &lt;a rel=&quot;nofollow&quot; href=&quot;https://www.konveksikarawang.co.id/&quot;&gt;Konveksi Karawang — CV Mitra Mandiri Design&lt;/a&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-json&quot;&gt;{
  &quot;@context&quot;: &quot;https://schema.org&quot;,
  &quot;@type&quot;: &quot;Article&quot;,
  &quot;headline&quot;: &quot;Forecast Kebutuhan Bahan &amp;amp; Produksi Konveksi dengan Python (Praktis + Template)&quot;,
  &quot;description&quot;: &quot;Panduan praktis forecasting kebutuhan bahan dan perencanaan produksi konveksi dengan Python: dari data order, konversi konsumsi kain, baseline forecast, hingga reorder point.&quot;,
  &quot;inLanguage&quot;: &quot;id-ID&quot;,
  &quot;mainEntityOfPage&quot;: {
    &quot;@type&quot;: &quot;WebPage&quot;,
    &quot;@id&quot;: &quot;https://coderlegion.com/&quot;
  },
  &quot;author&quot;: {
    &quot;@type&quot;: &quot;Organization&quot;,
    &quot;name&quot;: &quot;CV Mitra Mandiri Design&quot;,
    &quot;url&quot;: &quot;https://www.konveksikarawang.co.id/&quot;
  },
  &quot;publisher&quot;: {
    &quot;@type&quot;: &quot;Organization&quot;,
    &quot;name&quot;: &quot;CV Mitra Mandiri Design&quot;,
    &quot;url&quot;: &quot;https://www.konveksikarawang.co.id/&quot;,
    &quot;logo&quot;: {
      &quot;@type&quot;: &quot;ImageObject&quot;,
      &quot;url&quot;: &quot;https://www.konveksikarawang.co.id/wp-content/uploads/&quot;
    }
  },
  &quot;about&quot;: [
    {&quot;@type&quot;: &quot;Thing&quot;, &quot;name&quot;: &quot;forecast kebutuhan bahan python&quot;},
    {&quot;@type&quot;: &quot;Thing&quot;, &quot;name&quot;: &quot;demand forecasting&quot;},
    {&quot;@type&quot;: &quot;Thing&quot;, &quot;name&quot;: &quot;production planning&quot;},
    {&quot;@type&quot;: &quot;Thing&quot;, &quot;name&quot;: &quot;python&quot;},
    {&quot;@type&quot;: &quot;Thing&quot;, &quot;name&quot;: &quot;konveksi&quot;}
  ],
  &quot;isAccessibleForFree&quot;: true
}
&lt;/code&gt;&lt;/pre&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/12135/forecast-kebutuhan-bahan-produksi-konveksi-dengan-python-praktis-template</guid>
<pubDate>Sun, 08 Mar 2026 17:00:00 +0000</pubDate>
</item>
<item>
<title>Attribution &amp; Forecasting: Uncovering Insights &amp; Predicting the Future Like a Pro!</title>
<link>https://coderlegion.com/3444/attribution-forecasting-uncovering-insights-predicting-the-future-like-a-pro</link>
<description>&lt;h2 id=&quot;-attribution-amp-forecasting-uncovering-insights-amp-predicting-the-future-like-a-pro-&quot;&gt;✨ &lt;strong&gt;Attribution &amp;amp; Forecasting: Uncovering Insights &amp;amp; Predicting the Future Like a Pro!&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;In the age of data-driven decisions, understanding &lt;strong&gt;where your results come from&lt;/strong&gt; (Attribution) and &lt;strong&gt;predicting what’s next&lt;/strong&gt; (Forecasting) are your ultimate power moves!  Whether you run a business, manage ads, or analyze trends — mastering these will help you win big.&lt;/p&gt;
&lt;p&gt;Let’s break it down: &lt;strong&gt;What, Why, How, and the Best Ways to Do It — with algorithms and examples!&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;what-is-attribution-&quot;&gt;&lt;strong&gt;What is Attribution?&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Attribution&lt;/strong&gt; means figuring out which touchpoints, channels, or actions deserve credit for a desired outcome (like a sale or sign-up).&lt;/p&gt;
&lt;p&gt; &lt;strong&gt;Example:&lt;/strong&gt;&lt;br&gt;
Imagine you run an online store. A customer sees your Google ad, reads your blog, then clicks your Instagram post before buying. Which channel deserves the credit? Attribution answers this!&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;why-do-we-need-attribution-&quot;&gt;&lt;strong&gt;Why Do We Need Attribution?&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;✅ &lt;strong&gt;Better Budgeting:&lt;/strong&gt; Know which channels work best and invest more wisely.&lt;br&gt;
✅ &lt;strong&gt;Boost ROI:&lt;/strong&gt; Stop wasting money on low-impact channels.&lt;br&gt;
✅ &lt;strong&gt;Customer Journey Insights:&lt;/strong&gt; Understand how people interact with your brand at each step.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;-how-do-we-do-attribution-&quot;&gt;⚙️ &lt;strong&gt;How Do We Do Attribution?&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;There are several models — from simple to advanced:&lt;/p&gt;
&lt;h4 id=&quot;1-rule-based-models-&quot;&gt;1️⃣ &lt;strong&gt;Rule-Based Models:&lt;/strong&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;First Touch Attribution:&lt;/strong&gt; 100% credit to the first interaction.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Last Touch Attribution:&lt;/strong&gt; 100% credit to the last interaction.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Linear Attribution:&lt;/strong&gt; Equal credit to all touchpoints.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Time Decay:&lt;/strong&gt; More credit to recent touchpoints.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt; &lt;strong&gt;When to use:&lt;/strong&gt; Small businesses or when you need quick insights without heavy data crunching.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id=&quot;2-algorithmic-data-driven-models-&quot;&gt;2️⃣ &lt;strong&gt;Algorithmic / Data-Driven Models:&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;Advanced methods use data science to assign credit more accurately.&lt;/p&gt;
&lt;p&gt;✨ &lt;strong&gt;Popular Algorithm: Markov Chain Attribution&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt; &lt;strong&gt;How it works:&lt;/strong&gt; It treats each touchpoint as a state and calculates the probability that removing a touchpoint affects conversions.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;br&gt;
If removing Instagram causes a big drop in sales, Instagram gets high credit!&lt;/p&gt;
&lt;p&gt; &lt;strong&gt;Best For:&lt;/strong&gt; Medium to large businesses with lots of customer data.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;what-is-forecasting-&quot;&gt;&lt;strong&gt;What is Forecasting?&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Forecasting&lt;/strong&gt; predicts future trends based on historical data. From sales to website traffic to stock prices — forecasting helps you plan ahead. ️&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;why-do-we-need-forecasting-&quot;&gt;&lt;strong&gt;Why Do We Need Forecasting?&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;✅ &lt;strong&gt;Demand Planning:&lt;/strong&gt; Avoid stockouts or overstocking.&lt;br&gt;
✅ &lt;strong&gt;Revenue Prediction:&lt;/strong&gt; Plan budgets and growth.&lt;br&gt;
✅ &lt;strong&gt;Resource Allocation:&lt;/strong&gt; Allocate manpower and money efficiently.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;how-do-we-do-forecasting-&quot;&gt;&lt;strong&gt;How Do We Do Forecasting?&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;There are tons of methods — choose based on your data size and goal.&lt;/p&gt;
&lt;h4 id=&quot;-best-algorithms-for-forecasting-&quot;&gt;✅ &lt;strong&gt;Best Algorithms for Forecasting:&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;1️⃣ &lt;strong&gt;ARIMA (AutoRegressive Integrated Moving Average)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Great for time series data with trends &amp;amp; seasonality.&lt;/li&gt;
&lt;li&gt;Example: Monthly sales prediction.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;2️⃣ &lt;strong&gt;Exponential Smoothing (ETS)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Smooths out fluctuations, good for stable trends.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;3️⃣ &lt;strong&gt;Prophet by Facebook&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Handles holidays &amp;amp; seasonality well, easy to use.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;4️⃣ &lt;strong&gt;Machine Learning Methods:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;XGBoost Regression&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;LSTM (Long Short-Term Memory Neural Networks)&lt;/strong&gt; for deep learning with complex patterns.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-secret-sauce-combining-attribution-amp-forecasting&quot;&gt;&lt;strong&gt;The Secret Sauce: Combining Attribution &amp;amp; Forecasting&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt; &lt;strong&gt;Pro Tip:&lt;/strong&gt; Use attribution insights to build better forecasts!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;br&gt;
If attribution shows Instagram drives 40% of your sales, and you forecast sales will double during the holiday season — you can plan a bigger Instagram budget in advance!&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;-best-practices-for-precise-results&quot;&gt;✅ &lt;strong&gt;Best Practices for Precise Results&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;✨ Collect clean, reliable data.&lt;br&gt;
✨ Use multiple models and compare results.&lt;br&gt;
✨ Regularly update your models with new data.&lt;br&gt;
✨ Visualize results for easy decision-making.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;let-s-see-an-end-to-end-example&quot;&gt;&lt;strong&gt;Let’s See an End-to-End Example&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Business:&lt;/strong&gt; Online Shoe Store &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Attribution:&lt;/strong&gt; Use Markov Chain to find that Instagram &amp;amp; Google Ads are key drivers.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Forecast:&lt;/strong&gt; Use ARIMA to predict next quarter’s sales based on seasonality and trends.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action:&lt;/strong&gt; Increase Instagram ads budget before peak season to maximize ROI.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt; &lt;strong&gt;Result:&lt;/strong&gt; Smarter spending, higher sales, and no surprises!&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;wrapping-up&quot;&gt;&lt;strong&gt;Wrapping Up&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt; &lt;strong&gt;Attribution&lt;/strong&gt; = Who gets the credit?&lt;br&gt;
 &lt;strong&gt;Forecasting&lt;/strong&gt; = What’s coming next?&lt;/p&gt;
&lt;p&gt;Master these, and you’re not just analyzing the past — you’re shaping the future! &lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;-what-s-next-&quot;&gt;✅ &lt;strong&gt;What’s Next?&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Ready to supercharge your data strategy?&lt;br&gt;
Start small, test models, visualize results, and make smarter decisions every day.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt; &lt;em&gt;Feel free to share this blog if you found it useful!&lt;/em&gt;&lt;br&gt;
 &lt;em&gt;Got questions? Drop them in the comments — let’s decode data together!&lt;/em&gt; ✨&lt;/p&gt;
</description>
<category>Predictive Analytics</category>
<guid isPermaLink="true">https://coderlegion.com/3444/attribution-forecasting-uncovering-insights-predicting-the-future-like-a-pro</guid>
<pubDate>Tue, 24 Jun 2025 04:30:18 +0000</pubDate>
</item>
</channel>
</rss>