{"id":512,"date":"2024-11-24T21:34:55","date_gmt":"2024-11-24T13:34:55","guid":{"rendered":"https:\/\/philip.twinight.co\/portfolio\/?p=512"},"modified":"2026-11-08T17:27:30","modified_gmt":"2026-11-08T09:27:30","slug":"ai-portfolio-analytics-revolutionizing-investment-management-with-artificial-intelligence","status":"publish","type":"post","link":"https:\/\/philip.twinight.co\/portfolio\/index.php\/2024\/11\/24\/ai-portfolio-analytics-revolutionizing-investment-management-with-artificial-intelligence\/","title":{"rendered":"Building AI Portfolio Analytics"},"content":{"rendered":"<p>I built AI Portfolio Analytics because I wanted one place to compare a portfolio, look at its risks, and ask questions about the results. The project started in November 2024 and has grown into a full-stack web application.<\/p>\n<div class=\"actions\"><a class=\"button\" href=\"https:\/\/stock.twinight.co\/portfolio\">Open the application \u2197<\/a><\/div>\n<dl class=\"case-facts\">\n<div>\n<dt>My role<\/dt>\n<dd>Personal full-stack project<\/dd>\n<\/div>\n<div>\n<dt>Frontend<\/dt>\n<dd>React, Material UI, Chart.js, Recharts<\/dd>\n<\/div>\n<div>\n<dt>Backend<\/dt>\n<dd>Python, Flask, Pandas, NumPy<\/dd>\n<\/div>\n<div>\n<dt>Data &amp; hosting<\/dt>\n<dd>PostgreSQL, SQLAlchemy, nginx<\/dd>\n<\/div>\n<\/dl>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/philip.twinight.co\/portfolio\/index.php\/2024\/11\/24\/ai-portfolio-analytics-revolutionizing-investment-management-with-artificial-intelligence\/#What_it_does\" >What it does<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/philip.twinight.co\/portfolio\/index.php\/2024\/11\/24\/ai-portfolio-analytics-revolutionizing-investment-management-with-artificial-intelligence\/#How_the_pieces_fit_together\" >How the pieces fit together<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/philip.twinight.co\/portfolio\/index.php\/2024\/11\/24\/ai-portfolio-analytics-revolutionizing-investment-management-with-artificial-intelligence\/#The_boundary_between_calculations_and_AI\" >The boundary between calculations and AI<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/philip.twinight.co\/portfolio\/index.php\/2024\/11\/24\/ai-portfolio-analytics-revolutionizing-investment-management-with-artificial-intelligence\/#Details_that_matter_once_it_runs\" >Details that matter once it runs<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/philip.twinight.co\/portfolio\/index.php\/2024\/11\/24\/ai-portfolio-analytics-revolutionizing-investment-management-with-artificial-intelligence\/#What_Id_improve_next\" >What I\u2019d improve next<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"What_it_does\"><\/span>What it does<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>You enter a set of stocks or ETFs, assign weights, and choose a comparison period and benchmark. The application then brings together portfolio performance, drawdowns, correlations, and other risk measures. AI-generated explanations sit alongside those results.<\/p>\n<p>There are templates for getting started and manual controls for people who already have an allocation in mind. The interface also exposes separate historical simulation and paper-trading tools; those require sign-in.<\/p>\n<figure class=\"app-screenshot\"><a href=\"https:\/\/mlcznkdztmb6.i.optimole.com\/w:auto\/h:auto\/q:mauto\/f:best\/ig:avif\/https:\/\/philip.twinight.co\/portfolio\/wp-content\/themes\/philip-engineering\/assets\/analytics-setup-full.png\" aria-label=\"Open full-resolution application screenshot\"><img src=\"https:\/\/mlcznkdztmb6.i.optimole.com\/w:auto\/h:auto\/q:mauto\/f:best\/ig:avif\/https:\/\/philip.twinight.co\/portfolio\/wp-content\/themes\/philip-engineering\/assets\/analytics-setup-1440.webp\" srcset=\"https:\/\/mlcznkdztmb6.i.optimole.com\/w:auto\/h:auto\/q:mauto\/f:best\/ig:avif\/https:\/\/philip.twinight.co\/portfolio\/wp-content\/themes\/philip-engineering\/assets\/analytics-setup-960.webp 960w, https:\/\/mlcznkdztmb6.i.optimole.com\/w:auto\/h:auto\/q:mauto\/f:best\/ig:avif\/https:\/\/philip.twinight.co\/portfolio\/wp-content\/themes\/philip-engineering\/assets\/analytics-setup-1440.webp 1440w, https:\/\/mlcznkdztmb6.i.optimole.com\/w:auto\/h:auto\/q:mauto\/f:best\/ig:avif\/https:\/\/philip.twinight.co\/portfolio\/wp-content\/themes\/philip-engineering\/assets\/analytics-setup-2880.webp 2880w\" sizes=\"auto, (max-width: 760px) calc(100vw - 44px), 928px\" width=\"1440\" height=\"900\" alt=\"Portfolio setup showing the 60\/40 VTI and BND example, date range and SPY benchmark\" loading=\"lazy\" decoding=\"async\"><\/a><figcaption>The portfolio editor, November 2026. A template fills the holdings; the date range, benchmark and costs remain editable. <a href=\"https:\/\/mlcznkdztmb6.i.optimole.com\/w:auto\/h:auto\/q:mauto\/f:best\/ig:avif\/https:\/\/philip.twinight.co\/portfolio\/wp-content\/themes\/philip-engineering\/assets\/analytics-setup-full.png\">View full size \u2197<\/a><\/figcaption><\/figure>\n<h2><span class=\"ez-toc-section\" id=\"How_the_pieces_fit_together\"><\/span>How the pieces fit together<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ol class=\"process\">\n<li><strong>React handles the input and results.<\/strong> Portfolio holdings, weights, date ranges, and benchmark choices are sent to the Flask API. Charts and tables give the calculations a usable interface.<\/li>\n<li><strong>The backend prepares the data.<\/strong> It collects the unique tickers, fetches price history, and checks the available dates and data before processing the portfolios.<\/li>\n<li><strong>Python calculates the metrics.<\/strong> Pandas and NumPy support the analysis, including returns, volatility, historical drawdowns, and correlations.<\/li>\n<li><strong>The AI layer explains the results.<\/strong> Analysis services generate commentary for the different result sections. Streaming endpoints and progress updates help the interface handle longer requests.<\/li>\n<li><strong>Results can be reused.<\/strong> The backend hashes the analysis parameters and looks for a matching cached result before repeating the calculation.<\/li>\n<\/ol>\n<h2><span class=\"ez-toc-section\" id=\"The_boundary_between_calculations_and_AI\"><\/span>The boundary between calculations and AI<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The numerical analysis and the generated explanation are separate parts of the application. Portfolio metrics are calculated in Python. The language model adds commentary and helps users ask questions about the results.<\/p>\n<p>For generated portfolio allocations, the backend checks the response structure and required fields, validates holdings and weights, and normalizes the allocation. A model response still has to fit the application&#8217;s expected data format.<\/p>\n<p>That boundary matters. An explanation can sound convincing without being reliable, and historical results do not establish what a portfolio will do next. The AI output needs to be read alongside the underlying data and assumptions.<\/p>\n<figure class=\"app-screenshot\"><a href=\"https:\/\/mlcznkdztmb6.i.optimole.com\/w:auto\/h:auto\/q:mauto\/f:best\/ig:avif\/https:\/\/philip.twinight.co\/portfolio\/wp-content\/themes\/philip-engineering\/assets\/analytics-results-full.png\" aria-label=\"Open full-resolution application screenshot\"><img src=\"https:\/\/mlcznkdztmb6.i.optimole.com\/w:auto\/h:auto\/q:mauto\/f:best\/ig:avif\/https:\/\/philip.twinight.co\/portfolio\/wp-content\/themes\/philip-engineering\/assets\/analytics-results-1440.webp\" srcset=\"https:\/\/mlcznkdztmb6.i.optimole.com\/w:auto\/h:auto\/q:mauto\/f:best\/ig:avif\/https:\/\/philip.twinight.co\/portfolio\/wp-content\/themes\/philip-engineering\/assets\/analytics-results-960.webp 960w, https:\/\/mlcznkdztmb6.i.optimole.com\/w:auto\/h:auto\/q:mauto\/f:best\/ig:avif\/https:\/\/philip.twinight.co\/portfolio\/wp-content\/themes\/philip-engineering\/assets\/analytics-results-1440.webp 1440w, https:\/\/mlcznkdztmb6.i.optimole.com\/w:auto\/h:auto\/q:mauto\/f:best\/ig:avif\/https:\/\/philip.twinight.co\/portfolio\/wp-content\/themes\/philip-engineering\/assets\/analytics-results-2880.webp 2880w\" sizes=\"auto, (max-width: 760px) calc(100vw - 44px), 928px\" width=\"1440\" height=\"900\" alt=\"Real portfolio analysis results for a 60\/40 VTI and BND example compared with SPY\" loading=\"lazy\" decoding=\"async\"><\/a><figcaption>A real guest analysis run, November 2026. This example illustrates the interface and historical calculations. <a href=\"https:\/\/mlcznkdztmb6.i.optimole.com\/w:auto\/h:auto\/q:mauto\/f:best\/ig:avif\/https:\/\/philip.twinight.co\/portfolio\/wp-content\/themes\/philip-engineering\/assets\/analytics-results-full.png\">View full size \u2197<\/a><\/figcaption><\/figure>\n<h2><span class=\"ez-toc-section\" id=\"Details_that_matter_once_it_runs\"><\/span>Details that matter once it runs<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><strong>Simulation costs:<\/strong> orders need room for fees and slippage. Allocating every last dollar can cause an otherwise valid purchase to be rejected. I check single-asset and mixed portfolios against small, repeatable price series so that order execution and reported returns agree.<\/p>\n<p><strong>Data availability:<\/strong> different tickers have different histories. The request flow needs to account for missing data and the usable analysis period, rather than quietly treating every series as complete.<\/p>\n<p><strong>Repeated requests:<\/strong> caching by analysis parameters lets the backend return a saved result when the same inputs are used again. The response identifies when it has come from the cache.<\/p>\n<p><strong>Longer analysis:<\/strong> calculation and AI generation do not always finish at the same time. Progress tracking and streaming provide feedback while the work is still running. The nginx configuration also has to support that streaming response.<\/p>\n<p><strong>Keeping AI usage bounded:<\/strong> numerical comparisons are available as a guest. AI requests require a verified account and spend credits, with a small signup allowance and daily check-in reward. The API reserves credits before a request, prevents duplicate charges, and refunds failed calls. Usage and concurrency limits still apply when someone calls the API directly.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"What_Id_improve_next\"><\/span>What I\u2019d improve next<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>I\u2019d put more work into making the evidence behind an AI explanation easier to inspect: the input data, the relevant metric, and the assumptions used. I\u2019d also expand the evaluation around incomplete price histories and generated explanations, so changes can be checked against repeatable examples.<\/p>\n<p>This is a personal software project, not a claim of investment performance. The part I want to show here is how the interface, data processing, numerical analysis, and AI services fit together.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A full-stack application combining portfolio calculations, interactive charts, and AI-generated explanations.<\/p>\n","protected":false},"author":1,"featured_media":517,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[83],"tags":[55,59,61,60,57,58,54,56],"class_list":["post-512","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software-ai","tag-aiinvesting","tag-artificialintelligence","tag-financialinnovation","tag-fintech","tag-investmentmanagement","tag-investmenttechnology","tag-portfolioanalysis","tag-wealthmanagement"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Building AI Portfolio Analytics | Philip Mou<\/title>\n<meta name=\"description\" content=\"A full-stack application combining portfolio calculations, interactive charts, and AI-generated explanations.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/philip.twinight.co\/portfolio\/index.php\/2024\/11\/24\/ai-portfolio-analytics-revolutionizing-investment-management-with-artificial-intelligence\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Building AI Portfolio Analytics | Philip Mou\" \/>\n<meta property=\"og:description\" content=\"A full-stack application combining portfolio calculations, interactive charts, and AI-generated explanations.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/philip.twinight.co\/portfolio\/index.php\/2024\/11\/24\/ai-portfolio-analytics-revolutionizing-investment-management-with-artificial-intelligence\/\" \/>\n<meta property=\"og:site_name\" content=\"Philip Mou\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-24T13:34:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-11-08T09:27:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/mlcznkdztmb6.i.optimole.com\/w:1920\/h:848\/q:mauto\/f:best\/ig:avif\/https:\/\/philip.twinight.co\/portfolio\/wp-content\/uploads\/2024\/11\/showcase_result1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"3360\" \/>\n\t<meta property=\"og:image:height\" content=\"1484\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Philip\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Philip\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/philip.twinight.co\\\/portfolio\\\/index.php\\\/2024\\\/11\\\/24\\\/ai-portfolio-analytics-revolutionizing-investment-management-with-artificial-intelligence\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/philip.twinight.co\\\/portfolio\\\/index.php\\\/2024\\\/11\\\/24\\\/ai-portfolio-analytics-revolutionizing-investment-management-with-artificial-intelligence\\\/\"},\"author\":{\"name\":\"Philip\",\"@id\":\"https:\\\/\\\/philip.twinight.co\\\/portfolio\\\/#\\\/schema\\\/person\\\/ef4f7cedd9b3bde11e126c4dbe1f8414\"},\"headline\":\"Building AI Portfolio Analytics\",\"datePublished\":\"2024-11-24T13:34:55+00:00\",\"dateModified\":\"2026-11-08T09:27:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/philip.twinight.co\\\/portfolio\\\/index.php\\\/2024\\\/11\\\/24\\\/ai-portfolio-analytics-revolutionizing-investment-management-with-artificial-intelligence\\\/\"},\"wordCount\":684,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/philip.twinight.co\\\/portfolio\\\/#\\\/schema\\\/person\\\/ef4f7cedd9b3bde11e126c4dbe1f8414\"},\"image\":{\"@id\":\"https:\\\/\\\/philip.twinight.co\\\/portfolio\\\/index.php\\\/2024\\\/11\\\/24\\\/ai-portfolio-analytics-revolutionizing-investment-management-with-artificial-intelligence\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\/\\/philip.twinight.co\\/portfolio\\/wp-content\\/uploads\\/2024\\/11\\/showcase_result1.png\",\"keywords\":[\"AIInvesting\",\"ArtificialIntelligence\",\"FinancialInnovation\",\"FinTech\",\"InvestmentManagement\",\"InvestmentTechnology\",\"PortfolioAnalysis\",\"WealthManagement\"],\"articleSection\":[\"Software &amp; AI\"],\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/philip.twinight.co\\\/portfolio\\\/index.php\\\/2024\\\/11\\\/24\\\/ai-portfolio-analytics-revolutionizing-investment-management-with-artificial-intelligence\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/philip.twinight.co\\\/portfolio\\\/index.php\\\/2024\\\/11\\\/24\\\/ai-portfolio-analytics-revolutionizing-investment-management-with-artificial-intelligence\\\/\",\"url\":\"https:\\\/\\\/philip.twinight.co\\\/portfolio\\\/index.php\\\/2024\\\/11\\\/24\\\/ai-portfolio-analytics-revolutionizing-investment-management-with-artificial-intelligence\\\/\",\"name\":\"Building AI Portfolio Analytics | Philip Mou\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/philip.twinight.co\\\/portfolio\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/philip.twinight.co\\\/portfolio\\\/index.php\\\/2024\\\/11\\\/24\\\/ai-portfolio-analytics-revolutionizing-investment-management-with-artificial-intelligence\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/philip.twinight.co\\\/portfolio\\\/index.php\\\/2024\\\/11\\\/24\\\/ai-portfolio-analytics-revolutionizing-investment-management-with-artificial-intelligence\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\/\\/philip.twinight.co\\/portfolio\\/wp-content\\/uploads\\/2024\\/11\\/showcase_result1.png\",\"datePublished\":\"2024-11-24T13:34:55+00:00\",\"dateModified\":\"2026-11-08T09:27:30+00:00\",\"description\":\"A full-stack application combining portfolio calculations, interactive charts, and AI-generated explanations.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/philip.twinight.co\\\/portfolio\\\/index.php\\\/2024\\\/11\\\/24\\\/ai-portfolio-analytics-revolutionizing-investment-management-with-artificial-intelligence\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/philip.twinight.co\\\/portfolio\\\/index.php\\\/2024\\\/11\\\/24\\\/ai-portfolio-analytics-revolutionizing-investment-management-with-artificial-intelligence\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/philip.twinight.co\\\/portfolio\\\/index.php\\\/2024\\\/11\\\/24\\\/ai-portfolio-analytics-revolutionizing-investment-management-with-artificial-intelligence\\\/#primaryimage\",\"url\":\"https:\\/\\/philip.twinight.co\\/portfolio\\/wp-content\\/uploads\\/2024\\/11\\/showcase_result1.png\",\"contentUrl\":\"https:\\/\\/philip.twinight.co\\/portfolio\\/wp-content\\/uploads\\/2024\\/11\\/showcase_result1.png\",\"width\":3360,\"height\":1484},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/philip.twinight.co\\\/portfolio\\\/index.php\\\/2024\\\/11\\\/24\\\/ai-portfolio-analytics-revolutionizing-investment-management-with-artificial-intelligence\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9801\",\"item\":\"https:\\\/\\\/philip.twinight.co\\\/portfolio\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Building AI Portfolio Analytics\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/philip.twinight.co\\\/portfolio\\\/#website\",\"url\":\"https:\\\/\\\/philip.twinight.co\\\/portfolio\\\/\",\"name\":\"Philip\u2019s University Data Science Journey\",\"description\":\"Software, AI &amp; Systems Engineering\",\"publisher\":{\"@id\":\"https:\\\/\\\/philip.twinight.co\\\/portfolio\\\/#\\\/schema\\\/person\\\/ef4f7cedd9b3bde11e126c4dbe1f8414\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/philip.twinight.co\\\/portfolio\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/philip.twinight.co\\\/portfolio\\\/#\\\/schema\\\/person\\\/ef4f7cedd9b3bde11e126c4dbe1f8414\",\"name\":\"Philip\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\/\\/philip.twinight.co\\/portfolio\\/wp-content\\/uploads\\/2024\\/03\\/favicon.png\",\"url\":\"https:\\/\\/philip.twinight.co\\/portfolio\\/wp-content\\/uploads\\/2024\\/03\\/favicon.png\",\"contentUrl\":\"https:\\/\\/philip.twinight.co\\/portfolio\\/wp-content\\/uploads\\/2024\\/03\\/favicon.png\",\"width\":16,\"height\":16,\"caption\":\"Philip\"},\"logo\":{\"@id\":\"https:\\/\\/philip.twinight.co\\/portfolio\\/wp-content\\/uploads\\/2024\\/03\\/favicon.png\"},\"description\":\"Data Scientist &amp; Systems Engineer. Graduated from City University of Hong Kong. Previously founded Twinight Limited as CTO, developing AI investment analytics and automated trading solutions. Currently working as a Test and Integration Engineer on a Vessel Traffic Service (VTS) system in the maritime industry since December 2024.\",\"sameAs\":[\"https:\\\/\\\/philip.twinight.co\\\/portfolio\"],\"url\":\"https:\\\/\\\/philip.twinight.co\\\/portfolio\\\/index.php\\\/author\\\/philip\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Building AI Portfolio Analytics | Philip Mou","description":"A full-stack application combining portfolio calculations, interactive charts, and AI-generated explanations.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/philip.twinight.co\/portfolio\/index.php\/2024\/11\/24\/ai-portfolio-analytics-revolutionizing-investment-management-with-artificial-intelligence\/","og_locale":"en_GB","og_type":"article","og_title":"Building AI Portfolio Analytics | Philip Mou","og_description":"A full-stack application combining portfolio calculations, interactive charts, and AI-generated explanations.","og_url":"https:\/\/philip.twinight.co\/portfolio\/index.php\/2024\/11\/24\/ai-portfolio-analytics-revolutionizing-investment-management-with-artificial-intelligence\/","og_site_name":"Philip Mou","article_published_time":"2024-11-24T13:34:55+00:00","article_modified_time":"2026-11-08T09:27:30+00:00","og_image":[{"width":3360,"height":1484,"url":"https:\/\/mlcznkdztmb6.i.optimole.com\/w:1920\/h:848\/q:mauto\/f:best\/ig:avif\/https:\/\/philip.twinight.co\/portfolio\/wp-content\/uploads\/2024\/11\/showcase_result1.png","type":"image\/png"}],"author":"Philip","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Philip","Estimated reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/philip.twinight.co\/portfolio\/index.php\/2024\/11\/24\/ai-portfolio-analytics-revolutionizing-investment-management-with-artificial-intelligence\/#article","isPartOf":{"@id":"https:\/\/philip.twinight.co\/portfolio\/index.php\/2024\/11\/24\/ai-portfolio-analytics-revolutionizing-investment-management-with-artificial-intelligence\/"},"author":{"name":"Philip","@id":"https:\/\/philip.twinight.co\/portfolio\/#\/schema\/person\/ef4f7cedd9b3bde11e126c4dbe1f8414"},"headline":"Building AI Portfolio Analytics","datePublished":"2024-11-24T13:34:55+00:00","dateModified":"2026-11-08T09:27:30+00:00","mainEntityOfPage":{"@id":"https:\/\/philip.twinight.co\/portfolio\/index.php\/2024\/11\/24\/ai-portfolio-analytics-revolutionizing-investment-management-with-artificial-intelligence\/"},"wordCount":684,"commentCount":0,"publisher":{"@id":"https:\/\/philip.twinight.co\/portfolio\/#\/schema\/person\/ef4f7cedd9b3bde11e126c4dbe1f8414"},"image":{"@id":"https:\/\/philip.twinight.co\/portfolio\/index.php\/2024\/11\/24\/ai-portfolio-analytics-revolutionizing-investment-management-with-artificial-intelligence\/#primaryimage"},"thumbnailUrl":"https:\/\/mlcznkdztmb6.i.optimole.com\/w:auto\/h:auto\/q:mauto\/f:best\/ig:avif\/https:\/\/philip.twinight.co\/portfolio\/wp-content\/uploads\/2024\/11\/showcase_result1.png","keywords":["AIInvesting","ArtificialIntelligence","FinancialInnovation","FinTech","InvestmentManagement","InvestmentTechnology","PortfolioAnalysis","WealthManagement"],"articleSection":["Software &amp; AI"],"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/philip.twinight.co\/portfolio\/index.php\/2024\/11\/24\/ai-portfolio-analytics-revolutionizing-investment-management-with-artificial-intelligence\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/philip.twinight.co\/portfolio\/index.php\/2024\/11\/24\/ai-portfolio-analytics-revolutionizing-investment-management-with-artificial-intelligence\/","url":"https:\/\/philip.twinight.co\/portfolio\/index.php\/2024\/11\/24\/ai-portfolio-analytics-revolutionizing-investment-management-with-artificial-intelligence\/","name":"Building AI Portfolio Analytics | Philip Mou","isPartOf":{"@id":"https:\/\/philip.twinight.co\/portfolio\/#website"},"primaryImageOfPage":{"@id":"https:\/\/philip.twinight.co\/portfolio\/index.php\/2024\/11\/24\/ai-portfolio-analytics-revolutionizing-investment-management-with-artificial-intelligence\/#primaryimage"},"image":{"@id":"https:\/\/philip.twinight.co\/portfolio\/index.php\/2024\/11\/24\/ai-portfolio-analytics-revolutionizing-investment-management-with-artificial-intelligence\/#primaryimage"},"thumbnailUrl":"https:\/\/mlcznkdztmb6.i.optimole.com\/w:auto\/h:auto\/q:mauto\/f:best\/ig:avif\/https:\/\/philip.twinight.co\/portfolio\/wp-content\/uploads\/2024\/11\/showcase_result1.png","datePublished":"2024-11-24T13:34:55+00:00","dateModified":"2026-11-08T09:27:30+00:00","description":"A full-stack application combining portfolio calculations, interactive charts, and AI-generated explanations.","breadcrumb":{"@id":"https:\/\/philip.twinight.co\/portfolio\/index.php\/2024\/11\/24\/ai-portfolio-analytics-revolutionizing-investment-management-with-artificial-intelligence\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/philip.twinight.co\/portfolio\/index.php\/2024\/11\/24\/ai-portfolio-analytics-revolutionizing-investment-management-with-artificial-intelligence\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/philip.twinight.co\/portfolio\/index.php\/2024\/11\/24\/ai-portfolio-analytics-revolutionizing-investment-management-with-artificial-intelligence\/#primaryimage","url":"https:\/\/mlcznkdztmb6.i.optimole.com\/w:auto\/h:auto\/q:mauto\/f:best\/ig:avif\/https:\/\/philip.twinight.co\/portfolio\/wp-content\/uploads\/2024\/11\/showcase_result1.png","contentUrl":"https:\/\/mlcznkdztmb6.i.optimole.com\/w:auto\/h:auto\/q:mauto\/f:best\/ig:avif\/https:\/\/philip.twinight.co\/portfolio\/wp-content\/uploads\/2024\/11\/showcase_result1.png","width":3360,"height":1484},{"@type":"BreadcrumbList","@id":"https:\/\/philip.twinight.co\/portfolio\/index.php\/2024\/11\/24\/ai-portfolio-analytics-revolutionizing-investment-management-with-artificial-intelligence\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9801","item":"https:\/\/philip.twinight.co\/portfolio\/"},{"@type":"ListItem","position":2,"name":"Building AI Portfolio Analytics"}]},{"@type":"WebSite","@id":"https:\/\/philip.twinight.co\/portfolio\/#website","url":"https:\/\/philip.twinight.co\/portfolio\/","name":"Philip\u2019s University Data Science Journey","description":"Software, AI &amp; Systems Engineering","publisher":{"@id":"https:\/\/philip.twinight.co\/portfolio\/#\/schema\/person\/ef4f7cedd9b3bde11e126c4dbe1f8414"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/philip.twinight.co\/portfolio\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":["Person","Organization"],"@id":"https:\/\/philip.twinight.co\/portfolio\/#\/schema\/person\/ef4f7cedd9b3bde11e126c4dbe1f8414","name":"Philip","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/mlcznkdztmb6.i.optimole.com\/w:auto\/h:auto\/q:mauto\/f:best\/ig:avif\/https:\/\/philip.twinight.co\/portfolio\/wp-content\/uploads\/2024\/03\/favicon.png","url":"https:\/\/mlcznkdztmb6.i.optimole.com\/w:auto\/h:auto\/q:mauto\/f:best\/ig:avif\/https:\/\/philip.twinight.co\/portfolio\/wp-content\/uploads\/2024\/03\/favicon.png","contentUrl":"https:\/\/mlcznkdztmb6.i.optimole.com\/w:auto\/h:auto\/q:mauto\/f:best\/ig:avif\/https:\/\/philip.twinight.co\/portfolio\/wp-content\/uploads\/2024\/03\/favicon.png","width":16,"height":16,"caption":"Philip"},"logo":{"@id":"https:\/\/mlcznkdztmb6.i.optimole.com\/w:auto\/h:auto\/q:mauto\/f:best\/ig:avif\/https:\/\/philip.twinight.co\/portfolio\/wp-content\/uploads\/2024\/03\/favicon.png"},"description":"Data Scientist &amp; Systems Engineer. Graduated from City University of Hong Kong. Previously founded Twinight Limited as CTO, developing AI investment analytics and automated trading solutions. Currently working as a Test and Integration Engineer on a Vessel Traffic Service (VTS) system in the maritime industry since December 2024.","sameAs":["https:\/\/philip.twinight.co\/portfolio"],"url":"https:\/\/philip.twinight.co\/portfolio\/index.php\/author\/philip\/"}]}},"_links":{"self":[{"href":"https:\/\/philip.twinight.co\/portfolio\/index.php\/wp-json\/wp\/v2\/posts\/512","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/philip.twinight.co\/portfolio\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/philip.twinight.co\/portfolio\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/philip.twinight.co\/portfolio\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/philip.twinight.co\/portfolio\/index.php\/wp-json\/wp\/v2\/comments?post=512"}],"version-history":[{"count":6,"href":"https:\/\/philip.twinight.co\/portfolio\/index.php\/wp-json\/wp\/v2\/posts\/512\/revisions"}],"predecessor-version":[{"id":665,"href":"https:\/\/philip.twinight.co\/portfolio\/index.php\/wp-json\/wp\/v2\/posts\/512\/revisions\/665"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/philip.twinight.co\/portfolio\/index.php\/wp-json\/wp\/v2\/media\/517"}],"wp:attachment":[{"href":"https:\/\/philip.twinight.co\/portfolio\/index.php\/wp-json\/wp\/v2\/media?parent=512"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/philip.twinight.co\/portfolio\/index.php\/wp-json\/wp\/v2\/categories?post=512"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/philip.twinight.co\/portfolio\/index.php\/wp-json\/wp\/v2\/tags?post=512"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}