{"id":188,"date":"2026-02-02T17:58:19","date_gmt":"2026-02-02T17:58:19","guid":{"rendered":"https:\/\/nicholaseilers.com\/?page_id=188"},"modified":"2026-02-05T21:33:06","modified_gmt":"2026-02-05T21:33:06","slug":"automated-financial-reporting-suite","status":"publish","type":"page","link":"https:\/\/nicholaseilers.com\/?page_id=188","title":{"rendered":"Automated Financial Reporting Suite"},"content":{"rendered":"\n<p class=\"has-small-font-size wp-block-paragraph\" style=\"padding-top:0;padding-bottom:0\"><strong>Efficiency<\/strong>: The legacy system relied on 24 separate Access database files, each manually updated with annually maintained rules and occasional mid-year adjustments. I consolidated this process into a single, streamlined Excel VBA script that now handles all reporting types\u2014forecast, actuals, plan, and ad hoc\u2014significantly reducing manual effort and processing time.<\/p>\n\n\n\n<p class=\"has-small-font-size wp-block-paragraph\" style=\"margin-top:0;margin-bottom:0\">This Excel worksheet is setup to have a simple flow to generating the data (top section) to creating reports off generated data.  Different options are available when running &#8211; such as setting a specific version (Ex: running a specific customer), adjusting the run month (rerun past reports, adjust month by -x), and finally a run period.  <\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized has-custom-border\" style=\"margin-top:0;margin-bottom:0\"><img loading=\"lazy\" decoding=\"async\" width=\"2293\" height=\"1366\" src=\"https:\/\/nicholaseilers.com\/wp-content\/uploads\/2026\/02\/Actuals-Comp-WS.png\" alt=\"\" class=\"wp-image-189\" style=\"border-style:none;border-width:0px;border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-left-radius:0px;border-bottom-right-radius:0px;width:1136px;height:auto\" srcset=\"https:\/\/nicholaseilers.com\/wp-content\/uploads\/2026\/02\/Actuals-Comp-WS.png 2293w, https:\/\/nicholaseilers.com\/wp-content\/uploads\/2026\/02\/Actuals-Comp-WS-300x179.png 300w, https:\/\/nicholaseilers.com\/wp-content\/uploads\/2026\/02\/Actuals-Comp-WS-1024x610.png 1024w, https:\/\/nicholaseilers.com\/wp-content\/uploads\/2026\/02\/Actuals-Comp-WS-768x458.png 768w, https:\/\/nicholaseilers.com\/wp-content\/uploads\/2026\/02\/Actuals-Comp-WS-1536x915.png 1536w, https:\/\/nicholaseilers.com\/wp-content\/uploads\/2026\/02\/Actuals-Comp-WS-2048x1220.png 2048w\" sizes=\"auto, (max-width: 2293px) 100vw, 2293px\" \/><\/figure>\n\n\n\n<p class=\"has-small-font-size wp-block-paragraph\" style=\"padding-top:var(--wp--preset--spacing--80)\"><strong>Reliability<\/strong>: The VBA script has operated flawlessly for over a year, because of a well-structured variable setup and consistent calculation logic. All reporting types share the same calculation framework, minimizing discrepancies and reducing the potential for user error through minimal required input.<\/p>\n\n\n\n<p class=\"has-small-font-size wp-block-paragraph\" style=\"border-style:none;border-width:0px;border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-left-radius:0px;border-bottom-right-radius:0px;margin-top:0;margin-bottom:0\">Public variables are defined so they can be used across different modules.  This allows a variable to be set and shared through all calculations during the running script.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"922\" height=\"760\" src=\"https:\/\/nicholaseilers.com\/wp-content\/uploads\/2026\/02\/Load-WB.png\" alt=\"\" class=\"wp-image-191\" style=\"aspect-ratio:4\/3;object-fit:cover\" srcset=\"https:\/\/nicholaseilers.com\/wp-content\/uploads\/2026\/02\/Load-WB.png 922w, https:\/\/nicholaseilers.com\/wp-content\/uploads\/2026\/02\/Load-WB-300x247.png 300w, https:\/\/nicholaseilers.com\/wp-content\/uploads\/2026\/02\/Load-WB-768x633.png 768w\" sizes=\"auto, (max-width: 922px) 100vw, 922px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1093\" height=\"708\" src=\"https:\/\/nicholaseilers.com\/wp-content\/uploads\/2026\/02\/Universal.png\" alt=\"\" class=\"wp-image-192\" style=\"aspect-ratio:4\/3;object-fit:cover\" srcset=\"https:\/\/nicholaseilers.com\/wp-content\/uploads\/2026\/02\/Universal.png 1093w, https:\/\/nicholaseilers.com\/wp-content\/uploads\/2026\/02\/Universal-300x194.png 300w, https:\/\/nicholaseilers.com\/wp-content\/uploads\/2026\/02\/Universal-1024x663.png 1024w, https:\/\/nicholaseilers.com\/wp-content\/uploads\/2026\/02\/Universal-768x497.png 768w\" sizes=\"auto, (max-width: 1093px) 100vw, 1093px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p class=\"has-small-font-size wp-block-paragraph\" style=\"padding-top:var(--wp--preset--spacing--80)\"><strong>Adjustability<\/strong>: Centralizing the script and defining all variables at runtime allows for seamless updates. Any changes to calculations or variables automatically distribute across all reporting outputs, ensuring consistency and simplifying maintenance.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"2500\" height=\"1561\" src=\"https:\/\/nicholaseilers.com\/wp-content\/uploads\/2026\/02\/Plan-Comp-WS.png\" alt=\"\" class=\"wp-image-193\" srcset=\"https:\/\/nicholaseilers.com\/wp-content\/uploads\/2026\/02\/Plan-Comp-WS.png 2500w, https:\/\/nicholaseilers.com\/wp-content\/uploads\/2026\/02\/Plan-Comp-WS-300x187.png 300w, https:\/\/nicholaseilers.com\/wp-content\/uploads\/2026\/02\/Plan-Comp-WS-1024x639.png 1024w, https:\/\/nicholaseilers.com\/wp-content\/uploads\/2026\/02\/Plan-Comp-WS-768x480.png 768w, https:\/\/nicholaseilers.com\/wp-content\/uploads\/2026\/02\/Plan-Comp-WS-1536x959.png 1536w, https:\/\/nicholaseilers.com\/wp-content\/uploads\/2026\/02\/Plan-Comp-WS-2048x1279.png 2048w\" sizes=\"auto, (max-width: 2500px) 100vw, 2500px\" \/><\/figure>\n\n\n\n<p class=\"has-small-font-size wp-block-paragraph\" style=\"padding-top:var(--wp--preset--spacing--80)\"><strong>Expandability<\/strong>: Previously, adding new reporting elements required building and integrating additional databases\u2014an error-prone and time-consuming process. In the current system, new metrics can be introduced by defining just three variables. These plug directly into the existing framework, enabling rapid expansion without compromising reliability or structure.<\/p>\n\n\n\n<p class=\"has-small-font-size wp-block-paragraph\">Setting up a new calculation involves defining a few new variables.  For instance, if HC_Tariff is setup &#8211; A new Sub will be setup specifically to run HC_Tariff.  Within this Sub, all shared variable metrics are defined.  From there, the script can be ran and will share calculations when applicable.  Otherwise, new calculations can be setup for unique cases.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"915\" height=\"1398\" src=\"https:\/\/nicholaseilers.com\/wp-content\/uploads\/2026\/02\/Forecast-Run.png\" alt=\"\" class=\"wp-image-194\" style=\"aspect-ratio:0.6545140984737432;width:437px;height:auto\" srcset=\"https:\/\/nicholaseilers.com\/wp-content\/uploads\/2026\/02\/Forecast-Run.png 915w, https:\/\/nicholaseilers.com\/wp-content\/uploads\/2026\/02\/Forecast-Run-196x300.png 196w, https:\/\/nicholaseilers.com\/wp-content\/uploads\/2026\/02\/Forecast-Run-670x1024.png 670w, https:\/\/nicholaseilers.com\/wp-content\/uploads\/2026\/02\/Forecast-Run-768x1173.png 768w\" sizes=\"auto, (max-width: 915px) 100vw, 915px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<figure class=\"wp-block-image size-full is-resized has-custom-border\"><img loading=\"lazy\" decoding=\"async\" width=\"1510\" height=\"703\" src=\"https:\/\/nicholaseilers.com\/wp-content\/uploads\/2026\/02\/Select-Case.png\" alt=\"\" class=\"wp-image-190\" style=\"border-style:none;border-width:0px;border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-left-radius:0px;border-bottom-right-radius:0px;aspect-ratio:2.147955566060033;object-fit:cover;width:782px;height:auto\" srcset=\"https:\/\/nicholaseilers.com\/wp-content\/uploads\/2026\/02\/Select-Case.png 1510w, https:\/\/nicholaseilers.com\/wp-content\/uploads\/2026\/02\/Select-Case-300x140.png 300w, https:\/\/nicholaseilers.com\/wp-content\/uploads\/2026\/02\/Select-Case-1024x477.png 1024w, https:\/\/nicholaseilers.com\/wp-content\/uploads\/2026\/02\/Select-Case-768x358.png 768w\" sizes=\"auto, (max-width: 1510px) 100vw, 1510px\" \/><\/figure>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Efficiency: The legacy system relied on 24 separate Access database files, each manually updated with annually maintained rules and occasional mid-year adjustments. I consolidated this process into a single, streamlined Excel VBA script that now handles all reporting types\u2014forecast, actuals, plan, and ad hoc\u2014significantly reducing manual effort and processing time. This Excel worksheet is setup&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"class_list":["post-188","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/nicholaseilers.com\/index.php?rest_route=\/wp\/v2\/pages\/188","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nicholaseilers.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/nicholaseilers.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/nicholaseilers.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nicholaseilers.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=188"}],"version-history":[{"count":6,"href":"https:\/\/nicholaseilers.com\/index.php?rest_route=\/wp\/v2\/pages\/188\/revisions"}],"predecessor-version":[{"id":218,"href":"https:\/\/nicholaseilers.com\/index.php?rest_route=\/wp\/v2\/pages\/188\/revisions\/218"}],"wp:attachment":[{"href":"https:\/\/nicholaseilers.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=188"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}