<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Figarri Keisha</title><link>https://kfigarri.github.io/</link><atom:link href="https://kfigarri.github.io/index.xml" rel="self" type="application/rss+xml"/><description>Figarri Keisha</description><generator>Hugo Blox Builder (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Mon, 24 Oct 2022 00:00:00 +0000</lastBuildDate><image><url>https://kfigarri.github.io/media/icon_hu1335818982437251170.png</url><title>Figarri Keisha</title><link>https://kfigarri.github.io/</link></image><item><title>Knowledge Collapse in LLMs: When Fluency Survives but Facts Fail under Recursive Synthetic Training</title><link>https://kfigarri.github.io/publication/keisha-knowledge-2025/</link><pubDate>Mon, 01 Sep 2025 00:00:00 +0000</pubDate><guid>https://kfigarri.github.io/publication/keisha-knowledge-2025/</guid><description/></item><item><title>All for law and law for all: Adaptive RAG Pipeline for Legal Research</title><link>https://kfigarri.github.io/publication/keisha-all-2025/</link><pubDate>Fri, 01 Aug 2025 00:00:00 +0000</pubDate><guid>https://kfigarri.github.io/publication/keisha-all-2025/</guid><description/></item><item><title>🛒 Building a WhatsApp-Based Grocery Assistant in 3 Days Using n8n</title><link>https://kfigarri.github.io/post/grocery-assistant/</link><pubDate>Thu, 10 Jul 2025 00:00:00 +0000</pubDate><guid>https://kfigarri.github.io/post/grocery-assistant/</guid><description>&lt;h2 id="1-background">1. Background&lt;/h2>
&lt;p>As a student living in the UK, balancing study, life, and cooking has been a challenge. Between coursework, lectures, and late-night study sessions, I often forget what’s already sitting in my fridge. This leads to the all-too-familiar outcome: buying groceries I already have, letting things expire, and ultimately wasting food and money.&lt;/p>
&lt;p>I wanted a solution that didn’t require me to change my habits or download new apps, just something that worked where I already spend time: &lt;strong>WhatsApp&lt;/strong>.&lt;/p>
&lt;hr>
&lt;h2 id="2-the-solution">2. The Solution&lt;/h2>
&lt;p>I built a &lt;strong>Grocery Assistant&lt;/strong>, an AI-powered tool that helps me:&lt;/p>
&lt;ul>
&lt;li>Extract items from receipt images and store them in a live inventory table&lt;/li>
&lt;li>Remind me of expiring items and help generate grocery lists&lt;/li>
&lt;li>Communicate entirely through &lt;strong>WhatsApp&lt;/strong>, which I already use daily&lt;/li>
&lt;/ul>
&lt;p>This means no extra app installations, no switching platforms, just smart grocery help through a familiar interface.&lt;/p>
&lt;hr>
&lt;h3 id="-demo">🧪 Demo&lt;/h3>
&lt;p>Below are three short demo clips that showcase the main features of the WhatsApp-based Grocery Assistant:&lt;/p>
&lt;h4 id="-1-receipt-upload--inventory-update">📸 1. Receipt Upload → Inventory Update&lt;/h4>
&lt;p>A user sends a photo of a grocery receipt via WhatsApp. The assistant:&lt;/p>
&lt;ul>
&lt;li>Detects it as a receipt&lt;/li>
&lt;li>Extracts the items using AI&lt;/li>
&lt;li>Adds them to the inventory table&lt;/li>
&lt;li>Responds with a bullet-point confirmation of what was added&lt;/li>
&lt;/ul>
&lt;p>&lt;video src="./demo/simulation1.mp4" width="1280" height="720" controls>&lt;/video>&lt;/p>
&lt;hr>
&lt;h4 id="-2-generate-grocery-list-from-expiring-items">🛒 2. Generate Grocery List from Expiring Items&lt;/h4>
&lt;p>The user asks, &lt;em>“Give me grocery list based on expiring items”&lt;/em>&lt;/p>
&lt;p>The assistant checks for items that are low in quantity or expiring soon and replies with a smart grocery list.&lt;/p>
&lt;p>&lt;video src="./demo/simulation2.mp4" width="1280" height="720" controls>&lt;/video>&lt;/p>
&lt;hr>
&lt;h4 id="-3-upload-non-receipt-image">❌ 3. Upload Non-Receipt Image&lt;/h4>
&lt;p>A user sends a random photo (e.g. a street sign or a product box). The assistant:&lt;/p>
&lt;ul>
&lt;li>Classifies it as &lt;strong>not a receipt&lt;/strong>&lt;/li>
&lt;li>Transcribes visible text (if any)&lt;/li>
&lt;li>Responds politely, explaining that no grocery extraction was possible&lt;/li>
&lt;/ul>
&lt;p>&lt;video src="./demo/simulation3.mp4" width="1280" height="720" controls>&lt;/video>&lt;/p>
&lt;hr>
&lt;h3 id="-using-postgresql-with-supabase">🛢️ Using PostgreSQL with Supabase&lt;/h3>
&lt;p>To store and manage the grocery data, I used &lt;strong>PostgreSQL hosted on &lt;a href="https://supabase.com/" target="_blank" rel="noopener">Supabase&lt;/a>&lt;/strong>. The schema consists of two key tables:&lt;/p>
&lt;h4 id="1-product_shelf_life">1. &lt;code>product_shelf_life&lt;/code>&lt;/h4>
&lt;p>This is a reference table containing general knowledge about how long common grocery categories typically last. For example, &lt;code>Milk&lt;/code> expires in 12 days, &lt;code>Vegetables&lt;/code> in 3 days, &lt;code>Snacks&lt;/code> in 180 days, etc.&lt;/p>
&lt;p>&lt;a href="./demo/productshelflife.png">
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img src="./demo/productshelflife.png" alt="" loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/a>&lt;/p>
&lt;h4 id="2-inventory">2. &lt;code>inventory&lt;/code>&lt;/h4>
&lt;p>This table records items extracted from receipts and keeps track of:&lt;/p>
&lt;ul>
&lt;li>Item name&lt;/li>
&lt;li>Product category&lt;/li>
&lt;li>Quantity and unit&lt;/li>
&lt;li>Inferred &lt;code>expiry_date&lt;/code>&lt;/li>
&lt;li>Timestamp of purchase&lt;/li>
&lt;/ul>
&lt;p>&lt;a href="./demo/inventory.png">
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img src="./demo/inventory.png" alt="" loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/a>&lt;/p>
&lt;p>The &lt;code>expiry_date&lt;/code> is automatically calculated as:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sql" data-lang="sql">&lt;span class="line">&lt;span class="cl">&lt;span class="n">expiry_date&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">current_date&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">expected_expired_days&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;hr>
&lt;h2 id="3-prototyping-with-n8n">3. Prototyping with n8n&lt;/h2>
&lt;p>To build this fast, I used &lt;strong>n8n&lt;/strong>, an open-source workflow automation tool. Why n8n?&lt;/p>
&lt;ul>
&lt;li>✅ Low-code with visual logic&lt;/li>
&lt;li>✅ Easy integration with WhatsApp (via Business API)&lt;/li>
&lt;li>✅ Supports AI models and custom databases&lt;/li>
&lt;li>✅ Fast iteration; I built and tested this in under &lt;strong>3 days&lt;/strong>&lt;/li>
&lt;/ul>
&lt;p>For prototypes like this, n8n is perfect. It’s modular, visual, and allows integrating AI tools with databases, HTTP endpoints, and messaging platforms with minimal boilerplate.&lt;/p>
&lt;hr>
&lt;h2 id="4-workflow-breakdown">4. Workflow Breakdown&lt;/h2>
&lt;p>Let me walk you through the system design, as shown in the visual below:&lt;/p>
&lt;p>&lt;a href="./demo/fullschema.png">
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img src="./demo/fullschema.png" alt="" loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/a>&lt;/p>
&lt;h3 id="-grocery-assistant">🟫 Grocery Assistant&lt;/h3>
&lt;p>When a user sends a text message, the &lt;strong>Grocery Assistant&lt;/strong> (powered by Gemini 2.5 Flash) processes it. It chooses the right tool based on intent: whether it’s to create a grocery list, check for expiring items, or ask about what’s in stock.&lt;/p>
&lt;p>✅ Tools used:&lt;/p>
&lt;ul>
&lt;li>&lt;code>Postgres Chat Memory&lt;/code> to access inventory data&lt;/li>
&lt;li>&lt;code>Expiring Items&lt;/code> to check for near-expiry products (connected with PostgreSQL)&lt;/li>
&lt;li>Replies are sent directly back via WhatsApp.&lt;/li>
&lt;/ul>
&lt;p>&lt;a href="./demo/groceryassistantschema.png">
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img src="./demo/groceryassistantschema.png" alt="" loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/a>&lt;/p>
&lt;hr>
&lt;h3 id="-image-classifier">🟦 Image Classifier&lt;/h3>
&lt;p>If the input is an image (e.g., a photo of a receipt), it’s routed to the &lt;strong>Image Classifier&lt;/strong>. This step uses Gemini 1.5 Flash to classify whether the image is a &lt;strong>receipt&lt;/strong> or something else.&lt;/p>
&lt;p>📌 Outcome:&lt;/p>
&lt;ul>
&lt;li>If it&amp;rsquo;s a receipt → go to receipt extractor.&lt;/li>
&lt;li>If not → transcribe and send the text back with a polite fallback.&lt;/li>
&lt;/ul>
&lt;p>&lt;a href="./demo/imageclassifierschema.png">
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img src="./demo/imageclassifierschema.png" alt="" loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/a>&lt;/p>
&lt;hr>
&lt;h3 id="-no-receipt-response">🟪 No Receipt Response&lt;/h3>
&lt;p>If the image is not a receipt, the system still makes use of it. The agent transcribes visible text using Gemini 1.5 Flash and replies via WhatsApp with the message:&lt;/p>
&lt;blockquote>
&lt;p>“This image does not appear to be a receipt, so no extraction was performed.”&lt;/p>
&lt;/blockquote>
&lt;p>This ensures a graceful fallback and lets users know what&amp;rsquo;s happening.&lt;/p>
&lt;p>&lt;a href="./demo/noreceiptschema.png">
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img src="./demo/noreceiptschema.png" alt="" loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/a>&lt;/p>
&lt;hr>
&lt;h3 id="-smart-receipt-extractor">🟩 Smart Receipt Extractor&lt;/h3>
&lt;p>When a valid receipt is detected, the image goes through the &lt;strong>Smart Receipt Extractor&lt;/strong> workflow:&lt;/p>
&lt;ol>
&lt;li>🔗 Merge the binary image&lt;/li>
&lt;li>📄 Extract raw text using &lt;strong>Gemini 2.5 Flash&lt;/strong>&lt;/li>
&lt;li>🗂️ Match products to known categories via database&lt;/li>
&lt;li>🧠 Parse structured items with &lt;strong>Gemini 1.5 Flash&lt;/strong>&lt;/li>
&lt;li>🧹 Clean and transform the data (add expiry based on category shelf life)&lt;/li>
&lt;li>🔄 Split items for individual inserts&lt;/li>
&lt;li>🛒 Insert into PostgreSQL inventory&lt;/li>
&lt;li>📬 Aggregate and send a WhatsApp checklist of added items&lt;/li>
&lt;/ol>
&lt;p>Despite being entirely no-code, this workflow handles multi-model orchestration, structured output parsing, and real-time database updates.&lt;/p>
&lt;p>&lt;a href="./demo/receiptextractorschema.png">
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img src="./demo/receiptextractorschema.png" alt="" loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/a>&lt;/p>
&lt;hr>
&lt;h2 id="5-conclusion">5. Conclusion&lt;/h2>
&lt;p>The Grocery Assistant &lt;strong>works&lt;/strong> and it already saves me time and reduces food waste. It’s still a &lt;strong>prototype&lt;/strong>, but the foundation is solid and extensible.&lt;/p>
&lt;h3 id="-what-can-be-improved">🛠️ What can be improved?&lt;/h3>
&lt;ul>
&lt;li>🔔 Add a &lt;strong>cron job&lt;/strong> to send &lt;strong>WhatsApp reminders&lt;/strong> when items are close to expiry&lt;/li>
&lt;li>🧠 Improve product mapping by adding more granular shelf-life estimates per &lt;strong>product name&lt;/strong> (not just by category)&lt;/li>
&lt;li>🤖 Better handling of OCR errors from low-quality receipts&lt;/li>
&lt;li>📊 Build a small dashboard to visualize inventory freshness trends&lt;/li>
&lt;/ul>
&lt;h3 id="-final-thoughts-on-n8n">🧠 Final Thoughts on n8n&lt;/h3>
&lt;p>While I haven’t yet explored the feasibility of &lt;strong>public, large-scale deployment&lt;/strong> using n8n, I found it incredibly powerful for &lt;strong>prototyping and rapid iteration&lt;/strong>. Within just a few days, I was able to build a fully functional AI-powered grocery assistant with real database integration and WhatsApp automation, all without writing a full backend from scratch. For now, I see n8n as a reliable tool for internal workflows, testing ideas quickly, or building MVPs.&lt;/p>
&lt;p>👉 &lt;a href="https://gist.github.com/kfigarri/ad675adb668482a8515f2956c38ce66b#file-grocery_assistant-json" target="_blank" rel="noopener">Download the n8n workflow of the Grocery Assistant here&lt;/a>&lt;/p>
&lt;h3 id="did-you-find-this-page-helpful-consider-sharing-it-">Did you find this page helpful? Consider sharing it 🙌&lt;/h3></description></item><item><title>An Automatic Document Validation System in the Platform Merdeka Mengajar by Using Word Embeddings and Supervised Classification Models</title><link>https://kfigarri.github.io/publication/keisha-automatic-2025/</link><pubDate>Wed, 01 Jan 2025 00:00:00 +0000</pubDate><guid>https://kfigarri.github.io/publication/keisha-automatic-2025/</guid><description>&lt;p>You can read the high-level explanation through &lt;a href="https://medium.com/inadigital-edu/an-automation-tool-for-document-validation-in-the-platform-merdeka-mengajar-35a3e2a66f55" target="_blank" rel="noopener">this medium&lt;/a>.&lt;/p></description></item><item><title>🎓 The GovTech Edu Data Science Team’s Role in Transforming Education in Indonesia</title><link>https://kfigarri.github.io/post/iih-works/</link><pubDate>Thu, 18 Apr 2024 00:00:00 +0000</pubDate><guid>https://kfigarri.github.io/post/iih-works/</guid><description>&lt;h2 id="overview">Overview&lt;/h2>
&lt;p>This story, specially crafted by Andika Rachman Hakim, Senior Data Scientist and my direct team lead, offers a behind-the-scenes look at how our compact Data Science team at GovTech Edu addressed some of Indonesia’s most pressing educational challenges through AI and data innovation. From automating the validation of 500k+ teacher submissions per month, developing recommendation systems, to launching a GenAI-powered metadata tool. The article highlights our journey building impactful, scalable public-sector solutions through tight collaboration and principled product thinking.&lt;/p>
&lt;p>👉 &lt;a href="https://medium.com/inadigital-edu/the-govtech-edu-data-science-teams-role-in-transforming-education-in-indonesia-32165ed1f9b2" target="_blank" rel="noopener">Read the full story on Medium&lt;/a>&lt;/p>
&lt;h3 id="did-you-find-this-page-helpful-consider-sharing-it-">Did you find this page helpful? Consider sharing it 🙌&lt;/h3></description></item><item><title>🌾 Empowering Local Farmers with Data - KaPaN</title><link>https://kfigarri.github.io/post/kalender-padi-nusantara/</link><pubDate>Mon, 06 Nov 2023 00:00:00 +0000</pubDate><guid>https://kfigarri.github.io/post/kalender-padi-nusantara/</guid><description>&lt;p>&lt;strong>&lt;em>Extreme weather is inevitable, but crop failure doesn’t have to be.&lt;/em>&lt;/strong>&lt;/p>
&lt;h2 id="-regional-recognition-at-the-united-nations-datathon-2023">🏆 Regional Recognition at the United Nations Datathon 2023&lt;/h2>
&lt;p>As Team &lt;strong>4SKA1&lt;/strong>, we were honored to be selected as &lt;strong>&lt;a href="https://unstats.un.org/bigdata/events/2023/un-datathon/winners.cshtml" target="_blank" rel="noopener">The Best Team in the Asian Region&lt;/a>&lt;/strong> at the &lt;strong>United Nations Datathon 2023&lt;/strong>. This global competition challenged participants to develop innovative data-driven applications combining geospatial and statistical data to advance the &lt;strong>Sustainable Development Goals (SDGs)&lt;/strong>.&lt;/p>
&lt;h2 id="-the-problem-climate-uncertainty-meets-agriculture">🚜 The Problem: Climate Uncertainty Meets Agriculture&lt;/h2>
&lt;p>Farmers in West Java, one of Indonesia’s major rice-producing regions, are increasingly vulnerable to extreme weather events, such as droughts, floods, and irregular rainfall. These threats can severely disrupt food supply and jeopardize farmers’ livelihoods.&lt;/p>
&lt;p>Despite the urgency, many farmers lack access to early and localized information to prepare for such risks.&lt;/p>
&lt;h2 id="-the-solution-kapan">💡 The Solution: KaPaN&lt;/h2>
&lt;p>We proposed &lt;strong>KaPaN&lt;/strong> (Kalender Padi Nusantara - &lt;em>Nusantara Rice Calendar&lt;/em>), a prototype website that serves as an &lt;strong>early warning system for extreme weather&lt;/strong>, tailored specifically for local farmers.&lt;/p>
&lt;p>KaPaN empowers users to:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Track&lt;/strong> when and how long extreme weather is forecasted in their area&lt;/li>
&lt;li>&lt;strong>Visualize&lt;/strong> the spatial extent of weather anomalies&lt;/li>
&lt;li>&lt;strong>Report and share&lt;/strong> real-time ground-level information with fellow farmers&lt;/li>
&lt;/ul>
&lt;p>The name “KaPaN” (Indonesian for “When?”) reflects our goal to answer farmers&amp;rsquo; biggest question when facing uncertainty.&lt;/p>
&lt;h2 id="-the-method-extreme-value-analysis">🔬 The Method: Extreme Value Analysis&lt;/h2>
&lt;p>We used &lt;strong>Extreme Value Analysis (EVA)&lt;/strong> (specifically the &lt;strong>Block Maxima method&lt;/strong>) to analyze rare and high-impact events such as intense rainfall and drought.&lt;/p>
&lt;p>With the help of Python and the &lt;code>pyextremes&lt;/code> library, we simulated thresholds for extreme conditions and provided early warnings that farmers can act on.&lt;/p>
&lt;h2 id="-accessible-actionable-and-community-driven">🌐 Accessible, Actionable, and Community-Driven&lt;/h2>
&lt;p>The KaPaN platform is designed to be:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>User-friendly&lt;/strong>: intuitive dashboard tailored for farmers&lt;/li>
&lt;li>&lt;strong>Insightful&lt;/strong>: visualizations help interpret trends over time and across regions&lt;/li>
&lt;li>&lt;strong>Collaborative&lt;/strong>: enables farmers to contribute ground-level observations&lt;/li>
&lt;/ul>
&lt;h2 id="-learn-more">📂 Learn More&lt;/h2>
&lt;ul>
&lt;li>🔗 &lt;a href="https://github.com/bhaskoro-muthohar/KaPaN" target="_blank" rel="noopener">GitHub Repository – KaPaN&lt;/a>&lt;/li>
&lt;li>📓 &lt;a href="https://storymaps.arcgis.com/stories/daf4cb8c6791401a92f22e89ceafde40/print" target="_blank" rel="noopener">Storymaps ArcGIS&lt;/a>&lt;/li>
&lt;li>📄 &lt;a href="https://drive.google.com/file/d/1FaNbZ8FaAlAk7SlGianEKEBvjb7EYrTl/view?usp=sharing" target="_blank" rel="noopener">Full Project Report (PDF)&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="-meet-the-team--4ska1">🤝 Meet the Team – 4SKA1&lt;/h2>
&lt;p>We are a passionate group of data practitioners from Indonesia who believe in the power of data for local impact:&lt;/p>
&lt;ul>
&lt;li>Bagoes Rahmat Widiarso&lt;/li>
&lt;li>Bhaskoro Muthohar&lt;/li>
&lt;li>&lt;strong>Figarri Keisha&lt;/strong>&lt;/li>
&lt;li>Muhammad Nassirudin&lt;/li>
&lt;/ul>
&lt;h2 id="did-you-find-this-page-helpful-consider-sharing-it-">Did you find this page helpful? Consider sharing it 🙌&lt;/h2></description></item><item><title>Experience</title><link>https://kfigarri.github.io/experience/</link><pubDate>Tue, 24 Oct 2023 00:00:00 +0000</pubDate><guid>https://kfigarri.github.io/experience/</guid><description/></item><item><title>🍚 Food Insecurity Early Warning System</title><link>https://kfigarri.github.io/post/food-insecurity/</link><pubDate>Fri, 11 Nov 2022 00:00:00 +0000</pubDate><guid>https://kfigarri.github.io/post/food-insecurity/</guid><description>&lt;h2 id="overview">Overview&lt;/h2>
&lt;p>At the 2022 United Nations Big Data Hackathon, Team 4SKA1, formed by young Indonesian data scientists including myself, took on the global challenge of &lt;strong>Food Insecurity&lt;/strong>. Our solution was a scalable &lt;strong>Early Warning System&lt;/strong> prototype built using open data and visualized via Google Data Studio. The project won &lt;strong>&lt;a href="https://unstats.un.org/bigdata/events/2022/hackathon/winners-y.cshtml" target="_blank" rel="noopener">Best Visualization Award&lt;/a>&lt;/strong> in the Youth Track for its clarity, insight, and practical utility.&lt;/p>
&lt;h2 id="the-challenge">The Challenge&lt;/h2>
&lt;p>Climate change and socio-economic instability are increasingly affecting global food security. Yet, early warning systems are often absent, especially in vulnerable regions. Our task was to answer:&lt;/p>
&lt;ul>
&lt;li>&lt;em>Can we monitor and anticipate food insecurity trends globally?&lt;/em>&lt;/li>
&lt;li>&lt;em>How does a country’s food insecurity affect others through trade flows?&lt;/em>&lt;/li>
&lt;/ul>
&lt;h2 id="our-approach">Our Approach&lt;/h2>
&lt;p>We created a predictive model using data from:&lt;/p>
&lt;ul>
&lt;li>The UN Hackathon 2022 datasets&lt;/li>
&lt;li>World Bank, AtlasBig, and OurWorldInData&lt;/li>
&lt;/ul>
&lt;p>We engineered three key scores for each country:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Socio-Economic Score (SES)&lt;/strong>: clustering countries based on unemployment, undernourishment, mortality, etc.&lt;/li>
&lt;li>&lt;strong>Climate Score&lt;/strong>: using PCA to combine metrics like CO₂ emissions, energy use, forest area.&lt;/li>
&lt;li>&lt;strong>Food Score&lt;/strong>: integrating food production, consumption, waste, and trade patterns.&lt;/li>
&lt;/ul>
&lt;p>These were combined to train a &lt;strong>linear regression model&lt;/strong> to estimate national food insecurity scores with ~10% error.&lt;/p>
&lt;h2 id="the-dashboard-prototype">The Dashboard Prototype&lt;/h2>
&lt;p>We built an interactive &lt;strong>Google Data Studio dashboard&lt;/strong> to visualize:&lt;/p>
&lt;ul>
&lt;li>Global food insecurity status by country&lt;/li>
&lt;li>SES, Climate, and Food score comparisons&lt;/li>
&lt;li>Country-level food trade relationships&lt;/li>
&lt;li>Exploratory visualizations to empower policy and humanitarian decisions&lt;/li>
&lt;/ul>
&lt;p>👉 &lt;a href="https://datastudio.google.com/reporting/41fbab8b-e176-483e-b6df-e61161e57b97" target="_blank" rel="noopener">View the Dashboard&lt;/a>&lt;/p>
&lt;p>📄 &lt;a href="https://drive.google.com/file/d/13YdcGpIG4kUS8YbUFLS2T4ciPQEivylf/view?usp=sharing" target="_blank" rel="noopener">Download Full Project PDF&lt;/a>&lt;/p>
&lt;h3 id="did-you-find-this-page-helpful-consider-sharing-it-">Did you find this page helpful? Consider sharing it 🙌&lt;/h3></description></item><item><title>📈 Causal Inference - Can We Trust What Happens After?</title><link>https://kfigarri.github.io/post/difference-in-differences/</link><pubDate>Fri, 25 Mar 2022 00:00:00 +0000</pubDate><guid>https://kfigarri.github.io/post/difference-in-differences/</guid><description>&lt;h2 id="overview">Overview&lt;/h2>
&lt;p>How do you know if your new business strategy actually worked or if the trend was going to happen anyway? In this article, I introduce the Difference-in-Differences (DiD) method, a powerful statistical technique for estimating causal impact from observational data, using a real case study from my work at Bukalapak.&lt;/p>
&lt;p>We walk through the full pipeline: from identifying the problem with naive before-after comparisons, validating assumptions like parallel trends, to implementing DiD with Python regression models and even conducting a placebo test. I also showcase a custom DiD Python library that makes the process seamless and reproducible.&lt;/p>
&lt;p>&lt;a href="https://medium.com/bukalapak-data/difference-in-differences-8c925e691fff" target="_blank" rel="noopener">Read the full article on Medium&lt;/a> and discover how we turn business questions into causal answers.&lt;/p>
&lt;h3 id="did-you-find-this-page-helpful-consider-sharing-it-">Did you find this page helpful? Consider sharing it 🙌&lt;/h3></description></item><item><title>🛍️ Predicting Users’ Intention When Searching on Online Marketplace Platforms</title><link>https://kfigarri.github.io/post/search-user-intention/</link><pubDate>Tue, 25 Feb 2020 00:00:00 +0000</pubDate><guid>https://kfigarri.github.io/post/search-user-intention/</guid><description>&lt;h2 id="overview">Overview&lt;/h2>
&lt;p>Ever wondered why some people search with laser focus, while others just explore? In this post, I walk through how we tackled this challenge at Bukalapak by modeling users&amp;rsquo; search intentions, specifically whether they are exploring or locating. Using historical behavioral data, we built an unsupervised learning model to predict these intent types based on queries, enabling personalized search strategies and a better user experience. Curious how a simple keyword like “iPhone 5” can lead to very different behaviors? Dive into the full story to find out.&lt;/p>
&lt;p>👉 &lt;a href="https://medium.com/bukalapak-data/predicting-users-intention-when-searching-on-online-marketplace-platforms-a40a1792195a" target="_blank" rel="noopener">Read more on Medium&lt;/a>&lt;/p>
&lt;h3 id="did-you-find-this-page-helpful-consider-sharing-it-">Did you find this page helpful? Consider sharing it 🙌&lt;/h3></description></item><item><title>Projects</title><link>https://kfigarri.github.io/project/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kfigarri.github.io/project/</guid><description/></item></channel></rss>