<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Fungal Intelligence for Stocks: Data and Research Infrastructure]]></title><description><![CDATA[Explore the financial-data foundation behind the system, including raw filings, missing information, currency conversion, point-in-time controls, and the data errors that can manufacture fake investment opportunities.]]></description><link>https://fungalstockecosystem.substack.com/s/data-and-research-infrastructure</link><image><url>https://substackcdn.com/image/fetch/$s_!rkRL!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d61237e-1721-4509-ad0a-3e65f67831d2_1254x1254.png</url><title>Fungal Intelligence for Stocks: Data and Research Infrastructure</title><link>https://fungalstockecosystem.substack.com/s/data-and-research-infrastructure</link></image><generator>Substack</generator><lastBuildDate>Thu, 30 Jul 2026 09:27:34 GMT</lastBuildDate><atom:link href="https://fungalstockecosystem.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Kevin Olson]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[fungalstockecosystem@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[fungalstockecosystem@substack.com]]></itunes:email><itunes:name><![CDATA[Fungal Stock Ecosystem ML]]></itunes:name></itunes:owner><itunes:author><![CDATA[Fungal Stock Ecosystem ML]]></itunes:author><googleplay:owner><![CDATA[fungalstockecosystem@substack.com]]></googleplay:owner><googleplay:email><![CDATA[fungalstockecosystem@substack.com]]></googleplay:email><googleplay:author><![CDATA[Fungal Stock Ecosystem ML]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Why Currency Conversion Matters in Global Backtesting]]></title><description><![CDATA[A foreign stock can rise in its home market while losing money for the investor who owns it.]]></description><link>https://fungalstockecosystem.substack.com/p/why-currency-conversion-matters-in</link><guid isPermaLink="false">https://fungalstockecosystem.substack.com/p/why-currency-conversion-matters-in</guid><dc:creator><![CDATA[Fungal Stock Ecosystem ML]]></dc:creator><pubDate>Mon, 13 Jul 2026 10:46:44 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!SLf0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26622a58-293e-42bd-b7b0-39f211ca032a_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!SLf0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26622a58-293e-42bd-b7b0-39f211ca032a_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SLf0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26622a58-293e-42bd-b7b0-39f211ca032a_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!SLf0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26622a58-293e-42bd-b7b0-39f211ca032a_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!SLf0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26622a58-293e-42bd-b7b0-39f211ca032a_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!SLf0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26622a58-293e-42bd-b7b0-39f211ca032a_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!SLf0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26622a58-293e-42bd-b7b0-39f211ca032a_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/26622a58-293e-42bd-b7b0-39f211ca032a_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1452671,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://fungalstockecosystem.substack.com/i/206824070?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26622a58-293e-42bd-b7b0-39f211ca032a_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!SLf0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26622a58-293e-42bd-b7b0-39f211ca032a_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!SLf0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26622a58-293e-42bd-b7b0-39f211ca032a_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!SLf0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26622a58-293e-42bd-b7b0-39f211ca032a_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!SLf0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26622a58-293e-42bd-b7b0-39f211ca032a_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The company may perform well.</p><p>Its local share price may increase.</p><p>But if the company&#8217;s currency falls far enough against the investor&#8217;s home currency, the final return can shrink&#8212;or disappear entirely.</p><p>The reverse can also happen.</p><p>A mediocre local return can become attractive because the foreign currency strengthened.</p><p>This is why a global backtest cannot simply collect stock prices from several countries and place them into one portfolio.</p><p>Every return must eventually be expressed in a common currency.</p><p>Otherwise, the portfolio may report profits that no investor actually earned.</p><h2>A stock has more than one return</h2><p>Suppose a Canadian investor buys a German stock.</p><p>The stock rises by 12% in euros.</p><p>That is the local-market return.</p><p>But the investor began with Canadian dollars and eventually wants the investment measured in Canadian dollars.</p><p>During the holding period, the euro may strengthen or weaken against the Canadian dollar.</p><p>The investor&#8217;s result therefore depends on two movements:</p><ol><li><p>The stock&#8217;s return in euros</p></li><li><p>The euro&#8217;s movement against the Canadian dollar</p></li></ol><p>The stock and the currency work together.</p><p>A global investment is not merely ownership of a foreign business.</p><p>It also creates currency exposure.</p><h2>A simple example</h2><p>Imagine a stock begins at &#8364;100 and ends at &#8364;110.</p><p>The local return is 10%.</p><p>At the beginning, suppose one euro is worth $1.50 Canadian.</p><p>The investment begins with a Canadian-dollar value of:</p><p>&#8364;100 &#215; $1.50 = $150</p><p>By the end, suppose the euro has weakened to $1.30 Canadian.</p><p>The final Canadian-dollar value becomes:</p><p>&#8364;110 &#215; $1.30 = $143</p><p>The company&#8217;s stock rose by 10% in its home market.</p><p>The Canadian investor lost about 4.7%.</p><p>Nothing is wrong with the company&#8217;s local price history.</p><p>The missing piece is the currency conversion.</p><h2>Currency can also improve the result</h2><p>Now imagine the same stock rises from &#8364;100 to &#8364;110, but the euro strengthens from $1.50 Canadian to $1.65.</p><p>The final value becomes:</p><p>&#8364;110 &#215; $1.65 = $181.50</p><p>The investor&#8217;s Canadian-dollar return is 21%.</p><p>The stock contributed 10%.</p><p>Currency movement added the rest.</p><p>This does not mean the investor intentionally made a currency forecast.</p><p>The exposure appeared automatically when the foreign asset was purchased.</p><h2>Local returns are still useful</h2><p>A stock&#8217;s native-currency return tells us something important.</p><p>It reflects how the company was valued in its local market.</p><p>It allows comparisons with domestic competitors.</p><p>It helps separate company performance from currency movement.</p><p>But local returns do not represent the complete experience of a foreign investor.</p><p>A proper system may therefore preserve both:</p><ul><li><p>The native-currency stock return</p></li><li><p>The portfolio-currency return</p></li></ul><p>The first helps analyze the business and its local market.</p><p>The second tells us what the investor actually earned.</p><h2>One portfolio needs one measuring unit</h2><p>A global portfolio may contain companies trading in:</p><ul><li><p>U.S. dollars</p></li><li><p>Canadian dollars</p></li><li><p>British pounds</p></li><li><p>Australian dollars</p></li><li><p>Euros</p></li><li><p>Other currencies</p></li></ul><p>These values cannot be added directly.</p><p>A $1,000 position, a &#163;1,000 position, and a &#8364;1,000 position do not represent the same amount of capital.</p><p>Before measuring portfolio weights or returns, the values must be converted into a shared unit.</p><p>This is similar to measuring a building.</p><p>One worker reports centimetres.</p><p>Another reports inches.</p><p>Another reports metres.</p><p>The measurements may all be correct individually.</p><p>Adding them without conversion produces nonsense.</p><p>A portfolio requires a common financial language.</p><h2>Trading currency and reporting currency may differ</h2><p>Currency problems become more complicated because a company can involve several currencies at once.</p><p>A business may:</p><ul><li><p>Trade in one currency</p></li><li><p>Report financial statements in another</p></li><li><p>Earn revenue across several currencies</p></li><li><p>Be evaluated by an investor using a third currency</p></li></ul><p>For example, a company may trade in London while earning most of its revenue in U.S. dollars.</p><p>Another may trade in Canada while reporting certain operating results in U.S. dollars.</p><p>The ticker&#8217;s exchange does not always tell us the complete economic exposure.</p><p>The system must distinguish among:</p><ul><li><p>Trading currency</p></li><li><p>Financial-statement currency</p></li><li><p>Operational currency exposure</p></li><li><p>Portfolio reporting currency</p></li></ul><p>These are related but different concepts.</p><h2>Financial ratios also require currency consistency</h2><p>Currency conversion is not only a return problem.</p><p>It affects valuation.</p><p>Suppose a company&#8217;s market capitalization is calculated in Canadian dollars while its free cash flow remains in U.S. dollars.</p><p>Dividing one by the other produces a number.</p><p>That number has no valid economic interpretation.</p><p>Before calculating ratios such as price to free cash flow, the numerator and denominator must use compatible units.</p><p>This applies to:</p><ul><li><p>Market value and earnings</p></li><li><p>Enterprise value and operating profit</p></li><li><p>Price and book value</p></li><li><p>Debt and cash flow</p></li><li><p>Portfolio value and position size</p></li></ul><p>A clean ratio requires more than the correct formula.</p><p>Its ingredients must speak the same currency.</p><p>This is one way apparently attractive opportunities can be manufactured by a broken pipeline:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;bd27d296-f1e2-45e1-a5f9-893bab2e7582&quot;,&quot;caption&quot;:&quot;Its earnings may be attached to the wrong share price.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;How Bad Financial Data Creates Fake Investment Opportunities&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:522095337,&quot;name&quot;:&quot;FungalStockEcosystem&quot;,&quot;bio&quot;:&quot;I&#8217;m building an machine learning investing ecosystem inspired by Earth. Companies are trees, data is fruit, animals analyze businesses, and fungal intelligence allocates capital adapting across changing environments.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/db8a58c8-9d8b-4ba4-89ce-0a214b43e88a_1254x1254.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-07-13T09:48:20.912Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!P5FL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6519aa0e-3ea3-4abc-9258-7e1f277d693a_1536x1024.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://fungalstockecosystem.substack.com/p/how-bad-financial-data-creates-fake&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:206818269,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:9630735,&quot;publication_name&quot;:&quot;Fungal Intelligence for Stocks&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!rkRL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d61237e-1721-4509-ad0a-3e65f67831d2_1254x1254.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>A currency mismatch can make a normal company look extraordinarily cheap or absurdly expensive.</p><h2>Pounds and pence are not the same unit</h2><p>Some markets create an additional complication.</p><p>A stock listed in London may be quoted in pence rather than pounds.</p><p>One pound contains one hundred pence.</p><p>A displayed stock price of 250 may mean 250 pence, or &#163;2.50.</p><p>If a database interprets the number as &#163;250, the stock becomes one hundred times more expensive than it really is.</p><p>If the opposite error occurs, the company may appear one hundred times cheaper.</p><p>This is not an exchange-rate problem in the usual sense.</p><p>It is a unit problem inside the currency.</p><p>A robust database must track both:</p><ul><li><p>Currency</p></li><li><p>Quotation unit</p></li></ul><p>&#8220;GBP&#8221; and &#8220;GBX&#8221; cannot be treated as interchangeable without conversion.</p><h2>Currency errors often create extreme results</h2><p>A currency mismatch can produce valuation ratios that look almost impossible.</p><p>That is exactly why the error can attract attention.</p><p>A company may appear to have:</p><ul><li><p>A price-to-earnings ratio below 1</p></li><li><p>A free-cash-flow yield above 100%</p></li><li><p>A market capitalization smaller than one quarter&#8217;s profit</p></li><li><p>A sudden historical collapse or explosion in value</p></li></ul><p>These results can look like extraordinary opportunities.</p><p>They should first be treated as validation failures.</p><p>Extreme numbers are often evidence that the system should inspect:</p><ul><li><p>Currency</p></li><li><p>Units</p></li><li><p>Share count</p></li><li><p>Corporate actions</p></li><li><p>Reporting period</p></li><li><p>Company identity</p></li></ul><p>The strongest apparent bargain may be the record most urgently requiring repair.</p><h2>The exchange rate must match the date</h2><p>Using the correct currency pair is not enough.</p><p>The system also needs the correct exchange rate for the relevant date.</p><p>Suppose a historical portfolio buys a German stock on March 31, 2018.</p><p>Using today&#8217;s euro exchange rate to convert that purchase would rewrite the historical transaction.</p><p>The correct rate should correspond to the investment date&#8212;or to a documented nearby date when markets were open.</p><p>The same principle applies when:</p><ul><li><p>Calculating entry value</p></li><li><p>Calculating exit value</p></li><li><p>Measuring daily portfolio value</p></li><li><p>Converting financial statements</p></li><li><p>Calculating position sizes</p></li><li><p>Rebalancing the portfolio</p></li></ul><p>A point-in-time backtest needs point-in-time currency information.</p><h2>Missing FX dates create hidden assumptions</h2><p>Stock markets and currency markets do not always share identical calendars.</p><p>A stock exchange may be closed while the currency still trades.</p><p>A currency data source may omit a holiday.</p><p>A financial statement may use a weekend period-end date.</p><p>The system may therefore need a rule for missing exchange-rate dates.</p><p>Possible approaches include:</p><ul><li><p>Use the most recent prior available rate</p></li><li><p>Use the next available rate</p></li><li><p>Use a monthly average</p></li><li><p>Reject the calculation until an exact rate exists</p></li></ul><p>Each approach has consequences.</p><p>The important thing is not pretending that no decision was made.</p><p>The policy should be documented and applied consistently.</p><p>A silent fill can create point-in-time errors that are difficult to detect later.</p><h2>Monthly averages and daily rates answer different questions</h2><p>A company&#8217;s annual financial statements may reasonably be translated using an average exchange rate for flows such as revenue or expenses.</p><p>A balance-sheet item may be translated using the rate on the reporting date.</p><p>A stock transaction should usually use the rate available on the transaction date.</p><p>These are different conversion problems.</p><p>Revenue accumulated throughout a year.</p><p>Cash on the balance sheet existed at one point in time.</p><p>A stock was purchased on a specific date.</p><p>Using one universal exchange rate for every purpose may simplify the database while distorting the economics.</p><p>The conversion rule should match the type of value being converted.</p><h2>Currency conversion must not create look-ahead bias</h2><p>Suppose an exchange-rate series is revised later.</p><p>Or a monthly average is calculated using the entire month, including days after the simulated investment decision.</p><p>The backtest may quietly receive future currency information.</p><p>This can matter when the strategy uses converted financial metrics for ranking.</p><p>If a company&#8217;s valuation is calculated using an exchange rate unavailable on the decision date, the historical screen is no longer honest.</p><p>The same point-in-time discipline applied to financial filings must also apply to FX data.</p><p>Otherwise, the backtest may know more than the investor could have known.</p><p>This is one reason impressive historical results require careful skepticism:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;b492d037-e72d-469c-a4ad-89790cf056e4&quot;,&quot;caption&quot;:&quot;The chart rises smoothly. Losses appear manageable. The strategy beats the market year after year.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;A Great Backtest Can Be Completely Useless&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:522095337,&quot;name&quot;:&quot;FungalStockEcosystem&quot;,&quot;bio&quot;:&quot;I&#8217;m building an machine learning investing ecosystem inspired by Earth. Companies are trees, data is fruit, animals analyze businesses, and fungal intelligence allocates capital adapting across changing environments.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/db8a58c8-9d8b-4ba4-89ce-0a214b43e88a_1254x1254.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-07-13T04:09:35.042Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!u23h!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6774b1ad-59cd-490b-bd65-585c5ffc0cf2_1536x1024.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://fungalstockecosystem.substack.com/p/a-great-backtest-can-be-completely&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:206790493,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:9630735,&quot;publication_name&quot;:&quot;Fungal Intelligence for Stocks&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!rkRL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d61237e-1721-4509-ad0a-3e65f67831d2_1254x1254.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>A correct formula applied with future currency information still produces an invalid test.</p><h2>Currency affects position sizing</h2><p>Suppose the portfolio intends to allocate $10,000 Canadian to each of ten holdings.</p><p>One stock trades in U.S. dollars.</p><p>Another trades in euros.</p><p>Another trades in Australian dollars.</p><p>The system must convert the intended Canadian-dollar allocation into each trading currency before determining how many shares to purchase.</p><p>If the exchange rate is wrong, the positions will not be equal.</p><p>One may receive $8,000 of exposure.</p><p>Another may receive $12,000.</p><p>The portfolio appears equal-weighted in the model but is unequal in reality.</p><p>Accurate currency conversion is therefore part of allocation, not merely performance reporting.</p><h2>Rebalancing creates repeated FX decisions</h2><p>A long-term global portfolio does not convert currency only once.</p><p>Each rebalance may involve:</p><ul><li><p>Selling foreign shares</p></li><li><p>Converting the proceeds</p></li><li><p>Purchasing securities in another currency</p></li><li><p>Measuring new target weights</p></li><li><p>Recording transaction costs</p></li></ul><p>If a strategy rotates among countries, its currency exposure also changes.</p><p>A backtest that ignores these conversions may understate costs and mismeasure allocation.</p><p>The effect may be small for a low-turnover strategy.</p><p>It can become substantial when rebalancing is frequent.</p><h2>Currency conversion has costs</h2><p>The market exchange rate shown in a database may not be the exact rate available to a retail investor.</p><p>Real conversions can include:</p><ul><li><p>Bid-ask spreads</p></li><li><p>Broker markups</p></li><li><p>Conversion commissions</p></li><li><p>Settlement differences</p></li><li><p>Minimum fees</p></li></ul><p>These frictions reduce returns.</p><p>A backtest does not need to model every brokerage detail perfectly to be useful.</p><p>But it should not assume unlimited free conversion when the portfolio regularly trades across currencies.</p><p>The more frequently the strategy converts capital, the more important these costs become.</p><h2>Holding foreign currency can sometimes reduce conversion frequency</h2><p>An investor may maintain cash balances in several currencies.</p><p>Proceeds from selling a U.S. stock can remain in U.S. dollars and later fund another U.S. purchase.</p><p>This can reduce repeated conversion costs.</p><p>But it creates another portfolio position:</p><p>Foreign cash.</p><p>That cash changes value relative to the investor&#8217;s home currency.</p><p>The system must decide whether currency balances are:</p><ul><li><p>Converted immediately</p></li><li><p>Held until needed</p></li><li><p>Treated as portfolio assets</p></li><li><p>Included in performance</p></li></ul><p>There is no universal correct answer.</p><p>The rule should reflect how the strategy would actually operate.</p><h2>Hedged and unhedged returns are different strategies</h2><p>Some investors accept currency movement.</p><p>Others hedge it using financial instruments designed to reduce exchange-rate exposure.</p><p>These approaches should not be mixed.</p><p>An unhedged foreign-stock return includes currency movement.</p><p>A hedged return attempts to isolate more of the local asset return, though hedging has costs and may be imperfect.</p><p>The choice depends on:</p><ul><li><p>Investment horizon</p></li><li><p>Currency volatility</p></li><li><p>Hedging costs</p></li><li><p>Portfolio objectives</p></li><li><p>Available instruments</p></li></ul><p>A backtest should clearly state whether foreign positions are hedged.</p><p>Otherwise, two strategies may appear comparable while carrying different sources of risk.</p><h2>Currency exposure can create diversification</h2><p>Currency movement is not always an unwanted problem.</p><p>It can provide diversification.</p><p>A Canadian investor whose portfolio is entirely denominated in Canadian dollars depends heavily on one currency.</p><p>Owning assets connected to U.S. dollars, euros, or other currencies may reduce that concentration.</p><p>During some periods, foreign currencies may strengthen when the investor&#8217;s home market weakens.</p><p>This can support portfolio value.</p><p>During other periods, it can work against the investor.</p><p>Currency exposure is neither automatically good nor bad.</p><p>It is a source of risk and return that should be visible.</p><h2>The company&#8217;s economic exposure may not match its listing</h2><p>A Canadian-listed company may earn most of its revenue in the United States.</p><p>A British-listed miner may sell commodities priced globally in U.S. dollars.</p><p>A German manufacturer may export heavily to Asia.</p><p>The trading currency tells us how the shares are quoted.</p><p>It does not tell us where the company earns its money.</p><p>This distinction matters because currency can affect the business before it affects the investor.</p><p>A weaker home currency may increase the translated value of foreign revenue.</p><p>It may also increase the cost of imported materials.</p><p>The company may use hedges of its own.</p><p>A complete analysis separates:</p><ul><li><p>The investor&#8217;s currency exposure</p></li><li><p>The company&#8217;s operating currency exposure</p></li></ul><p>The two can interact in complicated ways.</p><h2>Converted statements can hide native economics</h2><p>For comparison, the database may convert every company&#8217;s financial statements into one currency.</p><p>That makes cross-country ratios easier to calculate.</p><p>But the native values should remain preserved.</p><p>Suppose a company&#8217;s revenue grows by 5% in its home currency.</p><p>After conversion, it appears to fall because the currency weakened.</p><p>The business did not necessarily shrink locally.</p><p>The investor&#8217;s translated view changed.</p><p>Both facts matter.</p><p>Native values help measure operating progress.</p><p>Converted values help compare capital across the global portfolio.</p><p>Deleting the native record would lose important context.</p><p>This is another reason raw financial history should remain durable:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;75f6ecfd-4398-40e2-af73-40fa69d0fd86&quot;,&quot;caption&quot;:&quot;It has consistent names, standardized currencies, resolved duplicates, aligned periods, and calculated investment metrics.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Why I Keep Raw Financial Data Forever&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:522095337,&quot;name&quot;:&quot;FungalStockEcosystem&quot;,&quot;bio&quot;:&quot;I&#8217;m building an machine learning investing ecosystem inspired by Earth. Companies are trees, data is fruit, animals analyze businesses, and fungal intelligence allocates capital adapting across changing environments.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/db8a58c8-9d8b-4ba4-89ce-0a214b43e88a_1254x1254.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-07-13T09:54:02.111Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!SP-N!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2706fd3b-a240-430e-937a-710a6a3aa20a_1536x1024.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://fungalstockecosystem.substack.com/p/why-i-keep-raw-financial-data-forever&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:206819200,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:9630735,&quot;publication_name&quot;:&quot;Fungal Intelligence for Stocks&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!rkRL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d61237e-1721-4509-ad0a-3e65f67831d2_1254x1254.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>Conversion policies can change.</p><p>The original evidence should remain available for rebuilding.</p><h2>One conversion direction must be chosen consistently</h2><p>Currency pairs can be quoted in opposite directions.</p><p>One source may report:</p><p><strong>USD per EUR</strong></p><p>Another may report:</p><p><strong>EUR per USD</strong></p><p>These values are reciprocals.</p><p>Confusing them can completely reverse a conversion.</p><p>If one euro equals 1.10 U.S. dollars, then one U.S. dollar equals about 0.91 euros.</p><p>Multiplying when the system should divide can create large errors.</p><p>The database should define every FX pair clearly.</p><p>Names such as <code>EUR_USD</code> can still be ambiguous unless the convention is documented.</p><p>A robust pipeline should know:</p><ul><li><p>Base currency</p></li><li><p>Quote currency</p></li><li><p>Conversion direction</p></li><li><p>Formula applied</p></li></ul><h2>Synthetic currency pairs require care</h2><p>A data provider may not supply every currency pair needed by the portfolio.</p><p>The system may need to calculate one through a common currency.</p><p>For example:</p><ul><li><p>Convert Australian dollars to U.S. dollars</p></li><li><p>Convert U.S. dollars to Canadian dollars</p></li><li><p>Combine the two to obtain Australian dollars to Canadian dollars</p></li></ul><p>This is a synthetic cross-rate.</p><p>It can be perfectly valid.</p><p>But both component rates must correspond to compatible dates and conventions.</p><p>A mistake in either leg affects the final result.</p><p>The derived pair should retain provenance showing how it was constructed.</p><h2>Stable conversion policy matters more than perfect precision</h2><p>Historical FX data from different sources may vary slightly.</p><p>One may use daily closing rates.</p><p>Another may use central-bank reference rates.</p><p>Another may use market averages.</p><p>The exact values may not match perfectly.</p><p>For many long-term backtests, consistency is more important than chasing false precision.</p><p>The system should choose a reasonable source and apply it uniformly.</p><p>Switching providers whenever one produces a more attractive result would contaminate the research.</p><p>A conversion policy should be based on accuracy and availability&#8212;not on whether it improves performance.</p><h2>The database and strategy have different FX responsibilities</h2><p>The database should preserve:</p><ul><li><p>Native values</p></li><li><p>Currency identifiers</p></li><li><p>FX rates</p></li><li><p>Dates</p></li><li><p>Units</p></li><li><p>Source information</p></li><li><p>Conversion results</p></li><li><p>Missing-rate states</p></li></ul><p>The strategy decides:</p><ul><li><p>Portfolio reporting currency</p></li><li><p>Whether positions are hedged</p></li><li><p>Whether foreign cash is held</p></li><li><p>Which conversion costs are applied</p></li><li><p>How currency affects allocation</p></li></ul><p>This separation follows the broader distinction between financial memory and investment policy:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;644776e4-493c-42a3-9387-77d1f4ccfcb0&quot;,&quot;caption&quot;:&quot;An investment strategy can produce a clear buy signal while depending on only a small part of that database.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;The Difference Between a Database and an Investment Strategy&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:522095337,&quot;name&quot;:&quot;FungalStockEcosystem&quot;,&quot;bio&quot;:&quot;I&#8217;m building an machine learning investing ecosystem inspired by Earth. Companies are trees, data is fruit, animals analyze businesses, and fungal intelligence allocates capital adapting across changing environments.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/db8a58c8-9d8b-4ba4-89ce-0a214b43e88a_1254x1254.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-07-13T10:39:55.731Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!_Yie!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31052ed0-283c-4212-8f9d-d0f7d9ef9c46_1536x1024.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://fungalstockecosystem.substack.com/p/the-difference-between-a-database&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:206823510,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:9630735,&quot;publication_name&quot;:&quot;Fungal Intelligence for Stocks&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!rkRL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d61237e-1721-4509-ad0a-3e65f67831d2_1254x1254.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>The database provides the conversion evidence.</p><p>The strategy determines how foreign exposure is handled.</p><h2>FX errors can contaminate every layer</h2><p>A single currency problem can spread widely.</p><p>It may affect:</p><ul><li><p>Market capitalization</p></li><li><p>Valuation ratios</p></li><li><p>Screening eligibility</p></li><li><p>Company rankings</p></li><li><p>Position sizes</p></li><li><p>Portfolio weights</p></li><li><p>Historical returns</p></li><li><p>Risk statistics</p></li><li><p>Outcome labels</p></li><li><p>Machine-learning targets</p></li></ul><p>By the time the final backtest looks wrong, the original FX mistake may be several layers away.</p><p>This is why currency validation should happen early in the pipeline.</p><p>Bad conversion should not be allowed to become a sophisticated investment score.</p><h2>Useful validation checks</h2><p>A global system can test for suspicious results.</p><p>For example:</p><ul><li><p>Did the exchange rate change by an impossible amount?</p></li><li><p>Is a British stock being treated as pounds when it is quoted in pence?</p></li><li><p>Are the statement and market-value currencies aligned?</p></li><li><p>Is a required date missing?</p></li><li><p>Did converted market capitalization change dramatically without a price or share-count change?</p></li><li><p>Are reciprocal currency pairs consistent?</p></li><li><p>Does another reliable source show a similar rate?</p></li></ul><p>These checks do not guarantee perfection.</p><p>They catch many errors before those errors become investment decisions.</p><h2>The home currency must be explicit</h2><p>&#8220;Global return&#8221; is incomplete without naming the investor&#8217;s measuring currency.</p><p>A Canadian investor, American investor, and European investor can earn different home-currency returns from the same stock over the same period.</p><p>The underlying company and local share-price return are identical.</p><p>The conversion path differs.</p><p>A backtest should therefore state its portfolio currency clearly.</p><p>For my system, I may standardize research values into a common reference currency while also preserving native information.</p><p>The important part is that the choice is explicit and reproducible.</p><h2>Comparing countries requires converted outcomes</h2><p>Suppose the system wants to compare six-month returns among companies from Canada, Australia, Germany, Britain, and the United States.</p><p>Using only native returns can be useful for studying local stock selection.</p><p>But if those companies are competing for positions inside one real portfolio, converted returns matter.</p><p>A 15% Australian-dollar gain and a 12% euro gain cannot be compared completely without considering how those currencies moved relative to the portfolio currency.</p><p>Otherwise, the system may learn that one country produced stronger returns when much of the difference came from FX.</p><p>That may still be useful information.</p><p>It should not be mislabeled as company-selection skill.</p><h2>Currency can distort outcome labels</h2><p>Future models may be trained using labels such as:</p><ul><li><p>Six-month return</p></li><li><p>Six-month market-relative alpha</p></li><li><p>Maximum drawdown</p></li><li><p>Disaster outcome</p></li><li><p>Twelve-month continuation</p></li></ul><p>If those outcomes mix native and converted currencies inconsistently, the model learns from incompatible targets.</p><p>One country&#8217;s companies may appear systematically better or worse because of the currency treatment.</p><p>The problem is especially dangerous because the labels look like ordinary numbers.</p><p>The model may find strong patterns.</p><p>It may be learning a pipeline inconsistency.</p><p>The output currency of every outcome should be defined clearly.</p><h2>Benchmark returns require the same treatment</h2><p>Market-relative performance compares a stock with a benchmark.</p><p>The stock and benchmark must be measured consistently.</p><p>Suppose a German stock&#8217;s return is converted into Canadian dollars, while the German benchmark remains in euros.</p><p>The resulting alpha mixes company performance with currency movement.</p><p>The comparison is invalid.</p><p>Possible valid approaches include:</p><ul><li><p>Compare stock and benchmark in their shared native currency</p></li><li><p>Convert both into the portfolio currency</p></li><li><p>Separate local alpha from FX contribution</p></li></ul><p>Each answers a different question.</p><p>The system should decide which question it wants to ask.</p><h2>Decomposing the return improves understanding</h2><p>A foreign investment&#8217;s return can be separated conceptually into:</p><ul><li><p>Local stock return</p></li><li><p>Currency return</p></li><li><p>Interaction between the two</p></li></ul><p>This helps explain performance.</p><p>Suppose a position gained 18% in Canadian dollars.</p><p>Perhaps the stock rose 10% locally and currency contributed most of the rest.</p><p>Another position may have fallen 5% even though the company rose locally, because its currency weakened sharply.</p><p>Without decomposition, the investor may credit or blame the company for movement caused elsewhere.</p><p>A transparent system should explain both sources.</p><h2>Currency movements can dominate short periods</h2><p>Over long periods, business performance may become the primary driver of value.</p><p>Over shorter periods, currency movement can dominate.</p><p>A company may report no major change, yet its converted stock value moves significantly because exchange rates changed.</p><p>This matters when the strategy uses short holding periods or frequent rebalancing.</p><p>A six-month strategy may experience much more FX noise than a twenty-year investor expects.</p><p>The system should not assume currency becomes irrelevant simply because the selected companies are fundamentally strong.</p><h2>Global diversification is still valuable</h2><p>These complications do not mean investors should avoid foreign markets.</p><p>Global investing can provide access to:</p><ul><li><p>Different industries</p></li><li><p>Different economic cycles</p></li><li><p>Different valuations</p></li><li><p>Different currencies</p></li><li><p>Companies unavailable domestically</p></li><li><p>Reduced dependence on one country</p></li></ul><p>The lesson is not that currency risk makes global investing impossible.</p><p>It is that the benefit must be measured honestly.</p><p>Diversification cannot be evaluated accurately when each country&#8217;s returns use a different ruler.</p><h2>The goal is an investable backtest</h2><p>A useful backtest should describe something an investor could realistically have done.</p><p>For a global portfolio, that means knowing:</p><ul><li><p>What each stock cost in its trading currency</p></li><li><p>What the exchange rate was</p></li><li><p>How much home-currency capital was allocated</p></li><li><p>What conversion costs applied</p></li><li><p>What the position was worth later</p></li><li><p>Whether proceeds remained foreign or were converted</p></li><li><p>What information was available on each date</p></li></ul><p>Ignoring currency creates a simpler simulation.</p><p>It may also create a simulation no investor could reproduce.</p><h2>The final principle</h2><p>Currency conversion does not create value.</p><p>It reveals whose value is being measured.</p><p>A company operates in one economic world.</p><p>Its stock trades in a market currency.</p><p>The investor experiences the result in a portfolio currency.</p><p>Those layers cannot be collapsed carelessly.</p><p>A global backtest should preserve native prices, native financial statements, trading currencies, historical FX rates, and the exact conversion policies used.</p><p>It should measure every portfolio position in a common unit without erasing the local evidence underneath it.</p><p>Otherwise, stock-selection skill, currency movement, and data errors become mixed together.</p><p>A foreign stock can rise while the investor loses money.</p><p>It can fall locally while currency softens the damage.</p><p>A company can appear cheap merely because its financial statements and market value use different units.</p><p>The arithmetic may look correct while the investment never truly existed.</p><p>Global investing expands the opportunity set.</p><p>Currency conversion makes that opportunity set measurable.</p><p>Without it, the portfolio is not global.</p><p>It is a collection of incompatible numbers.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://fungalstockecosystem.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://fungalstockecosystem.substack.com/subscribe?"><span>Subscribe now</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://fungalstockecosystem.substack.com/p/why-currency-conversion-matters-in?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://fungalstockecosystem.substack.com/p/why-currency-conversion-matters-in?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://fungalstockecosystem.substack.com/?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share&quot;,&quot;text&quot;:&quot;Share Fungal Intelligence for Stocks&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://fungalstockecosystem.substack.com/?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share Fungal Intelligence for Stocks</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://fungalstockecosystem.substack.com/p/why-currency-conversion-matters-in/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://fungalstockecosystem.substack.com/p/why-currency-conversion-matters-in/comments"><span>Leave a comment</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[The Difference Between a Database and an Investment Strategy]]></title><description><![CDATA[A database can contain millions of financial records without knowing whether a single stock is worth buying.]]></description><link>https://fungalstockecosystem.substack.com/p/the-difference-between-a-database</link><guid isPermaLink="false">https://fungalstockecosystem.substack.com/p/the-difference-between-a-database</guid><dc:creator><![CDATA[Fungal Stock Ecosystem ML]]></dc:creator><pubDate>Mon, 13 Jul 2026 10:39:55 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!_Yie!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31052ed0-283c-4212-8f9d-d0f7d9ef9c46_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_Yie!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31052ed0-283c-4212-8f9d-d0f7d9ef9c46_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_Yie!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31052ed0-283c-4212-8f9d-d0f7d9ef9c46_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!_Yie!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31052ed0-283c-4212-8f9d-d0f7d9ef9c46_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!_Yie!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31052ed0-283c-4212-8f9d-d0f7d9ef9c46_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!_Yie!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31052ed0-283c-4212-8f9d-d0f7d9ef9c46_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_Yie!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31052ed0-283c-4212-8f9d-d0f7d9ef9c46_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/31052ed0-283c-4212-8f9d-d0f7d9ef9c46_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1367013,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://fungalstockecosystem.substack.com/i/206823510?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31052ed0-283c-4212-8f9d-d0f7d9ef9c46_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_Yie!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31052ed0-283c-4212-8f9d-d0f7d9ef9c46_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!_Yie!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31052ed0-283c-4212-8f9d-d0f7d9ef9c46_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!_Yie!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31052ed0-283c-4212-8f9d-d0f7d9ef9c46_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!_Yie!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31052ed0-283c-4212-8f9d-d0f7d9ef9c46_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>An investment strategy can produce a clear buy signal while depending on only a small part of that database.</p><p>These two systems work together.</p><p>They are not the same thing.</p><p>The database preserves evidence.</p><p>The strategy applies beliefs, rules, and objectives to that evidence.</p><p>Confusing those responsibilities can create a system that appears intelligent but is difficult to verify, modify, or trust.</p><p>That is why I treat my financial database and my investment strategy as separate parts of the project.</p><h2>A database describes</h2><p>A financial database attempts to describe the market.</p><p>It may contain:</p><ul><li><p>Company identities</p></li><li><p>Financial statements</p></li><li><p>Filing dates</p></li><li><p>Reporting periods</p></li><li><p>Share prices</p></li><li><p>Trading currencies</p></li><li><p>Exchange rates</p></li><li><p>Share counts</p></li><li><p>Corporate actions</p></li><li><p>Industry classifications</p></li><li><p>Missing-data records</p></li><li><p>Provider metadata</p></li></ul><p>None of these facts tells the investor what to do by itself.</p><p>A company reported $500 million in revenue.</p><p>Its share count increased by 4%.</p><p>Its debt declined.</p><p>Its stock traded at a particular price.</p><p>These are observations.</p><p>They become investment information only after a strategy places them into context.</p><h2>A strategy decides</h2><p>An investment strategy asks questions that the database cannot answer alone.</p><p>For example:</p><ul><li><p>Is the company profitable enough?</p></li><li><p>Is its debt manageable?</p></li><li><p>Is the valuation attractive?</p></li><li><p>Is growth healthy?</p></li><li><p>Is dilution excessive?</p></li><li><p>Does it fit the portfolio?</p></li><li><p>Should it be rejected?</p></li><li><p>How much capital should it receive?</p></li></ul><p>These questions depend on objectives.</p><p>A conservative value strategy and an aggressive growth strategy can examine the same company and reach opposite conclusions.</p><p>Neither conclusion is stored naturally inside the company&#8217;s financial statements.</p><p>The difference comes from the rules being applied.</p><h2>Facts do not contain their own verdict</h2><p>Suppose a company has debt-to-equity of 1.8.</p><p>Is that high?</p><p>The database cannot answer without additional context.</p><p>For a stable infrastructure business, the debt may be manageable.</p><p>For a fragile cyclical company, it may be dangerous.</p><p>For a bank, the ratio may not even be the correct way to think about financial structure.</p><p>The number is real.</p><p>The verdict depends on the business model and the investment strategy.</p><p>That is why facts and conclusions should remain distinguishable.</p><h2>The same database can support opposing strategies</h2><p>Imagine two investors studying the same market.</p><p>The first searches for high-quality companies with stable cash flow and moderate valuations.</p><p>The second searches for distressed companies with a chance of recovery.</p><p>The quality investor may reject a business because:</p><ul><li><p>Earnings are negative</p></li><li><p>Debt is rising</p></li><li><p>Revenue is falling</p></li><li><p>Cash flow is unstable</p></li></ul><p>The distressed investor may examine that exact company because those weaknesses caused the price to collapse.</p><p>Both strategies can use the same database.</p><p>They simply interpret the evidence differently.</p><p>A database should not quietly delete the company because one strategy does not want it.</p><p>The evidence may still matter to another strategy&#8212;or to evaluating whether the first strategy&#8217;s rejection rule was useful.</p><h2>A screener belongs to the strategy layer</h2><p>A stock screener often looks like a database tool because it searches financial fields.</p><p>But a screener is already expressing an investment opinion.</p><p>The moment it says:</p><ul><li><p>Market capitalization must exceed $300 million</p></li><li><p>Free cash flow must be positive</p></li><li><p>Debt-to-equity must remain below 2.5</p></li><li><p>Price-to-free-cash-flow must remain below 25</p></li></ul><p>it has moved beyond recording facts.</p><p>It is applying a strategy.</p><p>The company does not become objectively unsuitable because it failed those rules.</p><p>It becomes unsuitable for that particular investment process.</p><p>This is why a screener&#8217;s role should be understood clearly:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;162849ef-4e92-428a-9f29-ce1c3c287ef8&quot;,&quot;caption&quot;:&quot;Enter a few financial conditions, press a button, and receive a list of investment ideas.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;A Stock Screener Should Reject More Than It Selects&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:522095337,&quot;name&quot;:&quot;FungalStockEcosystem&quot;,&quot;bio&quot;:&quot;I&#8217;m building an machine learning investing ecosystem inspired by Earth. Companies are trees, data is fruit, animals analyze businesses, and fungal intelligence allocates capital adapting across changing environments.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/db8a58c8-9d8b-4ba4-89ce-0a214b43e88a_1254x1254.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-07-13T09:18:48.213Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!GZ2w!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f9409e0-ae0e-402a-90f8-13c36a896150_1536x1024.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://fungalstockecosystem.substack.com/p/a-stock-screener-should-reject-more&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:206815669,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:1,&quot;comment_count&quot;:0,&quot;publication_id&quot;:9630735,&quot;publication_name&quot;:&quot;Fungal Intelligence for Stocks&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!rkRL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d61237e-1721-4509-ad0a-3e65f67831d2_1254x1254.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>The database stores the company.</p><p>The screener decides whether the company may proceed.</p><h2>The database should not care which strategy wins</h2><p>A reliable database should remain neutral between competing ideas.</p><p>Suppose Strategy A performs better when it emphasizes valuation.</p><p>Strategy B performs better when it emphasizes quality.</p><p>Strategy C performs better when it combines both.</p><p>The underlying historical evidence should remain unchanged across all three tests.</p><p>If each strategy uses a differently cleaned or differently filtered version of history, the comparison becomes unfair.</p><p>The database should create a common world.</p><p>The strategies should compete inside that world.</p><h2>Strategy rules should remain replaceable</h2><p>Investment theories change.</p><p>A ratio that appears powerful in one test may fail in another.</p><p>A threshold may turn out to be too strict.</p><p>A company classification may need improvement.</p><p>The portfolio may require stronger country limits.</p><p>These are normal research developments.</p><p>If the rules are embedded directly into the data, changing the strategy may require rewriting the database.</p><p>That risks changing the historical world whenever the investment theory changes.</p><p>A better design keeps the evidence stable and makes the strategy replaceable.</p><p>This is the broader architecture behind:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;5be7c053-538b-4843-b277-e142dd189670&quot;,&quot;caption&quot;:&quot;The database should record what happened.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Why My Stock System Separates Data From Decisions&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:522095337,&quot;name&quot;:&quot;FungalStockEcosystem&quot;,&quot;bio&quot;:&quot;I&#8217;m building an machine learning investing ecosystem inspired by Earth. Companies are trees, data is fruit, animals analyze businesses, and fungal intelligence allocates capital adapting across changing environments.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/db8a58c8-9d8b-4ba4-89ce-0a214b43e88a_1254x1254.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-07-13T09:27:19.302Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Nd_U!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa18a598e-7abe-4f1a-8463-079e62ddc8f8_1672x941.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://fungalstockecosystem.substack.com/p/why-my-stock-system-separates-data&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:206816205,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:9630735,&quot;publication_name&quot;:&quot;Fungal Intelligence for Stocks&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!rkRL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d61237e-1721-4509-ad0a-3e65f67831d2_1254x1254.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>The database should outlive individual strategies.</p><h2>A database is broader than a strategy</h2><p>A strategy uses only the fields needed for its current decisions.</p><p>The database should usually preserve more.</p><p>A general operating strategy may currently care about:</p><ul><li><p>Revenue</p></li><li><p>Net income</p></li><li><p>Free cash flow</p></li><li><p>Debt</p></li><li><p>Book value</p></li><li><p>Share count</p></li><li><p>Valuation</p></li></ul><p>But future research may need:</p><ul><li><p>Inventory</p></li><li><p>Receivables</p></li><li><p>Lease obligations</p></li><li><p>Interest expense</p></li><li><p>Research spending</p></li><li><p>Segment results</p></li><li><p>Acquisition history</p></li><li><p>Customer concentration</p></li></ul><p>If the system stores only what one strategy currently requires, future questions become impossible to test.</p><p>The database should preserve possibilities.</p><p>The strategy should narrow them into decisions.</p><h2>A strategy is more than a formula</h2><p>It is easy to imagine an investment strategy as a scoring equation.</p><p>Perhaps value receives 25%, quality receives 25%, growth receives 20%, and safety receives 30%.</p><p>But a complete strategy contains much more.</p><p>It includes:</p><ul><li><p>Which companies are eligible</p></li><li><p>Which business models are excluded</p></li><li><p>Which data is required</p></li><li><p>Which values trigger rejection</p></li><li><p>How companies are ranked</p></li><li><p>How many positions are held</p></li><li><p>How often the portfolio rebalances</p></li><li><p>How positions are sized</p></li><li><p>When a stock is sold</p></li><li><p>How trading costs are handled</p></li><li><p>What happens when no candidate qualifies</p></li></ul><p>The database cannot make these choices automatically.</p><p>They reflect the investor&#8217;s goals and tolerance for uncertainty.</p><h2>The database can be correct while the strategy is wrong</h2><p>Suppose the financial data is accurate.</p><p>Prices, currencies, filing dates, and share counts have all been handled correctly.</p><p>The strategy still performs poorly.</p><p>Perhaps it:</p><ul><li><p>Overvalues growth</p></li><li><p>Ignores deterioration</p></li><li><p>Uses weak valuation measures</p></li><li><p>Concentrates in one industry</p></li><li><p>Trades too frequently</p></li><li><p>Overfits historical relationships</p></li></ul><p>This is a strategy failure, not a database failure.</p><p>The distinction matters because the repair is different.</p><p>The data does not need to be recollected.</p><p>The investment rules need to be reconsidered.</p><h2>The strategy can be reasonable while the data is wrong</h2><p>The opposite can also occur.</p><p>The strategy may have sensible rules, but it receives:</p><ul><li><p>A stale stock price</p></li><li><p>The wrong company&#8217;s financial statement</p></li><li><p>An outdated share count</p></li><li><p>A currency mismatch</p></li><li><p>A duplicated filing</p></li><li><p>A future filing inside a historical test</p></li></ul><p>The strategy produces a bad decision because the evidence was corrupted.</p><p>Changing the investment rules will not repair the problem.</p><p>The pipeline must be fixed.</p><p>This is how poor inputs can manufacture attractive-looking stocks:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;273c4088-576f-48c1-b85b-6406cc5f96ec&quot;,&quot;caption&quot;:&quot;Its earnings may be attached to the wrong share price.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;How Bad Financial Data Creates Fake Investment Opportunities&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:522095337,&quot;name&quot;:&quot;FungalStockEcosystem&quot;,&quot;bio&quot;:&quot;I&#8217;m building an machine learning investing ecosystem inspired by Earth. Companies are trees, data is fruit, animals analyze businesses, and fungal intelligence allocates capital adapting across changing environments.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/db8a58c8-9d8b-4ba4-89ce-0a214b43e88a_1254x1254.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-07-13T09:48:20.912Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!P5FL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6519aa0e-3ea3-4abc-9258-7e1f277d693a_1536x1024.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://fungalstockecosystem.substack.com/p/how-bad-financial-data-creates-fake&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:206818269,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:9630735,&quot;publication_name&quot;:&quot;Fungal Intelligence for Stocks&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!rkRL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d61237e-1721-4509-ad0a-3e65f67831d2_1254x1254.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>A system must know whether it misunderstood reality or received the wrong reality.</p><h2>The distinction makes failures useful</h2><p>When an investment system fails, I want to know where it failed.</p><p>Was the problem:</p><ol><li><p><strong>Source data?</strong><br>The provider returned an incorrect or incomplete record.</p></li><li><p><strong>Transformation?</strong><br>Currency, units, dates, or corporate actions were handled incorrectly.</p></li><li><p><strong>Classification?</strong><br>The company was judged using the wrong business model.</p></li><li><p><strong>Screening?</strong><br>The mouth admitted a company that should have been rejected.</p></li><li><p><strong>Scoring?</strong><br>The strategy emphasized the wrong financial characteristics.</p></li><li><p><strong>Allocation?</strong><br>Reasonable companies were combined into a fragile portfolio.</p></li><li><p><strong>Uncertainty?</strong><br>The process was defensible, but the future still went badly.</p></li></ol><p>Each failure teaches a different lesson.</p><p>Mixing the database and strategy together makes these lessons harder to recover.</p><h2>A database should preserve rejected companies</h2><p>When a strategy rejects a company, the company should remain in the database.</p><p>Otherwise, the research history becomes biased toward the strategy&#8217;s preferences.</p><p>Rejected companies are valuable because they allow the system to measure:</p><ul><li><p>How many later recovered</p></li><li><p>How many failed</p></li><li><p>Whether thresholds were too strict</p></li><li><p>Whether missing data caused excessive rejection</p></li><li><p>Whether the strategy avoided major losses</p></li><li><p>Whether certain business types were treated unfairly</p></li></ul><p>A database should preserve the full population.</p><p>The strategy creates a temporary eligible population from it.</p><h2>The database should also preserve the strategy&#8217;s decisions</h2><p>Keeping the layers separate does not mean investment decisions should disappear.</p><p>The system should record:</p><ul><li><p>Which strategy version ran</p></li><li><p>Which companies were eligible</p></li><li><p>Which companies were rejected</p></li><li><p>Why each rejection occurred</p></li><li><p>Which scores were produced</p></li><li><p>Which portfolio was constructed</p></li><li><p>Which data snapshot supported the decision</p></li></ul><p>This creates an audit trail.</p><p>The decision belongs to the strategy layer, but it should be permanently associated with the evidence that produced it.</p><h2>Raw evidence allows the strategy to be rebuilt</h2><p>Suppose I later discover that my definition of free cash flow was too simplistic.</p><p>If raw cash-flow records remain available, I can create a better definition and rerun the strategy.</p><p>Suppose a country requires a different filing-availability policy.</p><p>The historical snapshots can be rebuilt.</p><p>Suppose an entire business category needs specialized metrics.</p><p>The companies can be reclassified and reprocessed.</p><p>This is possible because the evidence was preserved before the strategy compressed it into scores.</p><p>That is why raw history should survive every current model:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;f57c3089-6efc-4cca-875a-77a7d8ecdaba&quot;,&quot;caption&quot;:&quot;It has consistent names, standardized currencies, resolved duplicates, aligned periods, and calculated investment metrics.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Why I Keep Raw Financial Data Forever&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:522095337,&quot;name&quot;:&quot;FungalStockEcosystem&quot;,&quot;bio&quot;:&quot;I&#8217;m building an machine learning investing ecosystem inspired by Earth. Companies are trees, data is fruit, animals analyze businesses, and fungal intelligence allocates capital adapting across changing environments.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/db8a58c8-9d8b-4ba4-89ce-0a214b43e88a_1254x1254.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-07-13T09:54:02.111Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!SP-N!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2706fd3b-a240-430e-937a-710a6a3aa20a_1536x1024.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://fungalstockecosystem.substack.com/p/why-i-keep-raw-financial-data-forever&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:206819200,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:9630735,&quot;publication_name&quot;:&quot;Fungal Intelligence for Stocks&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!rkRL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d61237e-1721-4509-ad0a-3e65f67831d2_1254x1254.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>Strategies are experiments.</p><p>The raw warehouse is the laboratory record.</p><h2>A database does not create an edge by itself</h2><p>A large financial database may be valuable infrastructure.</p><p>But possessing more data does not automatically produce better investment decisions.</p><p>The investor still needs to decide:</p><ul><li><p>Which information matters</p></li><li><p>Which relationships are durable</p></li><li><p>Which companies are comparable</p></li><li><p>Which risks deserve rejection</p></li><li><p>Which valuations provide enough margin of safety</p></li></ul><p>A database can make research possible.</p><p>It cannot guarantee that the research question is intelligent.</p><p>More information can produce more sophisticated mistakes when the strategy lacks discipline.</p><h2>A strategy does not create truth</h2><p>A strategy can express a strong opinion.</p><p>It can rank every company from best to worst.</p><p>That confidence does not make the conclusion true.</p><p>A precise score may rest on:</p><ul><li><p>Uncertain estimates</p></li><li><p>Arbitrary weights</p></li><li><p>Weak historical relationships</p></li><li><p>Incomplete data</p></li><li><p>An overfit backtest</p></li></ul><p>The strategy should therefore remain accountable to the evidence.</p><p>It should be possible to trace every conclusion backward.</p><p>The more decisive the output, the more important that chain becomes.</p><h2>Machine learning still belongs to the strategy layer</h2><p>A future machine-learning model may identify relationships too complicated for fixed rules.</p><p>It might estimate future returns, risk, or the probability of deterioration.</p><p>But the model is still an interpretation system.</p><p>It learns from selected features and selected outcomes.</p><p>Its predictions depend on choices involving:</p><ul><li><p>Training periods</p></li><li><p>Feature definitions</p></li><li><p>Labels</p></li><li><p>Missing-data handling</p></li><li><p>Model architecture</p></li><li><p>Validation rules</p></li></ul><p>The model does not replace the database.</p><p>It depends on it.</p><p>Powerful models increase the need for reliable, traceable evidence because mistakes become harder to see inside complex predictions.</p><h2>The portfolio is not stored in the company data</h2><p>A company can look attractive individually and still be a poor portfolio addition.</p><p>The database may show that several oil producers are financially strong and inexpensive.</p><p>The selection strategy may rank all of them highly.</p><p>The portfolio layer must recognize that owning several of them creates one large commodity exposure.</p><p>This is another example of a decision that exists outside the raw company facts.</p><p>The database describes each tree.</p><p>The portfolio strategy decides how the forest should be assembled.</p><h2>Strategy performance should not rewrite the data</h2><p>Suppose a strategy performs badly during a certain period.</p><p>There may be a temptation to:</p><ul><li><p>Remove unusual companies</p></li><li><p>Replace inconvenient missing values</p></li><li><p>Adjust classifications</p></li><li><p>Change the historical universe</p></li><li><p>Prefer a different provider because it produces better results</p></li></ul><p>Some corrections may be legitimate.</p><p>But data changes should be made because they improve accuracy, not because they improve strategy performance.</p><p>The database should not be optimized to make the strategy look intelligent.</p><p>The strategy should be tested against the most honest database available.</p><h2>One supports many; the other chooses one path</h2><p>The database should be capable of supporting many strategies.</p><p>A value strategy may use it one way.</p><p>A quality strategy may use it another.</p><p>A bank-specific model may select different nutrients from a miner-specific model.</p><p>The strategy chooses one path through the evidence.</p><p>That path may succeed or fail.</p><p>The database remains available for the next question.</p><h2>A useful architectural sequence</h2><p>The project can be understood as a series of distinct layers:</p><ol><li><p><strong>Raw warehouse</strong><br>Preserve filings, provider responses, prices, currencies, identities, and metadata.</p></li><li><p><strong>Cleaning and normalization</strong><br>Resolve units, dates, corporate actions, mappings, and obvious contradictions.</p></li><li><p><strong>Point-in-time snapshots</strong><br>Reconstruct what information was available on each historical decision date.</p></li><li><p><strong>Business classification</strong><br>Determine which financial rules belong to each company.</p></li><li><p><strong>Screening</strong><br>Reject candidates that fail non-negotiable requirements.</p></li><li><p><strong>Feature compilation and scoring</strong><br>Calculate relevant nutrients and rank the survivors.</p></li><li><p><strong>Portfolio allocation</strong><br>Combine companies while controlling position size and shared risk.</p></li><li><p><strong>Outcome tracking</strong><br>Record what happened after the decision.</p></li><li><p><strong>Validation</strong><br>Test whether the strategy survives unseen conditions.</p></li></ol><p>The first three layers primarily construct the historical world.</p><p>The later layers decide how to act inside it.</p><h2>The distinction creates trust</h2><p>When data and strategy are separated, the system can answer two different questions.</p><h3>What did the system know?</h3><p>This can be traced through:</p><ul><li><p>Source records</p></li><li><p>Filing dates</p></li><li><p>Prices</p></li><li><p>Currencies</p></li><li><p>Missing values</p></li><li><p>Transformations</p></li></ul><h3>Why did the system act?</h3><p>This can be traced through:</p><ul><li><p>Strategy version</p></li><li><p>Screening rules</p></li><li><p>Scores</p></li><li><p>Thresholds</p></li><li><p>Portfolio constraints</p></li><li><p>Position sizes</p></li></ul><p>Trust requires both answers.</p><p>A decision without evidence is unsupported.</p><p>Evidence without a decision process cannot explain the portfolio.</p><h2>The database is memory; the strategy is policy</h2><p>A useful way to understand the distinction is:</p><p><strong>The database is memory.</strong></p><p>It preserves what entered the system.</p><p><strong>The strategy is policy.</strong></p><p>It determines how the system responds.</p><p>Memory should be broad, durable, and honest.</p><p>Policy should be explicit, testable, and replaceable.</p><p>A system with policy but no reliable memory repeats mistakes.</p><p>A system with memory but no policy collects information without acting.</p><p>Both are necessary.</p><p>Neither should impersonate the other.</p><h2>The final difference</h2><p>A database asks:</p><p><strong>What happened, when did it happen, and what evidence do we have?</strong></p><p>An investment strategy asks:</p><p><strong>Given that evidence, what should we reject, select, own, and risk?</strong></p><p>The database attempts to reconstruct reality.</p><p>The strategy expresses a disciplined opinion about that reality.</p><p>The database can be accurate while the strategy fails.</p><p>The strategy can be sensible while the data pipeline fails.</p><p>Keeping them separate allows the project to discover which one needs repair.</p><p>The database remembers every company, including the failures and rejected candidates.</p><p>The strategy chooses which companies matter for one particular objective.</p><p>The database should survive changes in investment theory.</p><p>The strategy should earn trust through testing.</p><p>One preserves the world.</p><p>The other decides how to move through it.</p><p>That is the difference between a database and an investment strategy.</p><p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://fungalstockecosystem.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://fungalstockecosystem.substack.com/subscribe?"><span>Subscribe now</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://fungalstockecosystem.substack.com/p/the-difference-between-a-database?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://fungalstockecosystem.substack.com/p/the-difference-between-a-database?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://fungalstockecosystem.substack.com/?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share&quot;,&quot;text&quot;:&quot;Share Fungal Intelligence for Stocks&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://fungalstockecosystem.substack.com/?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share Fungal Intelligence for Stocks</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://fungalstockecosystem.substack.com/p/the-difference-between-a-database/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://fungalstockecosystem.substack.com/p/the-difference-between-a-database/comments"><span>Leave a comment</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Why I Keep Raw Financial Data Forever]]></title><description><![CDATA[Clean financial data is easier to use than raw financial data.]]></description><link>https://fungalstockecosystem.substack.com/p/why-i-keep-raw-financial-data-forever</link><guid isPermaLink="false">https://fungalstockecosystem.substack.com/p/why-i-keep-raw-financial-data-forever</guid><dc:creator><![CDATA[Fungal Stock Ecosystem ML]]></dc:creator><pubDate>Mon, 13 Jul 2026 09:54:02 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!SP-N!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2706fd3b-a240-430e-937a-710a6a3aa20a_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!SP-N!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2706fd3b-a240-430e-937a-710a6a3aa20a_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SP-N!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2706fd3b-a240-430e-937a-710a6a3aa20a_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!SP-N!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2706fd3b-a240-430e-937a-710a6a3aa20a_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!SP-N!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2706fd3b-a240-430e-937a-710a6a3aa20a_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!SP-N!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2706fd3b-a240-430e-937a-710a6a3aa20a_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!SP-N!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2706fd3b-a240-430e-937a-710a6a3aa20a_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2706fd3b-a240-430e-937a-710a6a3aa20a_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1440597,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://fungalstockecosystem.substack.com/i/206819200?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2706fd3b-a240-430e-937a-710a6a3aa20a_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!SP-N!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2706fd3b-a240-430e-937a-710a6a3aa20a_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!SP-N!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2706fd3b-a240-430e-937a-710a6a3aa20a_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!SP-N!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2706fd3b-a240-430e-937a-710a6a3aa20a_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!SP-N!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2706fd3b-a240-430e-937a-710a6a3aa20a_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>It has consistent names, standardized currencies, resolved duplicates, aligned periods, and calculated investment metrics.</p><p>That makes it tempting to keep only the cleaned result.</p><p>Once revenue growth, free cash flow, debt ratios, and valuation scores have been calculated, why preserve the awkward source records underneath them?</p><p>Because the cleaned result contains assumptions.</p><p>Those assumptions may later prove incomplete, inconsistent, or wrong.</p><p>If the original evidence has been deleted, the system cannot return to the point before the mistake was made.</p><p>That is why I want to keep raw financial data permanently.</p><p>The raw database is not merely storage.</p><p>It is the project&#8217;s memory.</p><h2>Clean data is an interpretation</h2><p>A company might report operating cash flow of $120 million and capital expenditures of $35 million.</p><p>The system calculates free cash flow of $85 million.</p><p>That looks simple.</p><p>But even this basic calculation contains decisions:</p><ul><li><p>Which cash-flow period was selected?</p></li><li><p>Was the capital-expenditure value already negative?</p></li><li><p>Were both figures reported in the same currency?</p></li><li><p>Was the statement annual, quarterly, or trailing?</p></li><li><p>Was the filing later restated?</p></li><li><p>Was the company mapped to the correct security?</p></li><li><p>Was the figure reported directly or estimated?</p></li></ul><p>The final number is useful.</p><p>It is not raw truth.</p><p>It is the result of a process applied to the evidence.</p><p>Keeping the source data allows that process to be examined and repeated.</p><h2>The database should remember more than the strategy needs today</h2><p>My current strategy may use a limited set of metrics.</p><p>It may care about:</p><ul><li><p>Free cash flow</p></li><li><p>Net income</p></li><li><p>Revenue growth</p></li><li><p>Debt</p></li><li><p>Book value</p></li><li><p>Share dilution</p></li><li><p>Valuation</p></li><li><p>Deterioration</p></li><li><p>Trading liquidity</p></li></ul><p>That does not mean these are the only fields that will ever matter.</p><p>A future version of the system may need:</p><ul><li><p>Inventory</p></li><li><p>Receivables</p></li><li><p>Customer concentration</p></li><li><p>Segment results</p></li><li><p>Capitalized costs</p></li><li><p>Lease obligations</p></li><li><p>Pension assumptions</p></li><li><p>Interest coverage</p></li><li><p>Acquisition spending</p></li><li><p>Research expenses</p></li><li><p>Deferred revenue</p></li></ul><p>If I collect only what the current strategy uses, the database becomes trapped inside the current theory.</p><p>When the theory changes, the evidence required to test the new idea may already be gone.</p><p>This is one reason I am building a database instead of relying only on a finished screener:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;b8860012-7e0a-4347-bb51-7cb20beca213&quot;,&quot;caption&quot;:&quot;They choose a few conditions&#8212;low valuation, strong growth, manageable debt&#8212;and receive a list of companies that appear to match.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Why I&#8217;m Building a Fundamental Database Instead of Trusting a Screener&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:522095337,&quot;name&quot;:&quot;FungalStockEcosystem&quot;,&quot;bio&quot;:&quot;I&#8217;m building an machine learning investing ecosystem inspired by Earth. Companies are trees, data is fruit, animals analyze businesses, and fungal intelligence allocates capital adapting across changing environments.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/db8a58c8-9d8b-4ba4-89ce-0a214b43e88a_1254x1254.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-07-13T04:06:06.567Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!-UkE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7efdf137-2c52-41c4-acf0-e97daa793741_1536x1024.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://fungalstockecosystem.substack.com/p/why-im-building-a-fundamental-database&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:206790061,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:9630735,&quot;publication_name&quot;:&quot;Fungal Intelligence for Stocks&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!rkRL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d61237e-1721-4509-ad0a-3e65f67831d2_1254x1254.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>A screener answers a predefined question.</p><p>A raw database preserves the ability to ask new questions later.</p><h2>Raw data is like source code</h2><p>In programming, a compiled application is useful because it can run.</p><p>But the executable is not a substitute for the source code.</p><p>The source code explains how the program was built.</p><p>It can be inspected, repaired, modified, and compiled again.</p><p>Clean financial features are similar to the executable.</p><p>Raw filings, provider responses, prices, mappings, and metadata are the source.</p><p>If I keep only the finished features, the system may continue running, but I lose the ability to understand exactly how it was constructed.</p><p>The calculations may still work.</p><p>The knowledge behind them becomes fragile.</p><h2>Strategies change</h2><p>Investment research is not a one-time process.</p><p>A strategy may begin by focusing heavily on valuation.</p><p>Later, testing may show that cheap companies with deteriorating cash flow perform poorly.</p><p>The system adds a deterioration check.</p><p>Later still, it may discover that companies issuing large amounts of stock frequently destroy shareholder value.</p><p>The system adds dilution.</p><p>Each improvement requires historical evidence.</p><p>If the raw data survives, the new feature can be compiled across the entire history.</p><p>The updated strategy can then be tested fairly.</p><p>If only the old scores remain, the system cannot reconstruct what would have happened under the improved rules.</p><p>The strategy changes.</p><p>The historical world should remain available.</p><h2>Metric definitions change too</h2><p>Even when the general idea remains useful, its definition may improve.</p><p>Free cash flow is a good example.</p><p>One version may calculate:</p><p><strong>Operating cash flow minus capital expenditures</strong></p><p>Another may attempt to distinguish maintenance spending from expansion spending.</p><p>Another may exclude unusually large working-capital movements.</p><p>A company&#8217;s result can change depending on the definition.</p><p>The original cash-flow statement should remain untouched.</p><p>Each strategy version can calculate the feature it needs from the same underlying evidence.</p><p>This makes comparisons cleaner.</p><p>The database stores the source.</p><p>The strategy stores the definition.</p><h2>Raw data protects the separation between facts and opinions</h2><p>An investment score is an opinion produced from evidence.</p><p>A filing value is closer to the evidence itself.</p><p>The two should not be confused.</p><p>Suppose a system stores only:</p><p><strong>Quality score: 72</strong></p><p>That number tells me almost nothing by itself.</p><p>Why was the score 72?</p><p>Which fields were used?</p><p>Which values were missing?</p><p>Which strategy version created it?</p><p>Was the company compared with banks, miners, or general operating businesses?</p><p>A score can be rebuilt when the evidence and rules remain available.</p><p>The evidence cannot be recovered from the score.</p><p>This is why my architecture separates the database from the decision-making layers:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;50f8c2d6-84e4-4a63-b30a-c9840dc67a26&quot;,&quot;caption&quot;:&quot;The database should record what happened.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Why My Stock System Separates Data From Decisions&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:522095337,&quot;name&quot;:&quot;FungalStockEcosystem&quot;,&quot;bio&quot;:&quot;I&#8217;m building an machine learning investing ecosystem inspired by Earth. Companies are trees, data is fruit, animals analyze businesses, and fungal intelligence allocates capital adapting across changing environments.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/db8a58c8-9d8b-4ba4-89ce-0a214b43e88a_1254x1254.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-07-13T09:27:19.302Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Nd_U!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa18a598e-7abe-4f1a-8463-079e62ddc8f8_1672x941.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://fungalstockecosystem.substack.com/p/why-my-stock-system-separates-data&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:206816205,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:9630735,&quot;publication_name&quot;:&quot;Fungal Intelligence for Stocks&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!rkRL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d61237e-1721-4509-ad0a-3e65f67831d2_1254x1254.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>The raw warehouse preserves what entered the system.</p><p>The strategy decides what to do with it.</p><h2>Providers can change their history</h2><p>Financial-data providers sometimes correct errors.</p><p>They may update old statements.</p><p>They may change field names.</p><p>They may replace a missing value.</p><p>They may revise how a metric is calculated.</p><p>A query made today may not return the same record that was received a year ago.</p><p>If I preserve each source response, I can see what the system actually knew at the time.</p><p>That matters for both debugging and historical testing.</p><p>Without the original response, it may become impossible to determine whether a changed result came from:</p><ul><li><p>A new company filing</p></li><li><p>A provider correction</p></li><li><p>A revised mapping</p></li><li><p>A new calculation rule</p></li><li><p>A software bug</p></li><li><p>A different source entirely</p></li></ul><p>Raw preservation creates a stable reference point.</p><h2>Restatements require more than one version of history</h2><p>Companies sometimes restate earlier financial results.</p><p>A previously reported value may be corrected months or years later.</p><p>For current analysis, the restated number may be the best available estimate of reality.</p><p>For point-in-time backtesting, the original number may be more important.</p><p>An investor making a decision before the restatement did not know the corrected value.</p><p>A durable warehouse may therefore need to preserve both:</p><ul><li><p>The statement originally available</p></li><li><p>The later corrected statement</p></li></ul><p>These are two different forms of truth.</p><p>One answers:</p><p><strong>What is now believed to have happened?</strong></p><p>The other answers:</p><p><strong>What could an investor have known then?</strong></p><p>Deleting the original version destroys the second question.</p><h2>Filing dates must survive alongside financial periods</h2><p>A statement may describe the year ending December 31.</p><p>That does not mean the market received it on December 31.</p><p>It might have been published in February, March, or later.</p><p>The period-end date describes the business activity.</p><p>The filing date describes when the information entered the world.</p><p>Both matter.</p><p>If the cleaned database keeps only the period-end date, a historical strategy may gain access to results before they were published.</p><p>That creates look-ahead bias.</p><p>Preserving raw dates and source metadata helps keep the simulation honest.</p><p>The financial value alone is not enough.</p><p>The timing of knowledge is part of the evidence.</p><h2>Raw prices matter too</h2><p>A historical price series may eventually be adjusted for:</p><ul><li><p>Stock splits</p></li><li><p>Dividends</p></li><li><p>Currency conversion</p></li><li><p>Exchange differences</p></li><li><p>Missing trading days</p></li><li><p>Corporate actions</p></li></ul><p>The adjusted series is useful for return calculations.</p><p>The original trading prices should still be preserved.</p><p>Suppose a stock split was handled incorrectly.</p><p>If only the adjusted history remains, it may be difficult to determine what happened.</p><p>With the original values and the corporate-action record, the series can be rebuilt.</p><p>Raw prices also help answer execution questions.</p><p>What price was actually quoted?</p><p>How much volume traded?</p><p>Was the price stale?</p><p>Was the security genuinely available?</p><p>An adjusted return series is not a complete trading record.</p><h2>Currency conversions should remain reversible</h2><p>Global financial data creates several layers:</p><ul><li><p>The company&#8217;s reporting currency</p></li><li><p>The stock&#8217;s trading currency</p></li><li><p>The investor&#8217;s portfolio currency</p></li><li><p>The exchange rate used on each date</p></li></ul><p>A cleaned feature may show that a company generated $200 million in U.S.-dollar-equivalent cash flow.</p><p>That is convenient for comparison.</p><p>But the original value may have been reported in euros, pounds, Canadian dollars, or Australian dollars.</p><p>Keeping the native figure and the exchange-rate record allows the conversion to be checked.</p><p>It also allows the system to change its currency policy later.</p><p>A Canadian investor and a U.S. investor may care about different converted outcomes.</p><p>The original currency remains the common source.</p><h2>Raw data helps expose fake opportunities</h2><p>Bad data can make a company appear dramatically mispriced.</p><p>A stale share count can understate market capitalization.</p><p>A pence-to-pound error can distort valuation by a factor of one hundred.</p><p>A duplicated filing can double earnings.</p><p>A negative capital-expenditure sign can inflate free cash flow.</p><p>Once the error has been transformed into a clean ratio, the fake opportunity may look completely legitimate.</p><p>The raw record provides the evidence needed to trace the mistake.</p><p>This matters because extreme investment results should not be trusted automatically:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;399b4bf5-a388-4654-a06a-2a731b0b345b&quot;,&quot;caption&quot;:&quot;Its earnings may be attached to the wrong share price.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;How Bad Financial Data Creates Fake Investment Opportunities&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:522095337,&quot;name&quot;:&quot;FungalStockEcosystem&quot;,&quot;bio&quot;:&quot;I&#8217;m building an machine learning investing ecosystem inspired by Earth. Companies are trees, data is fruit, animals analyze businesses, and fungal intelligence allocates capital adapting across changing environments.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/db8a58c8-9d8b-4ba4-89ce-0a214b43e88a_1254x1254.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-07-13T09:48:20.912Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!P5FL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6519aa0e-3ea3-4abc-9258-7e1f277d693a_1536x1024.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://fungalstockecosystem.substack.com/p/how-bad-financial-data-creates-fake&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:206818269,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:9630735,&quot;publication_name&quot;:&quot;Fungal Intelligence for Stocks&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!rkRL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d61237e-1721-4509-ad0a-3e65f67831d2_1254x1254.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>The most exciting output may be the strongest reason to inspect the inputs.</p><h2>A correction should not erase the mistake</h2><p>Suppose the system incorrectly mapped one company&#8217;s financial statements to another company&#8217;s stock price.</p><p>The error is found and fixed.</p><p>It may seem reasonable to overwrite the bad record and continue.</p><p>But keeping an audit trail is valuable.</p><p>The system should know:</p><ul><li><p>What was wrong</p></li><li><p>When it was discovered</p></li><li><p>Which records were affected</p></li><li><p>Which features were compiled from them</p></li><li><p>Which historical selections changed</p></li><li><p>Which reports or backtests used the bad result</p></li><li><p>How the issue was repaired</p></li></ul><p>The goal is not to preserve errors as valid data.</p><p>It is to preserve the history of how the system learned.</p><p>Without that history, the same mistake may return under a different form.</p><h2>Failed strategies need the old evidence</h2><p>Suppose a strategy performs poorly.</p><p>To understand why, I need the exact data it used.</p><p>If the underlying database has since been cleaned, corrected, or replaced, rerunning the strategy may produce a different result.</p><p>The failed version can no longer be reproduced.</p><p>That creates a temptation to explain the failure using today&#8217;s improved information.</p><p>But the strategy made its decisions using yesterday&#8217;s evidence.</p><p>Raw snapshots allow the failure to be studied honestly.</p><p>Was the strategy wrong?</p><p>Was the data wrong?</p><p>Did the market change?</p><p>Those are different lessons.</p><p>They require the original decision environment.</p><h2>Reproducibility requires frozen inputs</h2><p>A backtest should not change every time it is rerun unless the researcher intentionally changes something.</p><p>If the rules remain frozen but the results move, the data may have changed underneath them.</p><p>This makes scientific comparison difficult.</p><p>Preserving raw versions allows the system to create reproducible datasets.</p><p>A strategy can be tested against:</p><ul><li><p>Raw-data version 1</p></li><li><p>Cleaning policy version 2</p></li><li><p>Feature definition version 4</p></li><li><p>Strategy rules version 3</p></li></ul><p>This may sound technical, but the principle is simple.</p><p>The result should have an identifiable recipe.</p><p>Otherwise, performance can drift without a clear cause.</p><h2>A permanent warehouse supports a lean working database</h2><p>Keeping raw data forever does not mean every active process must load everything.</p><p>The system can use two layers.</p><h3>The permanent warehouse</h3><p>This stores:</p><ul><li><p>Original provider responses</p></li><li><p>Raw filings</p></li><li><p>Historical versions</p></li><li><p>Source metadata</p></li><li><p>Native currencies</p></li><li><p>Raw prices</p></li><li><p>Corporate-action records</p></li><li><p>Missing or contradictory values</p></li><li><p>Provenance</p></li></ul><p>It is comprehensive and durable.</p><h3>The lean research database</h3><p>This contains only the features needed for the current strategies and backtests.</p><p>It may include:</p><ul><li><p>Current nutrients</p></li><li><p>Point-in-time snapshots</p></li><li><p>Selected prices</p></li><li><p>Outcome labels</p></li><li><p>Eligibility flags</p></li><li><p>Strategy-ready features</p></li></ul><p>The lean database can be rebuilt.</p><p>The warehouse should not need to be.</p><p>This is like keeping a freezer full of raw ingredients while preparing only the meals currently on the menu.</p><p>The menu can change.</p><p>The ingredients remain available.</p><h2>Rebuilding is safer than endlessly patching</h2><p>A derived database can accumulate old assumptions.</p><p>Fields may be calculated under different rules.</p><p>Some rows may use an earlier currency policy.</p><p>Others may use updated provider mappings.</p><p>Over time, the database becomes a mixture of historical logic.</p><p>If the raw warehouse remains intact, the derived database can be rebuilt from a clean specification.</p><p>Every record can pass through the same current transformation rules.</p><p>This is often safer than repairing millions of derived values one by one.</p><p>The raw store makes the system disposable in the right place.</p><p>Derived features are replaceable.</p><p>Source evidence is not.</p><h2>Storage is cheaper than recollection</h2><p>Raw financial data can consume substantial disk space.</p><p>Keeping old versions may appear inefficient.</p><p>But the alternative can be much more expensive.</p><p>Recollecting the data later may involve:</p><ul><li><p>New provider fees</p></li><li><p>API limits</p></li><li><p>Missing historical records</p></li><li><p>Changed provider policies</p></li><li><p>Delisted companies that are no longer available</p></li><li><p>Different results from updated sources</p></li><li><p>Weeks or months of engineering work</p></li></ul><p>Disk space is often cheaper than rebuilding lost history.</p><p>The more difficult the dataset was to collect, clean, and document, the more valuable preservation becomes.</p><h2>Delisted companies make preservation especially important</h2><p>Active-company databases are easier to maintain because the securities still exist.</p><p>Failed and delisted companies are more fragile.</p><p>Their pages may disappear.</p><p>Provider coverage may weaken.</p><p>Ticker symbols may be reused.</p><p>Corporate information may become harder to obtain.</p><p>Yet these companies are essential for honest historical research.</p><p>They represent the failures that real investors could have selected.</p><p>If their raw records are not preserved, the market&#8217;s history gradually becomes cleaner than reality.</p><p>The losers disappear.</p><p>The survivors remain.</p><p>A permanent warehouse protects against this slow creation of survivorship bias.</p><h2>Missing data may become available later</h2><p>A filing that is incomplete today may be repaired later.</p><p>A provider may add history.</p><p>A ticker mapping may be resolved.</p><p>An exchange may clarify a corporate action.</p><p>Keeping the original missing state still matters.</p><p>The system may need to know that the value was unavailable at the historical decision date.</p><p>Later availability should not be backdated into the past.</p><p>This creates two useful records:</p><ul><li><p>What is known now</p></li><li><p>What was known then</p></li></ul><p>The absence itself is part of the historical environment:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;559511a8-3aec-4bf3-a141-60c0e2a9aba7&quot;,&quot;caption&quot;:&quot;A blank field prevents a ratio from being calculated. A company disappears from a stock screen. The analyst moves on to the next business.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Why Missing Data Is Information&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:522095337,&quot;name&quot;:&quot;FungalStockEcosystem&quot;,&quot;bio&quot;:&quot;I&#8217;m building an machine learning investing ecosystem inspired by Earth. Companies are trees, data is fruit, animals analyze businesses, and fungal intelligence allocates capital adapting across changing environments.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/db8a58c8-9d8b-4ba4-89ce-0a214b43e88a_1254x1254.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-07-13T04:16:39.588Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Jfk3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf2460e9-d305-44f6-832b-b3269e01d5dd_1536x1024.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://fungalstockecosystem.substack.com/p/why-missing-data-is-information&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:206790993,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:9630735,&quot;publication_name&quot;:&quot;Fungal Intelligence for Stocks&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!rkRL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d61237e-1721-4509-ad0a-3e65f67831d2_1254x1254.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>A later correction should improve current understanding without rewriting what earlier investors could have seen.</p><h2>Raw data makes estimation visible</h2><p>Sometimes missing values may need to be estimated.</p><p>An estimated filing-availability date may be necessary for a country where exact publication dates are unavailable.</p><p>A financial feature may be reconstructed from related fields.</p><p>These estimates can be useful.</p><p>They should never become indistinguishable from reported facts.</p><p>The warehouse should preserve:</p><ul><li><p>The original missing value</p></li><li><p>The estimation policy</p></li><li><p>The estimated result</p></li><li><p>The confidence level</p></li><li><p>The date the estimate was produced</p></li></ul><p>This allows the strategy to treat exact and estimated evidence differently.</p><p>It also allows the estimate to be replaced if better information appears.</p><h2>Machine learning increases the need for raw preservation</h2><p>A future machine-learning model may consume hundreds of derived features.</p><p>If the model behaves strangely, debugging the final prediction alone will not be enough.</p><p>The feature may be wrong because:</p><ul><li><p>The source data was incorrect</p></li><li><p>A transformation changed</p></li><li><p>A missing value was handled differently</p></li><li><p>The company was classified incorrectly</p></li><li><p>A filing was attached to the wrong date</p></li><li><p>Currency conversion failed</p></li></ul><p>Machine learning adds distance between the original evidence and the final decision.</p><p>That makes the underlying chain more important, not less.</p><p>A powerful model trained on flawed history becomes a more efficient way to repeat the flaw.</p><h2>Raw preservation protects against accidental leakage</h2><p>Outcome data must remain separate from decision inputs.</p><p>A future return, bankruptcy label, or later restatement should not enter the historical feature set before it existed.</p><p>When raw sources, transformed features, and outcomes are kept in distinct layers, leakage is easier to detect.</p><p>The system can ask:</p><ul><li><p>Was this field available on the decision date?</p></li><li><p>Was it derived from a later filing?</p></li><li><p>Did a cleaning rule use knowledge of the outcome?</p></li><li><p>Was a company excluded because it later failed?</p></li></ul><p>Without preserved source dates and versions, these questions become much harder to answer.</p><h2>The system should never depend on memory alone</h2><p>A researcher may remember why a field was transformed a certain way.</p><p>Months later, the reason becomes less clear.</p><p>Years later, it may be forgotten entirely.</p><p>Documentation helps.</p><p>Raw records provide stronger evidence.</p><p>They show exactly what entered the pipeline.</p><p>The system should not depend on me remembering:</p><ul><li><p>Which provider was used</p></li><li><p>Why a value was rejected</p></li><li><p>Which currency unit appeared</p></li><li><p>Whether a filing was restated</p></li><li><p>Which mapping was uncertain</p></li><li><p>Why one company disappeared from the screen</p></li></ul><p>A durable project needs memory outside the creator&#8217;s head.</p><h2>Permanent does not mean untouchable</h2><p>Keeping raw data forever does not mean treating every incoming value as correct.</p><p>Raw records can be marked as:</p><ul><li><p>Valid</p></li><li><p>Invalid</p></li><li><p>Superseded</p></li><li><p>Duplicate</p></li><li><p>Contradictory</p></li><li><p>Estimated</p></li><li><p>Unresolved</p></li></ul><p>The key is that corrections should add context rather than erase history.</p><p>The system can say:</p><p><strong>This was the original provider response. It was later found to be wrong for this reason. This corrected value replaced it in derived calculations.</strong></p><p>That is more informative than silently changing the record.</p><h2>Data deletion can create invisible strategy changes</h2><p>Suppose a screening rule requires five years of revenue history.</p><p>A company originally failed because two years were missing.</p><p>Later, the missing history is deleted from the record entirely, leaving only the three visible years.</p><p>The strategy may no longer know that the company failed due to missing information.</p><p>It may interpret the shorter history as the complete history.</p><p>Small data deletions can therefore alter selection logic without any change to the formal rules.</p><p>Preserving raw states prevents absence from being rewritten as completeness.</p><h2>A warehouse creates accountability</h2><p>When every score can be traced back to its source, the system cannot easily hide behind complexity.</p><p>A company was selected because certain values, rules, and mappings produced the decision.</p><p>If the result was wrong, the chain can be inspected.</p><p>This makes failures more useful.</p><p>The project can distinguish between:</p><ul><li><p>Data failure</p></li><li><p>Transformation failure</p></li><li><p>Classification failure</p></li><li><p>Strategy failure</p></li><li><p>Portfolio-construction failure</p></li><li><p>Ordinary uncertainty</p></li></ul><p>Without the chain, every failure becomes a vague disappointment.</p><p>With it, failure can become information.</p><h2>The warehouse should outlive individual strategies</h2><p>Most investment strategies will eventually change, fail, or become obsolete.</p><p>A durable financial history can support many generations of research.</p><p>One strategy may focus on value.</p><p>Another may study business quality.</p><p>Another may examine deterioration.</p><p>A later system may use classification models, regression, optimization, or shadow portfolios.</p><p>The underlying market history remains useful across all of them.</p><p>The warehouse is therefore broader than the current project stage.</p><p>It is infrastructure for questions that have not yet been invented.</p><h2>The raw data is an asset</h2><p>Companies often treat data as an operational by-product.</p><p>For this project, the historical warehouse is one of the most valuable assets being built.</p><p>It contains:</p><ul><li><p>Time</p></li><li><p>Provider access</p></li><li><p>Cleaning work</p></li><li><p>Mapping decisions</p></li><li><p>Historical availability</p></li><li><p>Failed-company records</p></li><li><p>Country-specific knowledge</p></li><li><p>Lessons from errors</p></li><li><p>The ability to reproduce earlier experiments</p></li></ul><p>Deleting the raw evidence would throw away much of that accumulated work.</p><p>The derived score may be visible.</p><p>The real value lies underneath it.</p><h2>The final principle</h2><p>I do not keep raw financial data because every field will definitely be useful.</p><p>I keep it because I do not yet know which fields, versions, dates, or mistakes will become important later.</p><p>Strategies change.</p><p>Definitions improve.</p><p>Providers revise history.</p><p>Bugs are discovered.</p><p>New questions appear.</p><p>A permanent warehouse allows the system to return to the evidence and begin again without pretending that the earlier assumptions were facts.</p><p>The cleaned database helps the strategy operate.</p><p>The raw database helps the project remain honest.</p><p>One is designed for speed.</p><p>The other is designed for memory.</p><p>Financial history is difficult to reconstruct after it has been discarded.</p><p>Storage can be reorganized.</p><p>Derived features can be rebuilt.</p><p>Strategies can be replaced.</p><p>The original evidence deserves to survive them all.</p><p>That is why I keep raw financial data forever.</p><p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://fungalstockecosystem.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://fungalstockecosystem.substack.com/subscribe?"><span>Subscribe now</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://fungalstockecosystem.substack.com/p/why-i-keep-raw-financial-data-forever?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://fungalstockecosystem.substack.com/p/why-i-keep-raw-financial-data-forever?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://fungalstockecosystem.substack.com/?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share&quot;,&quot;text&quot;:&quot;Share Fungal Intelligence for Stocks&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://fungalstockecosystem.substack.com/?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share Fungal Intelligence for Stocks</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://fungalstockecosystem.substack.com/p/why-i-keep-raw-financial-data-forever/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://fungalstockecosystem.substack.com/p/why-i-keep-raw-financial-data-forever/comments"><span>Leave a comment</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[How Bad Financial Data Creates Fake Investment Opportunities]]></title><description><![CDATA[A stock can appear extraordinarily cheap without actually being cheap.]]></description><link>https://fungalstockecosystem.substack.com/p/how-bad-financial-data-creates-fake</link><guid isPermaLink="false">https://fungalstockecosystem.substack.com/p/how-bad-financial-data-creates-fake</guid><dc:creator><![CDATA[Fungal Stock Ecosystem ML]]></dc:creator><pubDate>Mon, 13 Jul 2026 09:48:20 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!P5FL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6519aa0e-3ea3-4abc-9258-7e1f277d693a_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!P5FL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6519aa0e-3ea3-4abc-9258-7e1f277d693a_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!P5FL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6519aa0e-3ea3-4abc-9258-7e1f277d693a_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!P5FL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6519aa0e-3ea3-4abc-9258-7e1f277d693a_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!P5FL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6519aa0e-3ea3-4abc-9258-7e1f277d693a_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!P5FL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6519aa0e-3ea3-4abc-9258-7e1f277d693a_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!P5FL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6519aa0e-3ea3-4abc-9258-7e1f277d693a_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6519aa0e-3ea3-4abc-9258-7e1f277d693a_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1376895,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://fungalstockecosystem.substack.com/i/206818269?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6519aa0e-3ea3-4abc-9258-7e1f277d693a_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!P5FL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6519aa0e-3ea3-4abc-9258-7e1f277d693a_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!P5FL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6519aa0e-3ea3-4abc-9258-7e1f277d693a_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!P5FL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6519aa0e-3ea3-4abc-9258-7e1f277d693a_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!P5FL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6519aa0e-3ea3-4abc-9258-7e1f277d693a_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Its earnings may be attached to the wrong share price.</p><p>Its financial statements may use one currency while its market value uses another.</p><p>A stock split may have adjusted the price but not the share count.</p><p>A missing value may have been replaced with zero.</p><p>An outdated filing may be compared with today&#8217;s price.</p><p>When this happens, the investment opportunity exists only inside the database.</p><p>The numbers look precise.</p><p>The conclusion is false.</p><p>That is why financial data quality is not merely a technical concern. It is part of investment risk.</p><h2>A ratio is only as reliable as its ingredients</h2><p>Financial ratios often feel objective because they produce clean numbers.</p><p>A company may have:</p><ul><li><p>A price-to-earnings ratio of 6</p></li><li><p>A price-to-book ratio of 0.5</p></li><li><p>A free-cash-flow yield of 18%</p></li><li><p>Revenue growth of 24%</p></li><li><p>Debt-to-equity of 0.4</p></li></ul><p>These figures can immediately attract attention.</p><p>But every ratio is built from underlying inputs.</p><p>A price-to-earnings ratio depends on:</p><ul><li><p>The correct stock price</p></li><li><p>The correct earnings period</p></li><li><p>The correct share count</p></li><li><p>Matching currencies</p></li><li><p>The correct company identity</p></li><li><p>Proper treatment of unusual items</p></li></ul><p>If one ingredient is wrong, the finished ratio can become meaningless.</p><p>A sophisticated formula cannot rescue contaminated inputs.</p><h2>The fake bargain</h2><p>Suppose a company appears to produce $100 million in annual earnings.</p><p>Its market capitalization appears to be $500 million.</p><p>The system calculates a price-to-earnings ratio of 5.</p><p>That looks extremely cheap.</p><p>But imagine that the market capitalization was calculated using an old share count from before the company issued a large number of new shares.</p><p>The true market capitalization might be $900 million.</p><p>The company was never trading at five times earnings.</p><p>The bargain was created by stale data.</p><p>An investor could spend hours researching the company, building a thesis, and becoming emotionally attached to an opportunity that disappeared as soon as the inputs were corrected.</p><h2>Wrong ticker mappings can combine two different companies</h2><p>Ticker symbols are not permanent global identities.</p><p>The same symbol can exist on multiple exchanges.</p><p>A ticker can change after a merger.</p><p>A delisted company&#8217;s symbol may later be reused.</p><p>A provider may use one suffix while another uses something different.</p><p>If the system maps a company&#8217;s financial statements to the wrong security, it can combine:</p><ul><li><p>One company&#8217;s earnings</p></li><li><p>Another company&#8217;s price</p></li><li><p>A third company&#8217;s currency</p></li><li><p>An outdated share count</p></li></ul><p>The resulting valuation may look spectacular.</p><p>It is also fictional.</p><p>This is one reason a database should preserve company identities, exchange information, provider symbols, and mapping confidence&#8212;not merely a short ticker symbol.</p><h2>Currency mistakes can create enormous distortions</h2><p>Global investing introduces another source of false opportunity.</p><p>Suppose a company reports revenue and earnings in Australian dollars, but its market value is accidentally treated as U.S. dollars.</p><p>Or a stock trading in British pence is interpreted as though it were trading in pounds.</p><p>A share priced at 250 pence should represent &#163;2.50.</p><p>If the system interprets it as &#163;250, the company appears one hundred times more expensive than it really is.</p><p>The reverse mistake can create an apparently unbelievable bargain.</p><p>Currency problems can affect:</p><ul><li><p>Market capitalization</p></li><li><p>Earnings</p></li><li><p>Cash flow</p></li><li><p>Debt</p></li><li><p>Book value</p></li><li><p>Historical returns</p></li><li><p>Portfolio performance</p></li></ul><p>A ratio is valid only when its numerator and denominator speak the same financial language.</p><h2>Foreign exchange changes the investor&#8217;s actual return</h2><p>Even when company-level ratios are calculated correctly, portfolio returns can still be distorted.</p><p>A German stock may rise in euros while the euro falls against the investor&#8217;s home currency.</p><p>The local business performed well.</p><p>The investor&#8217;s converted return may be weaker.</p><p>A backtest that mixes native-currency prices with dollar-denominated portfolio values may report returns that no investor could have earned.</p><p>The system should distinguish between:</p><ul><li><p>Native prices for local trading behaviour</p></li><li><p>Converted prices for portfolio truth</p></li><li><p>The exchange rate available on each date</p></li><li><p>The currency in which the financial statements were reported</p></li></ul><p>Without that separation, international diversification can become mathematically inconsistent.</p><h2>Stock splits can manufacture growth or collapse</h2><p>Stock splits should not change the economic value of a company.</p><p>If one share becomes ten shares, the price per share should fall proportionally.</p><p>But databases do not always adjust every field consistently.</p><p>Suppose historical prices are split-adjusted, but historical share counts are not.</p><p>The system may conclude that:</p><ul><li><p>Market capitalization collapsed</p></li><li><p>Earnings per share changed dramatically</p></li><li><p>Share dilution occurred</p></li><li><p>Valuation ratios improved overnight</p></li></ul><p>None of those conclusions may be real.</p><p>The company simply changed the number of pieces into which ownership was divided.</p><p>Corporate actions must be treated consistently across price, share count, and per-share calculations.</p><h2>Dilution disappears when share-count history is weak</h2><p>A company can grow while repeatedly issuing new shares.</p><p>Revenue rises.</p><p>Total earnings rise.</p><p>The business becomes larger.</p><p>But each existing shareholder may own a smaller percentage of the company.</p><p>If the database contains only the latest share count, the system may miss years of dilution.</p><p>A company that increased total earnings by 50% while doubling its share count did not improve earnings per share.</p><p>The business grew.</p><p>The shareholder&#8217;s claim on the business weakened.</p><p>Bad share-count data can transform dilution into apparent growth.</p><p>That can make an expensive financing habit look like successful expansion.</p><h2>Missing values can become imaginary strength</h2><p>A blank field should mean that the system does not currently know the value.</p><p>But some pipelines replace missing values with zero.</p><p>This is dangerous.</p><p>Missing debt becomes zero debt.</p><p>Missing dilution becomes zero dilution.</p><p>Missing capital expenditures can make free cash flow appear stronger.</p><p>Missing losses can disappear from a growth calculation.</p><p>The system may then reward a company for information it never received.</p><p>Unknown is not a favourable result.</p><p>It is an unresolved state.</p><p>The investment process should recognize that boundary:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;5d085f7f-3e1c-444e-a9df-2b6dca72f6ed&quot;,&quot;caption&quot;:&quot;A blank field prevents a ratio from being calculated. A company disappears from a stock screen. The analyst moves on to the next business.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Why Missing Data Is Information&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:522095337,&quot;name&quot;:&quot;FungalStockEcosystem&quot;,&quot;bio&quot;:&quot;I&#8217;m building an machine learning investing ecosystem inspired by Earth. Companies are trees, data is fruit, animals analyze businesses, and fungal intelligence allocates capital adapting across changing environments.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/db8a58c8-9d8b-4ba4-89ce-0a214b43e88a_1254x1254.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-07-13T04:16:39.588Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Jfk3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf2460e9-d305-44f6-832b-b3269e01d5dd_1536x1024.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://fungalstockecosystem.substack.com/p/why-missing-data-is-information&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:206790993,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:9630735,&quot;publication_name&quot;:&quot;Fungal Intelligence for Stocks&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!rkRL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d61237e-1721-4509-ad0a-3e65f67831d2_1254x1254.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>A company should not pass a test merely because the system was unable to perform it.</p><h2>Duplicate filings can double the company&#8217;s apparent performance</h2><p>Financial providers may store annual and quarterly records together.</p><p>A company may report the same period more than once after restating its results.</p><p>Two providers may deliver overlapping versions of the same filing.</p><p>If duplicates are not detected, the system may add values that should never have been combined.</p><p>Revenue can appear to double.</p><p>Cash flow can be counted twice.</p><p>Growth rates can jump unexpectedly.</p><p>The database may still contain legitimate-looking rows.</p><p>The error appears only when the records are interpreted as a time series.</p><p>Deduplication therefore requires more than removing identical rows.</p><p>The system must understand reporting periods, filing dates, statement types, and restatements.</p><h2>Annual, quarterly, and trailing figures can be mixed incorrectly</h2><p>A company&#8217;s latest annual earnings should not be compared directly with another company&#8217;s latest quarter as though they covered the same amount of time.</p><p>Yet this can happen when a database stores figures without clearly preserving their period.</p><p>One company may show twelve months of revenue.</p><p>Another may show three months.</p><p>A third may show a provider-calculated trailing figure.</p><p>The ranking system compares them as though they were equivalent.</p><p>The shorter-period company may look unusually small, unusually cheap, or unusually fast-growing.</p><p>Every financial value needs a clear period:</p><ul><li><p>Fiscal year</p></li><li><p>Fiscal quarter</p></li><li><p>Trailing twelve months</p></li><li><p>Year-to-date</p></li><li><p>Point-in-time balance</p></li></ul><p>Without period discipline, comparisons become arithmetic without meaning.</p><h2>Filing dates and period-end dates are different</h2><p>A company may report results for the year ending December 31.</p><p>Investors might not receive those results until February or March.</p><p>A backtest that makes the December figures available on December 31 gives the strategy information from the future.</p><p>The numbers are historically correct.</p><p>Their availability date is wrong.</p><p>This creates a fake opportunity because the simulated investor can buy before the market had access to the evidence supporting the purchase.</p><p>Point-in-time research must distinguish between:</p><ul><li><p>The period the results describe</p></li><li><p>The date the filing became public</p></li><li><p>The date the system could reasonably have processed it</p></li><li><p>The date the strategy acted</p></li></ul><p>Without that chain, a backtest can become unintentionally clairvoyant.</p><h2>Restated history can give the strategy knowledge investors lacked</h2><p>Companies sometimes revise earlier financial statements.</p><p>Errors are corrected.</p><p>Accounting policies change.</p><p>Later filings may present a cleaner version of the past.</p><p>A modern database might replace the original historical value with the corrected one.</p><p>That is useful for understanding the company today.</p><p>It can be misleading for simulating an earlier investor.</p><p>The earlier investor saw the original filing, not the later correction.</p><p>A point-in-time database may therefore need to preserve both:</p><ul><li><p>What is now believed to be correct</p></li><li><p>What was actually known at the historical decision date</p></li></ul><p>Otherwise, the strategy learns from corrections that had not yet happened.</p><p>A beautiful backtest can be built on information unavailable in real life:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;42e260ba-d3cc-4181-abfa-f20ddd4ed292&quot;,&quot;caption&quot;:&quot;The chart rises smoothly. Losses appear manageable. The strategy beats the market year after year.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;A Great Backtest Can Be Completely Useless&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:522095337,&quot;name&quot;:&quot;FungalStockEcosystem&quot;,&quot;bio&quot;:&quot;I&#8217;m building an machine learning investing ecosystem inspired by Earth. Companies are trees, data is fruit, animals analyze businesses, and fungal intelligence allocates capital adapting across changing environments.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/db8a58c8-9d8b-4ba4-89ce-0a214b43e88a_1254x1254.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-07-13T04:09:35.042Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!u23h!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6774b1ad-59cd-490b-bd65-585c5ffc0cf2_1536x1024.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://fungalstockecosystem.substack.com/p/a-great-backtest-can-be-completely&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:206790493,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:9630735,&quot;publication_name&quot;:&quot;Fungal Intelligence for Stocks&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!rkRL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d61237e-1721-4509-ad0a-3e65f67831d2_1254x1254.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>A historical test is only meaningful when its information was historically available.</p><h2>Provider-defined metrics may hide inconsistent formulas</h2><p>A data provider may offer a ready-made free-cash-flow field.</p><p>That seems convenient.</p><p>But how was it calculated?</p><p>One provider may subtract capital expenditures from operating cash flow.</p><p>Another may include acquisitions.</p><p>Another may use a trailing period.</p><p>Another may leave the field blank when one component is unavailable.</p><p>The same label can represent different formulas.</p><p>This can create inconsistent comparisons across companies or countries.</p><p>The safest approach is often to preserve the raw components and calculate the desired metric through a documented rule.</p><p>That does not eliminate all uncertainty.</p><p>It makes the assumption visible and reproducible.</p><h2>Negative signs can reverse the conclusion</h2><p>Cash-flow statements frequently represent outflows as negative numbers.</p><p>A capital-expenditure field may already be negative.</p><p>If the system calculates:</p><p><strong>Operating cash flow minus capital expenditures</strong></p><p>while capital expenditures are stored as a negative number, it effectively adds the expenditure.</p><p>Free cash flow becomes overstated.</p><p>A company spending heavily may appear to generate enormous excess cash.</p><p>This is a small technical mistake with a major investment consequence.</p><p>Sign conventions need to be understood rather than guessed.</p><h2>Units can create thousandfold errors</h2><p>Financial data may be reported in:</p><ul><li><p>Dollars</p></li><li><p>Thousands of dollars</p></li><li><p>Millions of dollars</p></li><li><p>Pence</p></li><li><p>Cents</p></li><li><p>Local currency</p></li><li><p>Converted currency</p></li></ul><p>If a provider reports revenue as 500 because the value represents $500 million, another system may interpret it as $500.</p><p>If debt is stored in thousands while assets are stored in whole units, the leverage ratio becomes meaningless.</p><p>Unit errors often produce extreme ratios.</p><p>Those extreme ratios can rise to the top of a stock screen because they look exceptional.</p><p>The system may mistake a scaling error for a rare opportunity.</p><p>Extreme results should trigger validation, not immediate excitement.</p><h2>Stale prices can create yesterday&#8217;s opportunity at today&#8217;s date</h2><p>Small or foreign securities may trade infrequently.</p><p>A provider may show the last available price even when that price is several days old.</p><p>The financial database uses current information.</p><p>The price belongs to an earlier market.</p><p>If the stock moved sharply afterward, the valuation is no longer available.</p><p>A strategy can appear to buy at a price that existed only before the relevant information became public.</p><p>Price freshness matters.</p><p>The system should know:</p><ul><li><p>The trade date</p></li><li><p>The market calendar</p></li><li><p>Whether the market was open</p></li><li><p>Whether the price was stale</p></li><li><p>Whether enough volume traded</p></li><li><p>Whether the investor could realistically transact</p></li></ul><p>A number printed in a price field is not automatically an executable price.</p><h2>Adjusted and unadjusted prices answer different questions</h2><p>Unadjusted prices show what one share traded for at the time.</p><p>Adjusted prices account for events such as splits and dividends.</p><p>Both can be useful.</p><p>Problems appear when they are mixed.</p><p>A strategy may calculate entry prices using adjusted data but compare them with unadjusted exits.</p><p>Dividends may be counted twice.</p><p>A split may appear to create a large loss.</p><p>Historical returns become distorted.</p><p>The system should use a consistent price policy and document what the selected series represents.</p><h2>Delisted companies can disappear from the market&#8217;s history</h2><p>A modern data source may contain only companies that still trade today.</p><p>Failed, acquired, bankrupt, or delisted businesses may be missing.</p><p>A strategy tested on this population receives an easier market.</p><p>Many of the worst outcomes have already been removed.</p><p>The remaining companies appear healthier.</p><p>Financial ratios may seem more predictive because the population was filtered by survival before the strategy began.</p><p>This is not merely a missing-data problem.</p><p>It changes the investment universe.</p><p>A reliable historical system must remember the companies that failed, not only the companies that survived.</p><h2>Incorrect classifications create false comparisons</h2><p>A company can have correct financial data and still be evaluated incorrectly.</p><p>A bank may be treated as an ordinary operating company.</p><p>A real estate trust may be judged using standard net income.</p><p>A miner may be rewarded for unusually high profits at the peak of a commodity cycle.</p><p>The numerical inputs are real.</p><p>The interpretation is wrong.</p><p>This is why raw data and investment decisions should remain separate:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;20010ae4-bd7e-4530-8878-2ef1b93862f2&quot;,&quot;caption&quot;:&quot;The database should record what happened.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Why My Stock System Separates Data From Decisions&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:522095337,&quot;name&quot;:&quot;FungalStockEcosystem&quot;,&quot;bio&quot;:&quot;I&#8217;m building an machine learning investing ecosystem inspired by Earth. Companies are trees, data is fruit, animals analyze businesses, and fungal intelligence allocates capital adapting across changing environments.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/db8a58c8-9d8b-4ba4-89ce-0a214b43e88a_1254x1254.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-07-13T09:27:19.302Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Nd_U!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa18a598e-7abe-4f1a-8463-079e62ddc8f8_1672x941.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://fungalstockecosystem.substack.com/p/why-my-stock-system-separates-data&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:206816205,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:9630735,&quot;publication_name&quot;:&quot;Fungal Intelligence for Stocks&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!rkRL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d61237e-1721-4509-ad0a-3e65f67831d2_1254x1254.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>The database preserves the evidence.</p><p>The strategy decides which ruler belongs to each business.</p><h2>Extreme values are often data problems before they are opportunities</h2><p>When a company looks dramatically cheaper than everything around it, there are several possible explanations.</p><p>The market may be wrong.</p><p>The company may be extremely risky.</p><p>The business may be cyclical.</p><p>Or the data may be broken.</p><p>The correct first reaction is not excitement.</p><p>It is validation.</p><p>Questions should include:</p><ul><li><p>Does another provider show the same value?</p></li><li><p>Does the original filing support it?</p></li><li><p>Are the units correct?</p></li><li><p>Are the currencies aligned?</p></li><li><p>Is the price current?</p></li><li><p>Is the share count accurate?</p></li><li><p>Did a split or merger occur?</p></li><li><p>Are the earnings annual or quarterly?</p></li><li><p>Was a one-time gain included?</p></li><li><p>Does the ratio remain attractive after correction?</p></li></ul><p>A genuine bargain should survive inspection.</p><p>A fake one usually disappears when the pipeline is repaired.</p><h2>Cheap screens are especially vulnerable</h2><p>Value strategies search for unusual relationships between price and financial strength.</p><p>That makes them sensitive to data errors.</p><p>A growth screen may be distorted by one incorrect growth rate.</p><p>A value screen can place the most broken records at the very top because errors often create extreme cheapness.</p><p>Examples include:</p><ul><li><p>Missing debt interpreted as zero</p></li><li><p>Market capitalization understated by stale share counts</p></li><li><p>Earnings overstated by duplicated periods</p></li><li><p>Foreign prices misread by a factor of 100</p></li><li><p>One-time gains treated as recurring profit</p></li><li><p>Negative capital expenditure handled with the wrong sign</p></li></ul><p>A screen designed to find outliers will also find outlier errors.</p><p>The stronger the apparent bargain, the stronger the need for verification.</p><h2>The screener should reject suspicious data</h2><p>A stock screener should not merely apply financial thresholds.</p><p>It should also protect itself from questionable inputs.</p><p>A company might be quarantined when:</p><ul><li><p>Important fields disagree across sources</p></li><li><p>Valuation ratios are economically impossible</p></li><li><p>Prices are stale</p></li><li><p>Currency is uncertain</p></li><li><p>Share-count history is missing</p></li><li><p>Filing periods overlap</p></li><li><p>Corporate actions remain unresolved</p></li><li><p>The company identity is ambiguous</p></li></ul><p>This does not prove the company is unattractive.</p><p>It proves the system cannot yet evaluate it honestly.</p><p>The screener&#8217;s purpose is to reduce avoidable mistakes, not force every company into a ranking.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;9ac69722-8ecb-4f4b-b698-c92cad47af89&quot;,&quot;caption&quot;:&quot;Enter a few financial conditions, press a button, and receive a list of investment ideas.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;A Stock Screener Should Reject More Than It Selects&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:522095337,&quot;name&quot;:&quot;FungalStockEcosystem&quot;,&quot;bio&quot;:&quot;I&#8217;m building an machine learning investing ecosystem inspired by Earth. Companies are trees, data is fruit, animals analyze businesses, and fungal intelligence allocates capital adapting across changing environments.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/db8a58c8-9d8b-4ba4-89ce-0a214b43e88a_1254x1254.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-07-13T09:18:48.213Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!GZ2w!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f9409e0-ae0e-402a-90f8-13c36a896150_1536x1024.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://fungalstockecosystem.substack.com/p/a-stock-screener-should-reject-more&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:206815669,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:1,&quot;comment_count&quot;:0,&quot;publication_id&quot;:9630735,&quot;publication_name&quot;:&quot;Fungal Intelligence for Stocks&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!rkRL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d61237e-1721-4509-ad0a-3e65f67831d2_1254x1254.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>Rejecting unreliable evidence can be just as important as rejecting weak economics.</p><h2>Data-quality scores should influence confidence</h2><p>Suppose two companies receive the same investment score.</p><p>The first has:</p><ul><li><p>Ten years of consistent filings</p></li><li><p>Verified prices</p></li><li><p>Stable currency mappings</p></li><li><p>Clear share-count history</p></li><li><p>No unresolved contradictions</p></li></ul><p>The second has:</p><ul><li><p>Missing periods</p></li><li><p>Estimated values</p></li><li><p>Uncertain ticker mappings</p></li><li><p>Stale prices</p></li><li><p>Several provider disagreements</p></li></ul><p>The final numerical score may be identical.</p><p>The confidence behind it should not be.</p><p>A data-quality layer can help distinguish between:</p><ul><li><p>Strong conclusion from strong evidence</p></li><li><p>Tentative conclusion from weak evidence</p></li></ul><p>The second company may deserve investigation rather than immediate rejection.</p><p>It should not be treated as equally certain.</p><h2>Provenance creates a chain of evidence</h2><p>Every important value should carry context.</p><p>The system should know:</p><ul><li><p>Which provider supplied it</p></li><li><p>Which filing it came from</p></li><li><p>Which company identity it belongs to</p></li><li><p>Which period it describes</p></li><li><p>When it became available</p></li><li><p>Which currency and unit it uses</p></li><li><p>Whether it was reported or calculated</p></li><li><p>Which transformations were applied</p></li><li><p>Whether validation checks passed</p></li></ul><p>This information is called provenance.</p><p>It allows a final investment score to be traced back to its ingredients.</p><p>Without provenance, correcting an error becomes difficult.</p><p>The system may know that a ratio is wrong without knowing where the problem entered.</p><h2>Reproducibility is an investment feature</h2><p>A trustworthy result should be reproducible.</p><p>Given the same data, rules, and date, the system should reach the same conclusion.</p><p>If it cannot, the historical evidence is unstable.</p><p>Reproducibility allows questions such as:</p><ul><li><p>Why did this company pass yesterday?</p></li><li><p>Which filing changed the score?</p></li><li><p>Did the company change, or did the pipeline change?</p></li><li><p>Which strategies used the incorrect value?</p></li><li><p>Did the correction alter historical selections?</p></li><li><p>Does the original investment thesis still exist?</p></li></ul><p>This is not merely good software engineering.</p><p>It helps prevent capital from being allocated based on conclusions that cannot be explained.</p><h2>Validation should happen before ranking</h2><p>The pipeline should not calculate every possible ratio and hope that the final score hides the bad inputs.</p><p>Validation should occur earlier.</p><p>A reasonable sequence is:</p><ol><li><p>Confirm the company identity.</p></li><li><p>Confirm the exchange and trading currency.</p></li><li><p>Verify filing dates and reporting periods.</p></li><li><p>Normalize units.</p></li><li><p>Resolve splits and corporate actions.</p></li><li><p>Check share-count consistency.</p></li><li><p>Detect duplicates and contradictions.</p></li><li><p>Preserve missing values honestly.</p></li><li><p>Calculate strategy-specific features.</p></li><li><p>Rank only the companies with usable evidence.</p></li></ol><p>This keeps bad inputs from becoming sophisticated-looking outputs.</p><h2>Manual inspection still has a role</h2><p>Automation is necessary when studying thousands of companies.</p><p>But unusual opportunities deserve manual verification.</p><p>A human can open the filing, inspect the price history, compare providers, and examine corporate actions.</p><p>The system&#8217;s job is not to eliminate judgment.</p><p>It is to direct judgment toward the cases where it matters most.</p><p>The most attractive candidates should face more scrutiny, not less.</p><p>A company that appears ordinary may pass through standard checks.</p><p>A company that appears almost impossibly cheap should be treated like a software result that fails a sanity test.</p><h2>Bad data can also hide real opportunities</h2><p>Data errors do not only create fake bargains.</p><p>They can conceal genuine ones.</p><p>A company may appear excessively expensive because:</p><ul><li><p>Its price was interpreted in the wrong units</p></li><li><p>Earnings were missing</p></li><li><p>A filing was mapped incorrectly</p></li><li><p>A share split was mishandled</p></li><li><p>Cash flow was attached to the wrong period</p></li></ul><p>The screener rejects the company.</p><p>The opportunity disappears from the research queue.</p><p>This is why data quality should not be viewed only as protection from false positives.</p><p>It also protects against false negatives.</p><p>A better database does not guarantee better returns.</p><p>It creates a fairer opportunity set.</p><h2>The investment system must distinguish three failures</h2><p>When a company performs poorly, several things may have happened:</p><ol><li><p><strong>The data was wrong.</strong><br>The opportunity never existed as measured.</p></li><li><p><strong>The interpretation was wrong.</strong><br>The data was correct, but the strategy misunderstood it.</p></li><li><p><strong>The future changed.</strong><br>The evidence and reasoning were reasonable, but an uncertain outcome went badly.</p></li></ol><p>These failures require different responses.</p><p>A data error requires pipeline repair.</p><p>An interpretation error requires strategy improvement.</p><p>An uncertain outcome may require no rule change at all.</p><p>Without clean separation, every loss can be blamed on the strategy&#8212;or excused as bad luck&#8212;without understanding the true cause.</p><h2>The goal is not perfect data</h2><p>No financial database will be perfect.</p><p>Companies report differently.</p><p>Providers make mistakes.</p><p>Currencies change.</p><p>Corporate actions create complications.</p><p>Historical records remain incomplete.</p><p>The correct objective is not flawless knowledge.</p><p>It is controlled uncertainty.</p><p>The system should know where evidence is strong, where it is weak, and where it is missing.</p><p>It should preserve the original records, document transformations, quarantine suspicious cases, and avoid pretending that every number deserves equal trust.</p><h2>A fake opportunity is worse than no opportunity</h2><p>An empty screen can feel frustrating.</p><p>A database full of apparently cheap stocks feels productive.</p><p>But activity is not the goal.</p><p>A fake investment opportunity consumes:</p><ul><li><p>Research time</p></li><li><p>Attention</p></li><li><p>Emotional energy</p></li><li><p>Backtesting capacity</p></li><li><p>Confidence</p></li><li><p>Potentially real capital</p></li></ul><p>It can influence future rules because the researcher tries to explain a pattern that came from an error.</p><p>It can even make a broken strategy look successful if the same bad data affects the backtest.</p><p>Sometimes the safest and most accurate conclusion is:</p><p><strong>This company cannot yet be evaluated reliably.</strong></p><p>That is better than manufacturing conviction from corrupted evidence.</p><h2>The final lesson</h2><p>Markets contain genuine mispricings.</p><p>Businesses do become misunderstood.</p><p>Strong companies are sometimes sold too cheaply.</p><p>But the most extraordinary bargain in a database may not be a market failure.</p><p>It may be a data failure.</p><p>Before asking why other investors missed the opportunity, the system should ask whether the opportunity survives basic verification.</p><p>Are the company, price, currency, period, share count, and financial statements aligned?</p><p>Were the values actually available at the time?</p><p>Are missing fields still missing, or were they turned into favourable assumptions?</p><p>Can the result be reproduced from the original evidence?</p><p>A reliable investment process does not begin by trusting the most exciting number.</p><p>It begins by trying to prove that the number is real.</p><p>Bad financial data creates fake investment opportunities.</p><p>Good data does not tell us what to buy.</p><p>It gives us a market that actually existed&#8212;and a fair chance to make an honest decision inside it.</p><p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://fungalstockecosystem.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://fungalstockecosystem.substack.com/subscribe?"><span>Subscribe now</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://fungalstockecosystem.substack.com/p/how-bad-financial-data-creates-fake?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://fungalstockecosystem.substack.com/p/how-bad-financial-data-creates-fake?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://fungalstockecosystem.substack.com/?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share&quot;,&quot;text&quot;:&quot;Share Fungal Intelligence for Stocks&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://fungalstockecosystem.substack.com/?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share Fungal Intelligence for Stocks</span></a></p><div class="directMessage button" data-attrs="{&quot;userId&quot;:522095337,&quot;userName&quot;:&quot;FungalStockEcosystem&quot;,&quot;canDm&quot;:null,&quot;dmUpgradeOptions&quot;:null,&quot;isEditorNode&quot;:true}" data-component-name="DirectMessageToDOM"></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://fungalstockecosystem.substack.com/p/how-bad-financial-data-creates-fake/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://fungalstockecosystem.substack.com/p/how-bad-financial-data-creates-fake/comments"><span>Leave a comment</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Why Missing Data Is Information]]></title><description><![CDATA[Investors usually treat missing financial data as an inconvenience.]]></description><link>https://fungalstockecosystem.substack.com/p/why-missing-data-is-information</link><guid isPermaLink="false">https://fungalstockecosystem.substack.com/p/why-missing-data-is-information</guid><dc:creator><![CDATA[Fungal Stock Ecosystem ML]]></dc:creator><pubDate>Mon, 13 Jul 2026 04:16:39 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Jfk3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf2460e9-d305-44f6-832b-b3269e01d5dd_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Jfk3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf2460e9-d305-44f6-832b-b3269e01d5dd_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Jfk3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf2460e9-d305-44f6-832b-b3269e01d5dd_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!Jfk3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf2460e9-d305-44f6-832b-b3269e01d5dd_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!Jfk3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf2460e9-d305-44f6-832b-b3269e01d5dd_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!Jfk3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf2460e9-d305-44f6-832b-b3269e01d5dd_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Jfk3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf2460e9-d305-44f6-832b-b3269e01d5dd_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cf2460e9-d305-44f6-832b-b3269e01d5dd_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1477671,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://fungalstockecosystem.substack.com/i/206790993?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf2460e9-d305-44f6-832b-b3269e01d5dd_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Jfk3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf2460e9-d305-44f6-832b-b3269e01d5dd_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!Jfk3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf2460e9-d305-44f6-832b-b3269e01d5dd_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!Jfk3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf2460e9-d305-44f6-832b-b3269e01d5dd_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!Jfk3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf2460e9-d305-44f6-832b-b3269e01d5dd_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>A blank field prevents a ratio from being calculated. A company disappears from a stock screen. The analyst moves on to the next business.</p><p>But missing data is not always meaningless.</p><p>Sometimes the absence of a number tells us something important about the company, the provider, or the reliability of the analysis.</p><p>That is why my system should not simply erase missing data or quietly replace it with zero.</p><p>It needs to ask why the information is missing.</p><h2>A blank value is not zero</h2><p>Suppose a company has no reported free-cash-flow figure.</p><p>That does not mean its free cash flow was zero.</p><p>The value could be missing because:</p><ul><li><p>The company did not publish enough information</p></li><li><p>The provider failed to collect the filing</p></li><li><p>The company recently changed reporting formats</p></li><li><p>The ticker was mapped incorrectly</p></li><li><p>The cash-flow statement was incomplete</p></li><li><p>The company is too new to have enough history</p></li><li><p>The calculation requires another missing field</p></li></ul><p>These explanations have very different meanings.</p><p>Replacing the blank with zero would create false information.</p><p>It could make a profitable company look weak or make a risky company appear easier to evaluate than it really is.</p><p>Unknown and zero are not the same thing.</p><h2>Missingness can reveal weak infrastructure</h2><p>Sometimes the company is not the problem.</p><p>The data pipeline is.</p><p>A provider may have excellent coverage in the United States but weaker coverage in another country.</p><p>A foreign ticker may use a different exchange suffix.</p><p>A company may trade in one currency while reporting in another.</p><p>A filing may exist, but the system may have attached it to the wrong security.</p><p>In these cases, missing data identifies a weakness in the research infrastructure.</p><p>That is useful.</p><p>A blank cell can point toward a broken route, an incomplete provider mapping, or a failed transformation.</p><p>Ignoring it would allow the same error to contaminate future research.</p><h2>Missingness can also reveal company risk</h2><p>Other times, the missing information belongs to the company itself.</p><p>Some businesses report clearly and consistently.</p><p>Others change definitions, publish incomplete statements, delay filings, or make it difficult to connect one reporting period to another.</p><p>A company that is difficult to measure may also be difficult to trust.</p><p>This does not mean every missing field proves that management is hiding something.</p><p>There are innocent explanations.</p><p>Smaller companies may have fewer reporting resources. Different countries may require different disclosures. Certain industries naturally present their accounts differently.</p><p>But poor transparency should not be invisible.</p><p>If two otherwise similar companies exist, and one provides a long, consistent history while the other repeatedly produces gaps and contradictions, that difference matters.</p><p>Data quality can become part of investment quality.</p><h2>Screeners hide the rejected population</h2><p>Imagine creating a screen that requires positive free cash flow, low debt, and five years of revenue history.</p><p>The screener returns 200 companies.</p><p>It is tempting to assume those are simply the 200 businesses that passed the rules.</p><p>But what happened to everything else?</p><p>Some companies genuinely failed the financial conditions.</p><p>Others may have disappeared because one required number was unavailable.</p><p>Those are not the same outcome.</p><p>A company with excessive debt was evaluated and rejected.</p><p>A company with missing debt information was never fully evaluated.</p><p>When both disappear from the results, the investor cannot distinguish a deliberate rejection from a data failure.</p><p>That creates a hidden bias.</p><p>The final list may favour companies, industries, and countries with better data coverage rather than those with better economics.</p><h2>Missing data can distort backtests</h2><p>This problem becomes more dangerous when testing historical strategies.</p><p>Suppose the companies with complete financial histories are also the larger, older, and more successful businesses.</p><p>If incomplete companies are removed from the test, the dataset becomes cleaner than the real market was.</p><p>Failed companies may vanish.</p><p>Newer companies may vanish.</p><p>Businesses from poorly covered exchanges may vanish.</p><p>The strategy is then tested on a population that was partly selected by data availability.</p><p>Its performance may look stronger because the hardest companies were removed before the strategy had to judge them.</p><p>This is similar to survivorship bias.</p><p>The missing records can quietly reshape the past.</p><h2>Filling every gap can be just as dangerous</h2><p>One possible solution is to estimate missing values.</p><p>Sometimes that is reasonable.</p><p>A short gap in a stable time series might be estimated carefully. A known accounting relationship may allow a value to be reconstructed from other reported fields.</p><p>But estimation creates its own risks.</p><p>The system may become confident about information that was never actually reported.</p><p>A few assumptions can gradually turn into a fictional financial history.</p><p>The more estimated values a company contains, the less independent evidence remains.</p><p>My system therefore needs to distinguish among:</p><ul><li><p>Reported values</p></li><li><p>Calculated values</p></li><li><p>Estimated values</p></li><li><p>Missing values</p></li><li><p>Invalid or contradictory values</p></li></ul><p>All five categories may contain numbers&#8212;or the absence of numbers&#8212;but they do not deserve the same level of trust.</p><h2>Data quality should affect confidence</h2><p>Imagine two stocks receive the same score.</p><p>The first score is based on ten years of consistent filings, stable definitions, and complete financial statements.</p><p>The second is based on scattered reports, reconstructed values, and several missing periods.</p><p>Treating those scores as equally reliable would be a mistake.</p><p>The final number may be identical.</p><p>The evidence behind it is not.</p><p>This suggests that data quality should influence how much confidence the system places in a company&#8217;s ranking.</p><p>A business should not automatically receive a bad score just because information is missing.</p><p>But it may deserve:</p><ul><li><p>A lower confidence level</p></li><li><p>A separate warning</p></li><li><p>A stricter margin of safety</p></li><li><p>Exclusion from certain comparisons</p></li><li><p>More manual investigation</p></li><li><p>Quarantine until coverage improves</p></li></ul><p>The goal is not to punish uncertainty.</p><p>It is to stop uncertainty from pretending to be precision.</p><h2>The pattern of missingness matters</h2><p>One isolated blank may not mean much.</p><p>A repeated pattern can mean more.</p><p>Does the company consistently lack cash-flow information?</p><p>Are share-count figures missing during periods of heavy dilution?</p><p>Do gaps appear around major acquisitions?</p><p>Are certain countries or exchanges systematically underrepresented?</p><p>Does one provider fail while another has complete coverage?</p><p>The pattern helps separate random technical errors from structural problems.</p><p>In biology, one dead leaf tells us little.</p><p>A repeated pattern of damaged leaves across the whole tree suggests a deeper issue.</p><p>Financial data works similarly.</p><h2>The system should remember why</h2><p>A strong database should not store only the value.</p><p>It should also preserve information about the value.</p><p>Where did it come from?</p><p>When was it reported?</p><p>Was it calculated?</p><p>Was it converted between currencies?</p><p>Did a provider return no data?</p><p>Did validation fail?</p><p>Was the value rejected because it was impossible or contradictory?</p><p>This creates a chain of evidence.</p><p>Instead of seeing only a blank cell, the system can understand the state of knowledge surrounding that cell.</p><p>That makes future repairs possible.</p><p>It also prevents one missing number from being silently transformed into a false conclusion.</p><h2>Honest uncertainty is valuable</h2><p>Investing systems often try to turn everything into a clean score.</p><p>Clean scores are comfortable.</p><p>They make companies easy to rank and decisions easy to explain.</p><p>But the real world is not always complete enough to support that confidence.</p><p>Sometimes the correct answer is:</p><p><strong>We do not know enough yet.</strong></p><p>That is not a failure of analysis.</p><p>It is an honest result of analysis.</p><p>A system that recognizes uncertainty may reject more opportunities.</p><p>It may look less decisive.</p><p>But it is also less likely to build confident decisions on imaginary evidence.</p><h2>The absence is part of the evidence</h2><p>Financial data tells us what a company reported.</p><p>Missing data tells us where our knowledge ends.</p><p>That boundary matters.</p><p>A blank field may reveal a broken provider connection, an unusual accounting structure, a young company, weak disclosure, or a deeper reliability problem.</p><p>The correct response is not always to reject the company.</p><p>It is to investigate the cause and reduce confidence until the uncertainty is understood.</p><p>The numbers that exist help us measure a business.</p><p>The numbers that are missing help us measure how much we should trust that measurement.</p><p>That is why missing data is information.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://fungalstockecosystem.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://fungalstockecosystem.substack.com/subscribe?"><span>Subscribe now</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://fungalstockecosystem.substack.com/p/why-missing-data-is-information?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://fungalstockecosystem.substack.com/p/why-missing-data-is-information?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://fungalstockecosystem.substack.com/?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share&quot;,&quot;text&quot;:&quot;Share Fungal Intelligence for Stocks&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://fungalstockecosystem.substack.com/?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share Fungal Intelligence for Stocks</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://fungalstockecosystem.substack.com/p/why-missing-data-is-information/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://fungalstockecosystem.substack.com/p/why-missing-data-is-information/comments"><span>Leave a comment</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Why I’m Building a Fundamental Database Instead of Trusting a Screener]]></title><description><![CDATA[Most investors begin with a stock screener.]]></description><link>https://fungalstockecosystem.substack.com/p/why-im-building-a-fundamental-database</link><guid isPermaLink="false">https://fungalstockecosystem.substack.com/p/why-im-building-a-fundamental-database</guid><dc:creator><![CDATA[Fungal Stock Ecosystem ML]]></dc:creator><pubDate>Mon, 13 Jul 2026 04:06:06 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!-UkE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7efdf137-2c52-41c4-acf0-e97daa793741_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-UkE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7efdf137-2c52-41c4-acf0-e97daa793741_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-UkE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7efdf137-2c52-41c4-acf0-e97daa793741_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!-UkE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7efdf137-2c52-41c4-acf0-e97daa793741_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!-UkE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7efdf137-2c52-41c4-acf0-e97daa793741_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!-UkE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7efdf137-2c52-41c4-acf0-e97daa793741_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-UkE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7efdf137-2c52-41c4-acf0-e97daa793741_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7efdf137-2c52-41c4-acf0-e97daa793741_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1382594,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://fungalstockecosystem.substack.com/i/206790061?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7efdf137-2c52-41c4-acf0-e97daa793741_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-UkE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7efdf137-2c52-41c4-acf0-e97daa793741_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!-UkE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7efdf137-2c52-41c4-acf0-e97daa793741_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!-UkE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7efdf137-2c52-41c4-acf0-e97daa793741_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!-UkE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7efdf137-2c52-41c4-acf0-e97daa793741_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>They choose a few conditions&#8212;low valuation, strong growth, manageable debt&#8212;and receive a list of companies that appear to match.</p><p>That is useful for finding ideas.</p><p>But I do not want my investment system to depend entirely on someone else&#8217;s finished answers.</p><p>I want access to the evidence underneath them.</p><p>That is why I&#8217;m building a fundamental database.</p><h2>A screener gives you conclusions</h2><p>A screener might tell you that a company has:</p><ul><li><p>A price-to-earnings ratio of 12</p></li><li><p>Revenue growth of 8%</p></li><li><p>A debt-to-equity ratio of 0.7</p></li><li><p>Positive free cash flow</p></li></ul><p>But those numbers have already passed through several hidden decisions.</p><p>Which financial period was used?</p><p>Were currencies converted?</p><p>Were restatements included?</p><p>How were missing values handled?</p><p>Was free cash flow taken directly from a provider, or calculated from other fields?</p><p>Did the provider use annual results, trailing results, or the latest quarter?</p><p>Two screeners can show different numbers for the same company because their definitions and data pipelines differ.</p><p>The final ratio may look precise.</p><p>The process behind it may not be visible.</p><h2>A database lets me inspect the ingredients</h2><p>I think of financial data like fruit collected from thousands of trees.</p><p>A screener hands me a prepared meal.</p><p>A database lets me inspect the fruit before deciding what to cook.</p><p>I can store revenue, cash flow, debt, share count, assets, margins, and reporting dates separately.</p><p>Then I can calculate the investment metrics myself.</p><p>That matters because my strategy will continue changing.</p><p>Today I may care about free-cash-flow yield.</p><p>Later I may want to study dilution, deterioration, capital efficiency, or reporting consistency.</p><p>When the raw ingredients are preserved, I can rebuild the measurements without collecting everything again.</p><h2>Historical testing requires historical truth</h2><p>A strategy should be tested using only the information that would have been available at the time.</p><p>That sounds obvious, but it is easy to violate.</p><p>Suppose a company later restates its financial results.</p><p>A modern screener may show the corrected historical number.</p><p>But an investor making a decision years earlier would not have known that correction yet.</p><p>Testing a strategy with updated information can make the past look cleaner and more predictable than it really was.</p><p>This is a form of look-ahead bias.</p><p>The system quietly learns from information that had not yet entered the world.</p><p>A proper historical database should preserve filing dates, reporting periods, and the sequence in which information became available.</p><p>Otherwise, the backtest may be evaluating an imaginary investor with access to the future.</p><h2>Missing data should not disappear</h2><p>Screeners often make missing information easy to ignore.</p><p>A company may simply vanish from the results because one required field is unavailable.</p><p>That creates a hidden selection process.</p><p>The investor sees the companies that passed, but may not see why thousands of others were excluded.</p><p>In my system, missing data needs to remain visible.</p><p>Was the company missing one filing?</p><p>Was the provider unable to map the ticker?</p><p>Did the company report in a different format?</p><p>Was the business too new?</p><p>Was the data genuinely unavailable?</p><p>These are different problems.</p><p>Treating them all as a blank cell would destroy useful information.</p><p>Sometimes missing data is just a technical error.</p><p>Sometimes it is evidence that the company is harder to understand, less transparent, or riskier to analyze.</p><h2>Global investing makes the problem harder</h2><p>My system examines companies from several countries.</p><p>That means the database must deal with different currencies, exchanges, reporting conventions, fiscal calendars, and accounting structures.</p><p>A company may report its financial statements in one currency while its shares trade in another.</p><p>Some prices may be quoted in minor currency units.</p><p>A company&#8217;s local share price may rise while its U.S.-dollar return falls because of exchange-rate movement.</p><p>A generic screener may handle these issues correctly.</p><p>But unless I understand the process, I cannot verify the result.</p><p>Building the database forces the assumptions into the open.</p><h2>The database is not the strategy</h2><p>Collecting more data does not automatically produce better investments.</p><p>A large database can still support a terrible strategy.</p><p>The database stores observations.</p><p>The strategy decides what those observations mean.</p><p>Keeping those layers separate is important.</p><p>It allows me to improve the scoring system without rewriting the historical record.</p><p>It also prevents the database from being shaped around one preferred conclusion.</p><p>The warehouse should preserve reality as faithfully as possible.</p><p>The investment system can then test different interpretations of that reality.</p><h2>Why not simply trust a provider?</h2><p>I still rely on outside providers.</p><p>Building a database does not mean personally typing every financial statement into a spreadsheet.</p><p>It means keeping durable copies of the raw information, checking coverage, documenting transformations, and calculating the final investment features through a process I control.</p><p>Providers remain part of the supply chain.</p><p>They just do not become the entire factory.</p><h2>The boring work creates the foundation</h2><p>Building a database is slower than opening a screener.</p><p>It involves ticker mapping, filing history, currencies, missing values, duplicate records, provider failures, and many other problems that are not exciting to write about.</p><p>But every advanced part of the investment system will depend on this foundation.</p><p>Optimization cannot repair incorrect financial history.</p><p>Machine learning cannot create truth from inconsistent labels.</p><p>A beautiful backtest cannot rescue contaminated data.</p><p>In programming, unreliable inputs create unreliable outputs.</p><p>In investing, the same rule applies.</p><h2>What I am really building</h2><p>The goal is not merely to collect a large number of financial records.</p><p>The goal is to build a chain of evidence.</p><p>I want to know:</p><ul><li><p>Where each number came from</p></li><li><p>When it became available</p></li><li><p>What transformations were applied</p></li><li><p>Which values are missing</p></li><li><p>Which comparisons are valid</p></li><li><p>Whether the same result can be reproduced later</p></li></ul><p>A screener helps answer:</p><p><strong>Which stocks match these rules today?</strong></p><p>My database is meant to answer a deeper question:</p><p><strong>What did the financial world actually look like at each point in time, and what could an investor reasonably have known?</strong></p><p>That is the foundation I want before trusting any strategy built on top of it.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://fungalstockecosystem.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://fungalstockecosystem.substack.com/subscribe?"><span>Subscribe now</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://fungalstockecosystem.substack.com/p/why-im-building-a-fundamental-database?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://fungalstockecosystem.substack.com/p/why-im-building-a-fundamental-database?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://fungalstockecosystem.substack.com/?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share&quot;,&quot;text&quot;:&quot;Share Fungal Intelligence for Stocks&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://fungalstockecosystem.substack.com/?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share Fungal Intelligence for Stocks</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://fungalstockecosystem.substack.com/p/why-im-building-a-fundamental-database/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://fungalstockecosystem.substack.com/p/why-im-building-a-fundamental-database/comments"><span>Leave a comment</span></a></p><p></p>]]></content:encoded></item></channel></rss>