<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Documentation on Lenny Kiruthu</title>
        <link>https://lennykiruthu.xyz/multi-asset-portfolio-analytics-platform/docs/</link>
        <description>Recent content in Documentation on Lenny Kiruthu</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en-us</language><atom:link href="https://lennykiruthu.xyz/multi-asset-portfolio-analytics-platform/docs/index.xml" rel="self" type="application/rss+xml" /><item>
            <title>Logging Transactions</title>
            <link>https://lennykiruthu.xyz/multi-asset-portfolio-analytics-platform/docs/transactions/</link>
            <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
            <guid>https://lennykiruthu.xyz/multi-asset-portfolio-analytics-platform/docs/transactions/</guid>
            <description>&lt;h1 id=&#34;logging-transactions&#34;&gt;Logging Transactions&#xA;&lt;/h1&gt;&lt;p&gt;The Transaction Ledger is the primary input interface. Everything else in the platform — your portfolio performance, your holdings breakdown, the analytics — is computed from your transaction history.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;fields&#34;&gt;Fields&#xA;&lt;/h2&gt;&lt;h3 id=&#34;ticker&#34;&gt;Ticker&#xA;&lt;/h3&gt;&lt;p&gt;The stock or asset symbol. Must be a valid ticker recognisable by Yahoo Finance (e.g. &lt;code&gt;AAPL&lt;/code&gt;, &lt;code&gt;MSFT&lt;/code&gt;, &lt;code&gt;BTC-USD&lt;/code&gt;, &lt;code&gt;GC=F&lt;/code&gt; for gold futures).&lt;/p&gt;&#xA;&lt;p&gt;If you enter a ticker the system hasn&amp;rsquo;t seen before, it will:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Validate it against Yahoo Finance&lt;/li&gt;&#xA;&lt;li&gt;Backfill the full available price history into the database&lt;/li&gt;&#xA;&lt;li&gt;Then write your transaction&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;This means the first transaction for a new ticker takes a few extra seconds. Subsequent transactions for that ticker are instant.&lt;/p&gt;&#xA;&lt;h3 id=&#34;transaction-type&#34;&gt;Transaction Type&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;BUY&lt;/strong&gt; or &lt;strong&gt;SELL&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;BUY increases your position.&lt;/li&gt;&#xA;&lt;li&gt;SELL decreases it. You can&amp;rsquo;t SELL more than you currently hold — the system will reject that.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;quantity-shares--units&#34;&gt;Quantity (shares / units)&#xA;&lt;/h3&gt;&lt;p&gt;The number of shares or units transacted. Fractional shares are supported (e.g. &lt;code&gt;0.5&lt;/code&gt; for half a Bitcoin).&lt;/p&gt;&#xA;&lt;h3 id=&#34;price-per-unit-usd&#34;&gt;Price per unit (USD)&#xA;&lt;/h3&gt;&lt;p&gt;The price at which you transacted, in USD. This is the price &lt;em&gt;you paid or received&lt;/em&gt;, not the market price at time of submission. Enter your actual cost basis.&lt;/p&gt;&#xA;&lt;h3 id=&#34;transaction-date&#34;&gt;Transaction Date&#xA;&lt;/h3&gt;&lt;p&gt;The date the transaction occurred. Defaults to today&amp;rsquo;s date. You can backdate transactions freely — this is useful when onboarding and entering your historical trade history.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;the-transaction-ledger-table&#34;&gt;The Transaction Ledger table&#xA;&lt;/h2&gt;&lt;p&gt;The main panel shows all your transactions sorted by date, most recent first. Each row shows ticker, type, quantity, price, date, and total value.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;correcting-mistakes&#34;&gt;Correcting Mistakes&#xA;&lt;/h2&gt;&lt;p&gt;If you entered a transaction incorrectly, use the &lt;strong&gt;Delete a transaction&lt;/strong&gt; section at the bottom of the ledger panel. Enter the transaction ID (shown in the ledger table) and confirm deletion.&lt;/p&gt;&#xA;&lt;p&gt;Deletion is intended for corrections only — there&amp;rsquo;s no audit trail suppression, so your models will recompute correctly after a delete.&lt;/p&gt;&#xA;&lt;p&gt;After deleting, the pipeline will recompute your holdings on the next sensor tick or scheduled run.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;what-happens-after-you-submit&#34;&gt;What happens after you submit&#xA;&lt;/h2&gt;&lt;ol&gt;&#xA;&lt;li&gt;The transaction is written to &lt;code&gt;bronze.transactions&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;The &lt;code&gt;transaction_sensor&lt;/code&gt; in Dagster detects the new record.&lt;/li&gt;&#xA;&lt;li&gt;If the ticker is new, price history is backfilled.&lt;/li&gt;&#xA;&lt;li&gt;The dbt models downstream of &lt;code&gt;stg_transactions&lt;/code&gt; are rerun: &lt;code&gt;int_daily_holdings&lt;/code&gt;, &lt;code&gt;fct_daily_returns&lt;/code&gt;, and all gold marts.&lt;/li&gt;&#xA;&lt;li&gt;Your analytics dashboard reflects the updated data.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;Depending on when you submit, this can take anywhere from a few seconds (sensor tick) to a few minutes if there&amp;rsquo;s a backfill happening.&lt;/p&gt;&#xA;</description>
        </item></channel>
</rss>
