<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Tomo&#39;s Diary</title>
    <description>The blog of Tomohiro Owada, an AI engineer and business owner based in Manila. I write about AI tech such as RAG, AI agents and MCP (Model Context Protocol), and about everyday life in Manila, the Philippines: prices, exchange rates, paperwork and shopping.</description>
    <link>https://abalol.xyz/en/</link>
    <atom:link href="https://abalol.xyz/en/rss.xml" rel="self" type="application/rss+xml"/>
    <lastBuildDate>Sun, 25 Oct 2026 04:19:00 GMT</lastBuildDate>
    <language>en</language>
    <image>
      <url>https://abalol.xyz/icon-512.png</url>
      <title>Tomo&#39;s Diary</title>
      <link>https://abalol.xyz/en/</link>
    </image>
    <item>
      <title>Clumsy Engineers Will Just Become Clumsy People Nobody Wants to Work With</title>
      <link>https://abalol.xyz/en/posts/ai-is-a-mirror/</link>
      <guid isPermaLink="true">https://abalol.xyz/en/posts/ai-is-a-mirror/</guid>
      <pubDate>Sun, 25 Oct 2026 04:19:00 GMT</pubDate>
      <dc:creator>Tomohiro Owada</dc:creator>
      <category>tech</category>
      <category>ai</category>
      <category>engineering</category>
      <category>management</category>
      <description>AI is a mirror of the person using it, and all it does is multiply your own ability. Clumsy engineers who leaned on their technical skills will be replaced by people who can give clear instructions and verify the output. This is about whether you can use AI like a trusted subordinate.</description>
      <content:encoded><![CDATA[<p><img src="https://abalol.xyz/images/posts/ai-is-a-mirror/hero-en.png" alt="Cream background with the headline &quot;Clumsy Engineers Will Just Become Clumsy People Nobody Wants to Work With&quot; and line drawings of a hand mirror, a code editor and a hand holding chalk" width="1200" height="630"></p><p>AI has made output faster, yet I think many organizations still haven't turned the time it frees up into results. When things go wrong, it's tempting to blame the AI. But AI is nothing more than a mirror of the person using it.</p>
<h2>Only the output got faster</h2>
<p>AI is no longer just a programming tool. It has worked its way into almost every stage, from design to operations and maintenance (keeping a system running and fixing it after it's built). Things we used to give up on because of the man-hours (the estimate of how many people and how much time a job takes) are now simply doable.</p>
<p>But many organizations can't keep up with that speed. In the end, people keep working on the same sense of time as before. Output is faster and the whole process is more efficient, yet the logic for calculating man-hours hasn't changed at all.</p>
<h2>Where did the freed-up time go?</h2>
<p>So what on earth are engineers doing with the time AI has freed up?</p>
<p>Probably nothing productive. They're just leisurely letting AI generate output. And the excuses go like this: &quot;The AI hallucinated (made up something plausible but false).&quot; &quot;The AI's design was flawed.&quot; &quot;The code the AI wrote didn't follow the rules.&quot;</p>
<h2>What the mirror shows is you</h2>
<p>AI only multiplies your own ability. If your thinking is slow, the output is slow. If your decisions and judgment are weak, the AI gives you nothing but vague answers.</p>
<p>To get what you actually want out of AI, you need these abilities:</p>
<ul>
<li>Experience, and the judgment that comes from it</li>
<li>The ability to make decisions with the future in mind</li>
<li>The ability to put things into words</li>
<li>The ability to evaluate whether the output is right</li>
<li>The ability to build a verification environment where AI can check whether the output is right</li>
</ul>
<p>This is no different from having a trusted subordinate. You tell them the purpose, what you've decided, what process you want them to follow, and how to check whether the result is really right, and you hand all of that over along with the material they need to judge. Then you do the final evaluation yourself. Only when you can do all of this can you say you've mastered AI.</p>
<h2>No place for clumsy engineers</h2>
<p>Unfortunately, a lot of engineers are clumsy. When people who are already clumsy have part of their technical skill taken by AI, there's no place left for them.</p>
<p>Someone who's still green on the technical side can replace an engineer, as long as they can do two things well: give the right instructions and verify the output. And people who can work like that tend to have strong communication skills, so they can also borrow an engineer's knowledge and experience.</p>
<p>Engineers who think of themselves as clumsy were just leaning on their technical skills. What they need to sharpen now is the ability to manage juniors and the ability to manage AI. That's what it takes to really make use of the technical skills they already have.</p>
<p>Engineers who haven't noticed this should cling to their current company. Nobody else is going to hire them.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Use Autonomous Agents Dots and Grok Bot for Different Jobs</title>
      <link>https://abalol.xyz/en/posts/ai-price-war-lock-in/</link>
      <guid isPermaLink="true">https://abalol.xyz/en/posts/ai-price-war-lock-in/</guid>
      <pubDate>Sun, 25 Oct 2026 01:00:00 GMT</pubDate>
      <dc:creator>Tomohiro Owada</dc:creator>
      <category>tech</category>
      <category>ai</category>
      <category>openai</category>
      <category>anthropic</category>
      <description>List prices are flat at $2 per million tokens. With models no longer setting them apart, AI companies are locking customers in with conditional discounts and always-on agents. This is about how I split my AI by direction to avoid being locked in, and what I pay every month.</description>
      <content:encoded><![CDATA[<p><img src="https://abalol.xyz/images/posts/ai-price-war-lock-in/hero-en.png" alt="Cream background with the headline &#39;Use Autonomous Agents Dots and Grok Bot for Different Jobs&#39; and line drawings of a padlocked price tag, a code window and a hand holding chalk" width="1200" height="630"></p><p>In the AI price war, the gap between the models themselves has all but disappeared. So every company is trying to lock customers in with conditional discounts and always-on agents. I thought I'd been careful not to get caught. Apparently, I'm not just a bystander.</p>
<h2>Rippling has been moving to OpenAI since May</h2>
<p>According to <a href="https://www.theinformation.com/articles/anthropics-margin-openais-opportunity">a report by The Information</a> on October 24, Anthropic's models handled 57% of the coding work done by engineers at HR software company Rippling in May, while OpenAI's handled 16%. Now it's flipped: OpenAI at 52%, Anthropic at 18%. CEO Parker Conrad pointed to OpenAI being cheaper (<a href="https://www.benzinga.com/content/62577789/anthropic-s-margin-openai-s-opportunity">free excerpt</a>).</p>
<p>Replit, which lets you build apps in the browser, reportedly moved most of its AI spending to OpenAI after getting more than 30% off (<a href="https://www.techmeme.com/261024/p8">Techmeme summary</a>).</p>
<h2>Every list price is $2</h2>
<p>Line up the API (the way programs call an AI model) list prices and it's almost anticlimactic.</p>
<ul>
<li>OpenAI GPT-6.1 Sol: $2 input, $10 output (<a href="https://openai.com/index/introducing-gpt-6-1-sol/">official</a>)</li>
<li>Anthropic Claude Sonnet 5.5: $2 input, $10 output (<a href="https://platform.claude.com/docs/en/about-claude/pricing">official</a>)</li>
<li>Moonshot Kimi K3.1 Pro: $2 input, $10 output (<a href="https://x.com/ArtificialAnlys/status/2113688083145314416">per Artificial Analysis</a>)</li>
</ul>
<p>Those are per million tokens (the units AI uses to count text). In yen that's about ¥314 in and ¥1,568 out; in pesos, about ₱127 and ₱636. Identical.</p>
<p>Every AI can now drive a terminal, has its own VM (virtual machine), and runs agents in the cloud. There are even decision models built only for judging and classifying: Microsoft's <a href="https://commandline.microsoft.com/microsoft-decision-1-model-foundry/">Decision-1</a> costs $0.042 per million input tokens, and output is free. Cheap LLMs (large language models) running on your own machine return answers with usable quality and speed.</p>
<p>For software development, today's Opus or Sol is plenty. There's no need to keep paying for a top-tier model like Mythos. Even the <a href="https://abalol.xyz/en/posts/presyo-bantay/">free Muse model</a> is enough.</p>
<h2>Locking you in with conditions and ecosystems</h2>
<p>Since no one can hold customers with a model alone, the companies are trying other ways.</p>
<p>One is the conditional discount. The Information's article says OpenAI also offered a discount to online learning company DataCamp. In <a href="https://x.com/amir/status/2114028199567118499">a screenshot of the article posted by The Information's Amir Efrati</a>, one line reads &quot;...use Codex rather than a competing tool like OpenCode or Claude Code.&quot; The sentence is cut off, but it appears the discount was tied to using Codex, OpenAI's AI coding tool.</p>
<p>The other is the ecosystem. OpenAI launched <a href="https://openai.com/daybreak/">Daybreak</a>, which works with Codex to find security holes in your code and prepare fixes. Always-on AI has arrived too: OpenAI's <a href="https://openai.com/index/introducing-dots/">Dots</a> (autonomous agents that keep working 24/7 on their own cloud computer) and Anthropic's <a href="https://www.theverge.com/ai-artificial-intelligence/1015843/anthropic-claude-duet-ai-agent">Claude Duet</a> (an agent that sends a morning brief and handles tasks in the background).</p>
<h2>I split them by direction</h2>
<p>To avoid getting tied to one company, I divide my AI by which way the work faces.</p>
<ul>
<li>Inside (actions from Slack and email): OpenAI's Dots</li>
<li>Making things (writing code, creating documents): Claude</li>
<li>Outside (actions on trends from X and the news): Grok Bot</li>
</ul>
<p>No single AI wins in every direction. A conditional discount like DataCamp's is a way of getting you to hand an entire direction over to one company.</p>
<h2>What choosing by cost, speed, and quality got me</h2>
<p>I've long said: choose your model by cost, speed, and quality. Pick each agent for its role on those three, and I'd never be locked in. That was the plan.</p>
<p>But once you've lived with an always-on agent, you can't leave. I split my AI to avoid being locked in by one company, and got locked in by all three.</p>
<p>Claude's Max plan is $200 a month; Grok and OpenAI are $100 each. In the middle of a price war over $2 list prices, I'm paying three companies $400 a month (about ¥62,700, or ₱25,500).</p>
]]></content:encoded>
    </item>
    <item>
      <title>Is an AI Skill a Manual or a Professional&#39;s Judgment? Thoughts on the Agent Skills Donation</title>
      <link>https://abalol.xyz/en/posts/agent-skills-donation/</link>
      <guid isPermaLink="true">https://abalol.xyz/en/posts/agent-skills-donation/</guid>
      <pubDate>Sat, 24 Oct 2026 12:05:00 GMT</pubDate>
      <dc:creator>Tomohiro Owada</dc:creator>
      <category>tech</category>
      <category>ai</category>
      <category>agent-skills</category>
      <description>Anthropic has donated Agent Skills to AAIF, a foundation under the Linux Foundation. It can&#39;t be pure goodwill, and skills aren&#39;t automatically an asset. But I think the answer changes depending on whether you read a skill as an instruction manual or as how a professional behaves.</description>
      <content:encoded><![CDATA[<p><img src="https://abalol.xyz/images/posts/agent-skills-donation/hero-en.png" alt="Cream background with the headline &quot;Is an AI Skill a Manual, or a Pro&#39;s Judgment? On the Agent Skills Donation&quot; and line drawings of a folder holding a checklist, a code editor and a hand holding chalk" width="1200" height="630"></p><p>Anthropic, the company behind Claude, has donated Agent Skills, a standard for teaching AI how to do a job, to an industry foundation. There has to be strategy behind that, not just goodwill. And if you asked me whether skills are an asset, I couldn't say yes right away. But I think the answer changes depending on whether you read a skill as an instruction manual or as how a professional behaves.</p>
<h2>Agent Skills moves to a foundation</h2>
<p>On October 22, Anthropic <a href="https://www.anthropic.com/news/donating-agent-skills-to-the-agentic-ai-foundation">announced</a> that it had donated Agent Skills to the Agentic AI Foundation (AAIF). AAIF sits under the Linux Foundation, the nonprofit that supports open-source projects such as Linux. The donation covers the standard itself, its name and logo, the GitHub organization, and the agentskills.io domain.</p>
<p>AAIF was <a href="https://www.linuxfoundation.org/press/linux-foundation-announces-the-formation-of-the-agentic-ai-foundation">launched</a> in December 2025, led by three companies: Anthropic, Block and OpenAI. Its first three projects were MCP (Model Context Protocol), a standard for connecting AI to outside tools and data; Block's goose; and OpenAI's AGENTS.md. On the same day, OpenAI, Hugging Face and Alibaba each donated projects as well, bringing AAIF to <a href="https://aaif.io/news/agentic-ai-foundation-announces-four-new-projects">10 projects</a>.</p>
<p>According to a <a href="https://x.com/ClaudeDevs/status/2113328528536305718">post</a> from ClaudeDevs, Anthropic's developer account, Agent Skills will now be run by a technical steering committee of engineers from Anthropic, Earendil (Pi), Google, Microsoft, OpenAI and OpenCode. OpenCode is the team behind opencode, the tool I have writing my code every day.</p>
<h2>Inside, a skill is just a folder and some Markdown</h2>
<p>The <a href="https://agentskills.io/specification">specification</a> shows how simple skills really are. One skill is one folder, and inside it sits a Markdown file called SKILL.md. The file opens with frontmatter (settings written at the very top of a file), and two fields are required: <code>name</code> and <code>description</code> (what the skill does and when to use it).</p>
<p>The AI first loads only the name and description of every skill. It reads a skill's body once it decides to use it, and the attached scripts or reference files only when it actually needs them. The initial load is about 100 tokens per skill (tokens are the units AI uses to count text).</p>
<p>According to Anthropic, Agent Skills grew out of building Claude Code, Anthropic's AI coding tool. It was released in October 2025 and spun out as an open standard in December. More than 70 services now support it, including ChatGPT, Cursor, GitHub Copilot and VS Code, and there are reportedly 1 million published skills and about 280 million installs. Boris Cherny, the creator of Claude Code, also <a href="https://x.com/bcherny/status/2113333859907747871">wrote</a> that it started as an experiment in Claude Code.</p>
<h2>It can't be pure goodwill</h2>
<p>So why give it away? Even if there is goodwill on their side right now, I can't believe there's no strategy behind it.</p>
<p>On June 1, Anthropic confidentially <a href="https://www.anthropic.com/news/confidential-draft-s1-sec">submitted</a> a draft registration statement for an IPO (initial public offering) to the SEC (the U.S. Securities and Exchange Commission). It has also been <a href="https://www.ifre.com/equities/2499407/anthropic-pushes-ahead-with-mid-november-ipo">reported</a> to be aiming for a listing in mid-November. Right in that window, it moved a widely used standard outside the company. I can't tell exactly what it's after, but I don't think the timing is a coincidence either.</p>
<h2>Are skills an asset?</h2>
<p>For those of us who use them, then, are skills an asset? Honestly, it's a tough call. Skills need maintenance of their own, so they aren't necessarily an asset. Some of them will also become unnecessary as models evolve.</p>
<h2>A manual, or how a professional behaves</h2>
<p>This is where I realized the story splits in two, depending on whether you read a skill as an instruction manual or as how a professional behaves.</p>
<p>Read as a manual, a skill is know-how like &quot;do this task with this command, in this order.&quot; The smarter models get, the more of this they can do on their own without being told. These are the skills that will eventually become unnecessary.</p>
<p>Read as how a professional behaves, a skill becomes a set of judgment calls: what to care about, and what never to do. That is specific to a person or a situation, so no matter how far models evolve, they have no way of knowing it by themselves. And behavior changes when the person or the situation changes. Needing maintenance stops being a flaw and becomes simply natural.</p>
<h2>The skill that was watching this post</h2>
<p>As it happens, the posts on this blog are checked by an AI using a skill, too. It's a SKILL.md of about 40 lines called <code>blog-post-review</code>, with <code>name</code> and <code>description</code> at the top, the same shape as the Agent Skills spec.</p>
<p>Yet there's hardly anything in it you could call a procedure. What it holds is my rules: never write <em>ketsuron kara iu to</em> (&quot;let me start with the conclusion&quot;), never name my employer, end with a real punchline. Every one of them is something I rejected in posts the AI had written.</p>
<p>This post went through that skill before it was published as well. It doesn't open with &quot;let me start with the conclusion&quot; and it ends with a punchline like this one, because that's what the skill says. No matter how smart the next model is, it will never figure out by itself how much I hate &quot;let me start with the conclusion.&quot;</p>
]]></content:encoded>
    </item>
    <item>
      <title>Let AI Replace Engineers. The Real Job Was Never the Code</title>
      <link>https://abalol.xyz/en/posts/ai-engineer-joy/</link>
      <guid isPermaLink="true">https://abalol.xyz/en/posts/ai-engineer-joy/</guid>
      <pubDate>Sat, 24 Oct 2026 10:56:00 GMT</pubDate>
      <dc:creator>Tomohiro Owada</dc:creator>
      <category>tech</category>
      <category>ai</category>
      <category>engineering</category>
      <description>I think it&#39;s fine for engineers to be replaced by AI. An engineer&#39;s essence isn&#39;t in the program, and neither building systems nor running them is the essence of my work. While having AI write all of my code, I came to think the real job is solving someone&#39;s problem.</description>
      <content:encoded><![CDATA[<p><img src="https://abalol.xyz/images/posts/ai-engineer-joy/hero-en.png" alt="Cream background with the headline &quot;Let AI Replace Engineers. The Real Job Was Never the Code&quot; and line drawings of a blackboard with a wavy line and a question mark, a code editor and a hand holding chalk" width="1200" height="630"></p><p>I think it's fine for engineers to be replaced by AI. Writing programs isn't the essence of my job, and neither is building systems or running and maintaining them. The essence is solving someone's worries and problems. Recently on X, I came across a harsh criticism: people who write programs with AI will never know &quot;the pride of coming up with a solution yourself.&quot; Part of me agrees. Even so, I have AI write all of my code.</p>
<h2>&quot;You'll never know the pride of figuring it out yourself&quot;</h2>
<p>It started with a post by an X user, @sammycore333. In a post on September 24, they wrote, in essence, that people who rely on AI or vibe coding (giving AI loose, gut-feel instructions and letting it write the code) will never know the pride and satisfaction of working out how to solve a problem themselves. It had 10,460 likes (<a href="https://x.com/sammycore333/status/2103255935426985985">original post</a>; the language is pretty rough, so I'm only sharing the gist here).</p>
<h2>A child drilled on formulas</h2>
<p>Watching this debate reminded me of something a mathematician said that I'd seen on X a while back. I don't remember who it was, but the point was that AI solving hard math problems is like drilling formulas and methods into a child: it robs them of the joy of discovering for themselves why things work.</p>
<p>I think that's exactly right.</p>
<p>And something close to that is already happening in math. According to a summary on X, on October 6 OpenAI released 722 math manuscripts written by AI. They covered 372 families of open problems, and 16 of those were problems that Hugo Duminil-Copin, who won the Fields Medal (often called the Nobel Prize of mathematics) in 2022, had been publicly working on. The same summary reported that he was shocked, teared up, and said his research field had been wiped out (<a href="https://x.com/i/trending/2109558077477298638">X summary</a>).</p>
<h2>I'm not the one typing anymore</h2>
<p>Yet I stepped away from the keyboard a long time ago.</p>
<p><a href="https://abalol.xyz/en/posts/presyo-bantay/">Presyo Bantay</a>, which I released the other day, is a site that reads price PDFs from the Philippine Department of Agriculture and lets you follow market price trends in your browser. I didn't write a single line of its code. I set the spec, reviewed the work and ran the tests. All of the code was written by a model called Muse in opencode (a tool that has AI write code for you).</p>
<p>So I don't push back on the idea that engineers won't be needed anymore. I don't mind if the profession called &quot;engineer&quot; disappears someday. But that argument only holds if you see engineers as people who just do the hands-on work.</p>
<h2>People with ideas, and people with the means</h2>
<p>I believe the biggest joy in business comes when you figure out how to solve a problem in society, or the worry or trouble of someone right in front of you. It's exactly the same joy as finding the method in math, or cracking a hard problem.</p>
<p>To me, a program is only the working-out of the proof, not the proof or the solution itself. The people who had the skills to turn a solution into something real just happened to be software engineers.</p>
<p>The people who have ideas and the people who have the means to make them real aren't always the same people. That's exactly why business works.</p>
<p>If AI ends up solving everything, that's fine by me. But acting as if you made something that AI made is just absurd.</p>
<p>People who wrote programs only because the pay was good, or because they happened to have a knack for it, probably weren't that important in business to begin with.</p>
<p>Even if the world no longer needs humans who write programs, and AI can handle everything right down to operations and maintenance, I want to be useful to someone. I want to be the kind of person who can solve people's worries and problems.</p>
<p>I'll keep learning new things to solve new problems, and keep building new things together with AI.</p>
]]></content:encoded>
    </item>
    <item>
      <title>The Philippine Central Bank Hiked Rates, and the Peso Hit a Record Low the Same Day (Oct 22)</title>
      <link>https://abalol.xyz/en/posts/peso-record-low/</link>
      <guid isPermaLink="true">https://abalol.xyz/en/posts/peso-record-low/</guid>
      <pubDate>Sat, 24 Oct 2026 09:59:30 GMT</pubDate>
      <dc:creator>Tomohiro Owada</dc:creator>
      <category>philippines</category>
      <category>life</category>
      <category>fx</category>
      <category>peso</category>
      <category>inflation</category>
      <category>bsp</category>
      <description>On October 22, the day the BSP (the Philippine central bank) raised rates by 0.5 points, the peso hit a record low of 63.52 to the dollar while the yen climbed to ₱4,044 per ¥10,000. What it means for currency exchange and prices when you earn in yen and live in pesos.</description>
      <content:encoded><![CDATA[<p><img src="https://abalol.xyz/images/posts/peso-record-low/hero-en.png" alt="Light gray background with the headline &quot;The Central Bank Hiked, and the Peso Hit a Record Low (Oct 22)&quot; and a red line chart trending down to the right" width="1200" height="630"></p><p>I take on remote work from a Japanese company, so I earn in yen and live on Philippine pesos. That makes the yen-peso rate the number I care about most every morning. On October 22, that rate moved in a strange way.</p>
<h2>Rate hike day</h2>
<p>On October 22, the BSP (Bangko Sentral ng Pilipinas, the Philippine central bank) raised its policy rate (the benchmark interest rate a central bank sets) by 0.5 percentage points to 5.5%. Apparently it was a bigger hike than the market had expected.</p>
<p>Normally, raising interest rates makes a country's currency more attractive to buy. With prices rising in the Philippines right now, it should also have been a move that helps stop the peso's slide.</p>
<h2>The peso still hit a record low</h2>
<p>Yet that day the peso closed at 63.52 to the dollar, a new record low. During trading it sank as far as 63.545 (<a href="https://business.inquirer.net/617362/peso-extends-losses-falls-past-63-51">Inquirer</a>). It broke the record low it had set only the day before.</p>
<p>According to the article, there were two main reasons:</p>
<ul>
<li>After U.S. inflation data, expectations grew that the Fed (the U.S. central bank) would raise rates again, and investors bought dollars</li>
<li>Oil prices rose because of the conflict in the Middle East, and the Philippines, which relies on imports, needs more dollars</li>
</ul>
<p>Even a 0.5-point hike couldn't stop the strong-dollar trend.</p>
<p>The yen, meanwhile, went the other way and was bought. A sell-off in AI-related stocks strengthened the risk-off mood and drove demand for the yen as a safe-haven currency, and falling U.S. interest rates narrowed the gap between Japanese and U.S. rates (<a href="https://www.fxstreet.com/news/japanese-yen-surges-as-risk-off-mood-drives-safe-haven-demand-202610221555">FXStreet</a>). By the ECB (European Central Bank) reference rate, October 22 came in at ¥10,000 = ₱4,044 (¥1 = ₱0.4044), the strongest the yen had been in a month (<a href="https://api.frankfurter.dev/v1/2026-10-22?from=USD&amp;to=PHP,JPY">Frankfurter/ECB</a>). A month earlier, on September 22, it was ¥10,000 = ₱3,974, so the same ¥10,000 now gets you about ₱70 more.</p>
<p>For someone who earns in yen and lives in pesos, a weak peso and a strong yen on the same day made it a great day to exchange money.</p>
<h2>But prices are rising</h2>
<p>I can't just celebrate, though. According to the PSA (Philippine Statistics Authority), September's CPI (consumer price index) was up 7.2% year on year, and rice was up 20.3% (<a href="https://psa.gov.ph/price-indices/cpi-ir">PSA</a>).</p>
<p>A weak peso feeds straight into the prices of anything that depends on imports.</p>
<ul>
<li>Meralco (the electric utility serving Metro Manila) raised its October rate to ₱15.06 per kWh. For a household using 200 kWh, that's about ₱64 more a month. Meralco itself lists the weak peso as one of the reasons for the increase (<a href="https://company.meralco.com.ph/news-and-advisories/higher-residential-rates-october-2026">Meralco</a>)</li>
<li>LPG (bottled propane gas for home use) went up by as much as ₱190.60 per 11 kg tank in October, according to the Department of Energy (<a href="https://doe.gov.ph/liquid-fuels-and-lpg-price-adjustments-for-6-13-october-2026">DOE</a>)</li>
</ul>
<p>When you get paid in yen and convert to pesos, a weak peso means more money in your pocket. But the weak peso is also pushing up prices here, and I buy rice and use electricity here too. Getting to exchange on a strong-yen day isn't something I can celebrate without reservation.</p>
<h2>Where the gains end up</h2>
<p>On the day the central bank raised rates to defend its currency, the peso hit a record low, and the one who came out ahead was me, earning in yen. That's ₱70 more per ¥10,000 than a month earlier, but the weak peso is also listed among Meralco's reasons for raising its rates. For a household using 200 kWh, ₱64 of that goes straight back to Meralco as the electricity bill.</p>
]]></content:encoded>
    </item>
    <item>
      <title>How I Get an Automatic AI News Briefing Every Morning Without Paying for the X API</title>
      <link>https://abalol.xyz/en/posts/x-api-free-ai-news/</link>
      <guid isPermaLink="true">https://abalol.xyz/en/posts/x-api-free-ai-news/</guid>
      <pubDate>Sat, 24 Oct 2026 09:59:00 GMT</pubDate>
      <dc:creator>Tomohiro Owada</dc:creator>
      <category>tech</category>
      <category>ai-agents</category>
      <category>x-api</category>
      <category>grok-bot</category>
      <category>automation</category>
      <description>Without the paid X API, I get an AI news briefing delivered automatically every morning at 7:17, using the free public-post reads built into Grok Bot (up to 30 per minute and 1,000 per day). Here&#39;s how it works and the limits I ran into.</description>
      <content:encoded><![CDATA[<p><img src="https://abalol.xyz/images/posts/x-api-free-ai-news/hero-en.png" alt="Navy background with the headline &quot;An Automatic AI News Briefing Every Morning, Without the Paid X API&quot; and line drawings of a rising sun and a newspaper" width="1200" height="630"></p><p>It turns out you can get a morning AI news briefing built automatically every day without the paid X API (X's official way for programs to read its data). What I use is the free public-post reading built into the AI assistant Grok Bot, capped at 30 reads per minute and 1,000 per day. One morning briefing uses somewhere between a dozen or so and 25 reads, nowhere near the limit.</p>
<h2>I just wanted the AI trends</h2>
<p>You can follow most AI news by keeping an eye on X. But reading X myself is a chore, and all I want is the AI-related trends. So I set up a system that collects public posts from X every morning and delivers them to me as an &quot;AI news morning edition.&quot; It has run every day since the morning of October 16.</p>
<h2>A two-part briefing every morning at 7:17</h2>
<p>The scheduled job runs every morning at 7:17 (Manila time). It covers roughly the 24 hours since the previous morning, searching across changing topics, removing duplicates and summarizing. Each run uses a dozen or so to 25 reads, far below the limit.</p>
<p>At first I only asked for the small news. Big announcements reach me through other channels anyway, so I wanted full coverage of smaller tools, papers, OSS (software published for anyone to use) and things developers have discovered. But I found I wanted the major news too after all, so I switched to a two-part format:</p>
<ul>
<li>Major news comes in a single message</li>
<li>Smaller news gets a one-line parent message, with the full text in its thread</li>
</ul>
<p>There are around 45 to 75 small items a day, so dumping them all into the chat would bury everything. Keeping the parent message to one line and opening the thread only when I want to read turned out to be just right.</p>
<h2>Repeat topics become &quot;follow-ups&quot;</h2>
<p>When you summarize every day, the same topics keep showing up for days in a row. A new model gets announced, and the next day come the benchmark results and the tools adding support for it.</p>
<p>So for topics already covered in earlier editions, only those with new developments now appear, marked as &quot;follow-ups,&quot; and straight repeats are dropped. On days when it drops items that may have been in the previous day's edition, the report says so.</p>
<h2>What I learned</h2>
<h3>I avoided paying for the API</h3>
<p>Just reading public posts, I could run it every day without going through the official API's billing. Against the limit of 1,000 reads a day, one briefing uses about 25 at most.</p>
<h3>Summaries are based only on the post text</h3>
<p>The limitation is that the summaries rely only on the text of the posts and X's news summaries. It doesn't open the linked articles. Many posts are cut off partway, so I need to check fine details like numbers and conditions at the source. Stories based on media reports (say, a company's reported IPO (initial public offering) filing) are summarized just as the post describes them.</p>
<p>That's why I have it put &quot;Summaries based on post text&quot; at the top of the small-news thread every time. Each item links to the original post, so I trace back only the ones that catch my interest.</p>
<h3>Think about duplicates at the topic level</h3>
<p>It's normal for several people to post about the same topic, so duplicates within a single day get merged into one. The hard part is duplicates across days, which you can't judge without remembering what was already covered. Right now it compares against earlier editions and decides based on whether there's something new.</p>
<p>I've asked for full coverage, but crypto promotions and clickbait-style &quot;save this list&quot; posts get left out.</p>
<p>I'm the type who reads even the small news in full, so every morning I open the thread and read it from top to bottom.</p>
<h2>I actually took the long way around</h2>
<p>Written out like this, it sounds like it came together smoothly, but at first I took quite a detour.</p>
<p>My first idea was to search with the official X API. But the X API is now prepaid, with no free tier. Every call eats into prepaid credits, so running dozens of searches every morning would turn straight into a monthly expense. I didn't need any data tied to my own account either, so I wanted to avoid paying X indefinitely just for this.</p>
<p>Next, I tried having an AI agent (an AI that takes instructions and carries out the steps itself) log in to X in its browser and read it. When it entered the email address and pressed &quot;Continue,&quot; nothing happened, not even an error. X seemed to detect an automated environment and block the login. Clicking differently wasn't going to fix that, so I gave up on the browser route.</p>
<p>What I ended up using was the free public-post reading built into Grok Bot. No login, no money. In exchange, there are limits: 30 reads per minute and 1,000 per day.</p>
<p>The first run used 15 searches and collected 54 news items from the last 24 hours. That left 983 reads for the day, plenty of room for one run every morning.</p>
<h2>After an hour-long fight</h2>
<p>Looking back, I spent more than an hour that day wrestling with X's login screen. When I finally grumbled, &quot;I just want to know the AI trends,&quot; the reply was, &quot;If you only need to read public posts, (…) you don't need a login or any money.&quot; The one who should have said that at the start was probably me.</p>
]]></content:encoded>
    </item>
    <item>
      <title>My Japanese ID Card Sat at the Embassy for 2 Months While the Official Tracker Said &quot;Being Issued&quot;</title>
      <link>https://abalol.xyz/en/posts/mynumber-card-abroad/</link>
      <guid isPermaLink="true">https://abalol.xyz/en/posts/mynumber-card-abroad/</guid>
      <pubDate>Sat, 24 Oct 2026 09:58:00 GMT</pubDate>
      <dc:creator>Tomohiro Owada</dc:creator>
      <category>life</category>
      <category>philippines</category>
      <category>mynumber</category>
      <category>overseas-life</category>
      <description>If you live abroad and are waiting for a My Number card (Japan&#39;s national ID card), the official status page can say &quot;being issued&quot; while the card is already at the embassy. How an email to my ward office revealed it had arrived on August 12, and what to check.</description>
      <content:encoded><![CDATA[<p><img src="https://abalol.xyz/images/posts/mynumber-card-abroad/hero-en.png" alt="Light blue background with the headline &quot;My Japanese ID card sat at the embassy for 2 months while the official tracker said &#39;Being Issued&#39;&quot; and icons of a card, an envelope and an airplane" width="1200" height="630"></p><p>The My Number card is Japan's photo ID card, linked to the personal number (&quot;My Number&quot;) that Japan assigns to each resident. If you're picking yours up abroad, the official application status inquiry service can't always be trusted. My card reached the Embassy of Japan in the Philippines on August 12, yet in October the inquiry service still said &quot;My Number card being issued.&quot; If the status hasn't moved after two or three months, emailing the My Number card desk at the ward office of your <em>honseki</em> (your registered domicile in Japan's family register) gets you an answer faster than waiting on the inquiry service.</p>
<h2>From application to radio silence</h2>
<p>I live in the Philippines, and I applied for the version of the My Number card for people who have moved abroad (people who have moved overseas and taken themselves off Japan's resident register). My application was accepted on June 26, and the next day, June 27, it showed &quot;checked, no problems found.&quot;</p>
<p>On July 17, an email arrived from the application processing center saying &quot;the procedure for sending the card to the overseas diplomatic mission (an embassy or consulate abroad) has been completed.&quot; It said detailed pickup instructions would come later from the mission.</p>
<p>Then, for three months, nothing came from the embassy.</p>
<h2>The inquiry service still said &quot;being issued&quot;</h2>
<p>By October I figured this was taking far too long and looked into the status.</p>
<p>Just getting to the inquiry service was a struggle. The link I had wouldn't open properly, and in the end I read the HTML of the official site's FAQ page to find the right address (status.kojinbango-card.go.jp).</p>
<p>When I finally got in, the inquiry service showed:</p>
<ul>
<li>Application received: June 26</li>
<li>Check: June 27 (checked, no problems found)</li>
<li>Status: My Number card being issued</li>
<li>Date shipped: –</li>
</ul>
<p>With the shipping date blank, the natural reading is that the card hadn't shipped yet. That contradicted the July 17 email, and the AI assistant that had looked into it for me apologized: &quot;I misread the July 17 email.&quot;</p>
<h2>The card had been at the embassy since August 12</h2>
<p>Nearly four months of &quot;being issued&quot; after a clean check was clearly too long. So I had my AI assistant send an inquiry email to the My Number card desk at the ward office of my <em>honseki</em>. It went out on the night of October 20, and the reply came the next day, October 21.</p>
<p>Here's what it said:</p>
<ul>
<li>The card has already been issued</li>
<li>It was sent to the Ministry of Foreign Affairs on July 17</li>
<li>It arrived at the Embassy of Japan in the Philippines on August 12</li>
</ul>
<p>The blank shipping date on the inquiry service was apparently just a display that had never been updated. The ward office also said the embassy should have emailed me pickup instructions, but I searched my mailbox, trash included, and found nothing.</p>
<p>I contacted the embassy that same day. The card was there, and I could pick it up without an appointment. It had been waiting at the embassy for more than two months.</p>
<h2>If you're in the same situation</h2>
<ul>
<li>The inquiry service can lag behind what's actually happening</li>
<li>If the status hasn't moved after two or three months, email the My Number card desk at the ward office of your <em>honseki</em>. In my case, the reply came the next day</li>
<li>The embassy's notification email may never reach you, so once the ward office tells you the card is at the embassy, contact the embassy yourself</li>
</ul>
<h2>The one who apologized was the AI</h2>
<p>By the way, the July 17 email had said &quot;the procedure for sending the card to the overseas diplomatic mission has been completed&quot; all along. The AI apologized for misreading the email, but what was wrong wasn't how it read the email. It was the official inquiry service's display.</p>
]]></content:encoded>
    </item>
    <item>
      <title>I Let AI Shop for Nespresso Pods. The Cheapest Flavor Expired in 3 Days</title>
      <link>https://abalol.xyz/en/posts/capsule-expiry/</link>
      <guid isPermaLink="true">https://abalol.xyz/en/posts/capsule-expiry/</guid>
      <pubDate>Sat, 24 Oct 2026 09:57:00 GMT</pubDate>
      <dc:creator>Tomohiro Owada</dc:creator>
      <category>life</category>
      <category>philippines</category>
      <category>ai-agents</category>
      <category>shopping</category>
      <category>nespresso</category>
      <category>lazada</category>
      <description>I let AI handle everything from comparing Nespresso-compatible capsules up to just before checkout, and the cheapest one, Colombia, would have expired before it arrived. Here are the Japan vs. Philippines price comparison and how I split the work when AI shops for me (I type the CVV myself).</description>
      <content:encoded><![CDATA[<p><img src="https://abalol.xyz/images/posts/capsule-expiry/hero-en.png" alt="Beige background with the headline &quot;I Let AI Shop for Nespresso Pods. The Cheapest Flavor Expired in 3 Days&quot; and illustrations of a glass of iced coffee, capsules and a calendar" width="1200" height="630"></p><p>At home I make coffee with Nespresso-style capsules, and what I drink is always an iced Americano. Genuine capsules in the Philippines cost ₱46 a cup, or about 113 yen. Compatible capsules (made by other brands but working in the same machine) are cheaper, so I decided to look for some. While I was at it, I let AI handle everything from the comparison up to just before placing the order.</p>
<h2>Japan or the Philippines?</h2>
<p>First, I had my AI that handles exchange rates compare genuine and compatible capsule prices in Japan and the Philippines. The rate on October 23 was ¥1 = ₱0.4044. For compatible capsules, the Philippine prices come from Lazada (a major Southeast Asian online shopping site) and the Japanese prices from Rakuten (one of Japan's biggest online marketplaces).</p>
<table>
<thead>
<tr>
<th>Type</th>
<th>Philippines</th>
<th>Japan (in ₱)</th>
</tr>
</thead>
<tbody>
<tr>
<td>Genuine Original</td>
<td>₱46</td>
<td>¥102.6 (₱41.5)</td>
</tr>
<tr>
<td>Genuine Vertuo</td>
<td>₱68</td>
<td>¥129.6 (₱52.4)</td>
</tr>
<tr>
<td>Compatible capsules</td>
<td>₱17.9–18.5 (Lazada)</td>
<td>₱16.4 (Rakuten)</td>
</tr>
<tr>
<td>Starbucks (Nespresso-compatible)</td>
<td>₱24.8 (sale price)</td>
<td>₱43.7</td>
</tr>
</tbody>
</table>
<p>Genuine capsules are cheaper in Japan: about 10% less for Original and about 20% less for Vertuo (the line with larger, dome-shaped capsules). Compatible capsules, on the other hand, run ₱16–18 each and cost almost the same on Lazada and Rakuten, so there's little point in buying them from Japan. Starbucks capsules were actually far cheaper in the Philippines.</p>
<h2>Picking B Coffee on Lazada</h2>
<p>I usually drink 100% Arabica coffee, so I narrowed the compatible capsules available on Lazada down to B Coffee. Apparently, both the product page and the official site said every flavor is 100% Arabica.</p>
<p>The first pick for iced Americano was Colombia (Americano). The 20-pack was on sale, which worked out to about 41 yen a cup, just under 40% of the 113 yen for genuine. I decided to buy 60 at once and had the AI take it all the way to the order confirmation screen.</p>
<h2>The cheapest flavor expired in 3 days</h2>
<p>Then, at the confirmation screen, the AI called a time-out. The Colombia option's name literally read &quot;10-27-2026.&quot; It was October 24, and delivery was expected on October 28–29. The coffee would be past its best-before date by the time it arrived.</p>
<p>The 40% discount seems to have been a clearance of stock close to expiry. The low price had a reason.</p>
<p>In the end, I went with two 20-packs of Forte (Ristretto), labeled &quot;New Stocks.&quot; That was the AI's recommendation too: it's 100% Arabica and the strongest flavor meant for drinking black, so it shouldn't taste washed out in an iced Americano as the ice melts. The total came to ₱1,127 (about 2,780 yen) including shipping, about 69 yen a cup. Pricier than the Colombia, but still well below genuine.</p>
<h2>How I split the work with AI</h2>
<p>What I'd decided for this purchase was how much to leave to the AI and where I'd take over.</p>
<ul>
<li>AI: comparing products, building the cart, and clicking through up to the order confirmation screen</li>
<li>Me: checking what's on the confirmation screen and deciding whether to order</li>
<li>Me: entering the card's security code (CVV)</li>
</ul>
<p>When Lazada asked for the CVV at payment, one option was to hand over the whole card number and let the AI type it in. I didn't want to hand over my card number, though, so I had the AI pass me just the CVV entry screen as it was. I typed that part in myself and pressed &quot;Pay Now.&quot; Afterward, the AI checked the order history to confirm the order had gone through.</p>
<p>Comparing and clicking through screens is tedious, so I delegate it. The final push that moves money, and my card details, stay with me. With that split, asking AI to shop for me never means money moving without my knowing.</p>
<p>The expiry problem was caught at the same point, because the flow always showed me the confirmation screen before the order was finalized. Then again, I was the one who decided on &quot;60 of the Colombia&quot; on the spot. If the AI hadn't noticed, 60 cups' worth of expired coffee would have landed at my door.</p>
]]></content:encoded>
    </item>
    <item>
      <title>I Built a Market Price Site Without Writing a Line of Code. The AI Mistook Eggplant for Eggs, and I Nearly Misread a Correlation</title>
      <link>https://abalol.xyz/en/posts/presyo-bantay/</link>
      <guid isPermaLink="true">https://abalol.xyz/en/posts/presyo-bantay/</guid>
      <pubDate>Sat, 24 Oct 2026 09:54:00 GMT</pubDate>
      <dc:creator>Tomohiro Owada</dc:creator>
      <category>tech</category>
      <category>philippines</category>
      <category>presyo-bantay</category>
      <category>ai-agents</category>
      <description>I had AI (opencode and Muse) build Presyo Bantay, a site that turns the Philippine Department of Agriculture (DA) price PDFs into Metro Manila market price charts with USD/PHP correlations, without writing a line of code myself. Imported rice in Las Piñas tracked USD/PHP with a 1–2 week lag at r=+0.92.</description>
      <content:encoded><![CDATA[<p><img src="https://abalol.xyz/images/posts/presyo-bantay/hero-en.png" alt="Headline &quot;I Built a Price Site Without Writing Code. AI Mistook Eggplant for Eggs. I Nearly Misread a Correlation.&quot; with &quot;Presyo Bantay&quot;, a question mark between an eggplant and an egg, and a line chart" width="1200" height="630"></p><p>Today (October 24, 2026), I launched &quot;<a href="https://abalol.xyz/presyo-bantay/">Presyo Bantay</a>&quot; as a nonprofit community project. It's a static site that reads the daily market price PDFs published by the Philippine Department of Agriculture (DA) and lets you see, in your browser, how prices move in Metro Manila markets and how they correlate with USD/PHP (the U.S. dollar to Philippine peso exchange rate). At launch it holds data for 39 markets and 34 items. I didn't write a single line of code; opencode (a tool that has AI write code) and an AI model called Muse wrote all of it. At the Las Piñas market, the price of imported rice moved closely with USD/PHP, with a correlation coefficient of r=+0.92 at a lag of one to two weeks (though there's only about two months of data).</p>
<p>The source is on <a href="https://github.com/tomohiro-owada/presyo-bantay">GitHub</a> (MIT license). Presyo Bantay means something like &quot;price watch&quot; in Tagalog.</p>
<h2>Why I built it</h2>
<p>When you live in the Philippines and work remotely for a Japanese company, prices are not someone else's problem. According to the PSA (Philippine Statistics Authority), inflation in September 2026 was 7.2%, with rice up 20.3% year on year (<a href="https://psa.gov.ph/content/summary-inflation-report-consumer-price-index-2018100-september-2026">PSA</a>).</p>
<p>Meanwhile, the DA <a href="https://www.da.gov.ph/price-monitoring/">publishes prices for each market as PDFs every day</a>. The data exists, but because it's in PDFs, it's hard for ordinary people to chart or compare. I'd been thinking about how I could be useful to the Philippines as an AI engineer, and this was the first thing I took on.</p>
<h2>How it works</h2>
<p>The setup is pretty simple.</p>
<ul>
<li>Fetch the price PDFs from the DA's listing page and read the tables with <code>pdfplumber</code> (a Python library for extracting tables from PDFs)</li>
<li>Store prices by market and item in SQLite (a database that runs from a single file)</li>
<li>Get USD/PHP from the ECB (European Central Bank) reference rates via Frankfurter, a free exchange rate API (1,810 days, from 2019-10-01 to 2026-10-23)</li>
<li>Export JSON for the static site (Vite + TypeScript + uPlot, a charting library) and publish it on GitHub Pages (GitHub's free website hosting)</li>
<li>Run the import every morning at 6:00 (Manila time) on GitHub Actions (GitHub's system for running jobs automatically)</li>
</ul>
<p>On the site you pick an item and a market to see how its price has moved, overlay USD/PHP on the right axis, and calculate the correlation coefficient. The interface switches between Taglish (a mix of Tagalog and English) and English. There's no tracking, no ads, no login and no externally loaded scripts (CDNs) at all. The JS is about 74 KB (about 31 KB gzipped).</p>
<p>At launch, the data runs through 2026-10-23. The listing has 1,892 older PDFs, and I'm importing them a little at a time, with gaps in between so as not to put load on the DA's servers.</p>
<h2>Muse in opencode wrote all the code</h2>
<p>This time I didn't write a single line of code. I set the spec, reviewed the work and ran the tests, nothing more. Every change to code and configuration was written by the Muse model in opencode (<code>opencode-go/muse-spark-1.3-contributor</code>). I picked it for its generous free tier.</p>
<p>I kicked things off in the afternoon with &quot;Let's go big!&quot; and by the end of the day it had gotten this far:</p>
<ol>
<li>A PDF parser (34 markets × 28 items from the Oct 23 PDF)</li>
<li>Storage in SQLite and importing of past data</li>
<li>Normalizing inconsistent item names, importing USD/PHP and calculating correlations</li>
<li>The static site, published on GitHub Pages</li>
</ol>
<p>In the end there were 167 Python tests and 17 site tests, all passing.</p>
<h3>When eggplant counted as eggs</h3>
<p>The first run (about 3 minutes) mostly met the spec, and all 24 tests passed. But when I reviewed it, I found it decided whether something was an egg by checking whether the item name contained &quot;egg.&quot; As a result, <strong>Eggplant was being treated as a per-piece price</strong>, just like eggs.</p>
<p>There was one more problem. The GitHub Actions configuration file (workflow) that runs every day had no write permission (<code>permissions: contents: write</code>), so it could record changes (commit) but would fail when sending them to GitHub (push).</p>
<p>Once I pointed out these two things, the second run (about 2 minutes) fixed them. The unit is now determined by the &quot;*&quot; attached to headings in the PDF, and a test was added to keep it from happening again.</p>
<h3>When it got stuck because it couldn't write to /tmp</h3>
<p>opencode is configured to refuse writes to <code>/tmp</code> (the folder for temporary files), so it stopped when it tried to put working files there. I solved it by creating <code>.scratch/</code> inside the repository as a workspace (already in <code>.gitignore</code>) and telling it to use that.</p>
<p>This reminded me that when you delegate to AI, it's not enough to check whether the tests pass. In review, you need to look at what it's basing its decisions on. The eggplant bug was found with every test passing.</p>
<h2>Moving the importer from Python to Go</h2>
<p>For now, the import part is written in Python. But seeing the recent news about security vulnerabilities, I wanted anything that runs on a server every day to carry as little risk as possible.</p>
<p>So I'm in the middle of rewriting the importer as a single binary (an executable file that runs on its own) in Go, and Muse is writing this too. The plan is to keep dependencies to a minimum, feed it the same PDFs as the current Python version, and compare the results to confirm they're exactly the same. Once that's done, the server will just hold one Go binary run by cron (a scheduler for jobs at set times).</p>
<h2>Next steps</h2>
<ul>
<li>Importing the older PDFs (2019 to early 2025). The format may change again</li>
<li>Moving to the Go version</li>
<li>A weekly Taglish digest (the feature itself is done, and I'm getting ready to post it to Telegram)</li>
</ul>
<p>All numbers are calculated from public DA and ECB data, and actual prices vary from store to store. It's an unofficial nonprofit project, so I'd be glad if you just take a look.</p>
<h2>Prices in Las Piñas vs. USD/PHP</h2>
<p>Finally, I calculated the correlation between prices and USD/PHP at the market in Las Piñas, where I live (New Las Piñas City Public Market). I used Pearson's correlation coefficient r, which ranges from −1 to +1: the closer to +1, the more two things move in the same direction, and the closer to −1, the more they move in opposite directions. I paired the price on day <em>d</em> with the exchange rate from a lag (the number of days shifted) before <em>d</em>.</p>
<p>On the evening of October 24, with the import of past data only partly done, the results looked like this:</p>
<table>
<thead>
<tr>
<th>Item</th>
<th>r</th>
<th>Note</th>
</tr>
</thead>
<tbody>
<tr>
<td>Imported rice (Premium Rice, Imported)</td>
<td>+0.92 (lag 7–14 days)</td>
<td>Only 59 days since 8/18, so treat as a rough figure</td>
</tr>
<tr>
<td>Galunggong (round scad, an everyday fish related to horse mackerel)</td>
<td>+0.70</td>
<td></td>
</tr>
<tr>
<td>Red onion</td>
<td>−0.31</td>
<td>Looks mostly unrelated</td>
</tr>
</tbody>
</table>
<p>Imported rice seems to go up one to two weeks after the peso weakens. However, imported rice for Las Piñas doesn't appear at all in PDFs before 2026-08-18. With only two months of data, during which both the weak peso and rising rice prices kept going, it's entirely possible they just happened to move in the same direction.</p>
<h2>The table went stale while I was writing</h2>
<p>As it turns out, this table went out of date while I was writing this post.</p>
<p>After more of the past data was imported, I reran the same calculation. Imported rice stayed at r=+0.92 for both the 7-day and 14-day lags (n=58, where n is the number of days compared), but Galunggong dropped from +0.70 to around +0.39 (n=178), and red onion went from −0.31 to around −0.48 (n=309). The red onion I'd called &quot;mostly unrelated&quot; now had a larger absolute value than Galunggong.</p>
<h2>The one reading too much into it was me</h2>
<p>With the eggplant bug, I wrote that it's important to check in review what the AI is basing its decisions on. Yet the one reading too much into numbers from incomplete data was me, not the AI. <strong>Correlation is not causation.</strong> A high r only means &quot;they moved in the same direction during this period&quot;; it doesn't mean the exchange rate made prices move. Showing r, n and a &quot;correlation is not causation&quot; note on the site's correlation panel turned out to be the right call.</p>
<p>Since I didn't write a single line of code, the only one who nearly got something wrong in this post was me. Presyo Bantay's first job as a price watch was keeping an eye on the person who built it.</p>
]]></content:encoded>
    </item>
  </channel>
</rss>
