This release introduces a major redesign of the dashboard renewal infrastructure, making the system more scalable and reliable, especially for portfolios with a large number of stocks.
Faster Dashboard Renewal
Building price charts is the most time-consuming part of the dashboard renewal process. To improve performance, chart generation is now more flexible.
A new Configure for user to choose whether charts are built during dashboard renewal.
- Build Charts – Charts are generated automatically.
- No Build Charts – Dashboard data is refreshed without generating charts, resulting in significantly faster renewals.

When the Activity sheet has a different number of rows, or Post Activity has been executed, the next Refresh Listed Price operation will automatically switch to Renew Holding.
Levels 3 and 4 are intended for users who want to run Post Activity during every renewal. This is useful because some changes made in the Activity sheet (such as editing an existing transaction) do not change the number of rows, so they cannot be detected automatically.
If charts are not built during renewal, you can generate an individual chart at any time using the Build Chart online function for the ticker currently selected by the cursor.
Smarter Chart Generation
Chart generation is now more intelligent.
- When all tickers are selected (cell A1), charts are generated only for tickers that have buy or sell user alerts, reducing unnecessary processing.
- When selected tickers are selected, charts are generated for all the selected tickers.
This greatly reduces renewal time while still ensuring that the most important charts are available.
Optimized for Large Portfolios
The dashboard renewal process has been further optimized and can now efficiently handle up to 100 tickers in the stock table.
Automatic Timeout Recovery
Google Apps Script limits a single execution to 6 minutes. Long-running renewals can therefore be terminated by Google's execution runtime limit.
To provide a seamless experience, Personal Investor Lab now automatically detects when execution is approaching the time limit.
Before timing out, the add-on:
- Saves the complete renewal state.
- Automatically schedules a continuation trigger.
- Resumes processing from where it stopped.
The continuation trigger is scheduled:
- As soon as possible (0 seconds) when the renewal was started manually.
- After one hour which is limited by Google script when the renewal was started by a scheduled time-based trigger.
Timeout Status
When a timeout occurs, cell A1 displays a timeout message so you know that processing has been paused.
If you prefer not to wait for the scheduled continuation, simply select Renew Dashboard again. The renewal will restore the saved state and continue immediately from where it stopped.