Friday, September 11, 2026

Personal Investor Lab: User Deployed Web App

Personal Investor Lab can run as a library, allowing users to create a simple Apps Script project that uses the library. Once the script is deployed as a web app, its URL can be entered in the Personal Investor Lab configuration.


With the user's authorization to access Spreadsheets and Drive, the user's web app can copy charts to alert reports, save the reports to the folder where the spreadsheet running the add-on is located and can be used to resume at timeout in addition to the trigger.

How to Set Up the User Script

  1. In your spreadsheet, click Extensions > Apps Script.
  2. In the left-hand menu, click Libraries +.
  3. In the Script ID field, enter:
    1SW3WAwmf9-4WGn0VNGx_2RBMjsU9J3a_B6Edp9Gat8R0sH3pHLgW04Lr
  4. Click Look up.
  5. Click Add.
  6. Replace the existing code with the following:
function doGet(e) {
  return SPCsoftGateway.doGet(e);
}

function doPost(e) {
  return SPCsoftGateway.doPost(e);
}
  1. Click the blue Deploy button in the upper-right corner.
  2. Click New deployment.
  3. Click Select type > Web app > Execute as: Me (user) Who has access: Only myself
  4. Click Deploy.
  5. Under Web app URL, click the Copy icon, then paste the URL into the Personal Investor Lab configuration.

Wednesday, September 2, 2026

Comfort Attendance - Reminder for User to Add Attendance Column

When all available date columns in the Attendance sheet have been filled, Comfort Attendance Web App cannot find a column with a date of today or later. It will display the following error message:

Date column with a date of today or later was not found for updating attendance. Please check your Attendance sheet and configuration.



For a better user experience, Comfort Attendance Web App will display the very last column of the Attendance sheet. When you see the attendance which has been taken in the last available column, you will be reminded to add a new date column at the end of the Attendance sheet.










Friday, August 21, 2026

To-do List Plugin - Support Multiple To-do Sheets

To-do List Plugin has been enhanced to support multiple to-do sheets. This allows you to categorise the to-do list with teammate, personal and work, etc in separate sheets.

Please follow the steps below:

1. Click on the to-do sheet tab and duplicate the sheet.

    

2. Change the sheet name.


3. Run the Configure function to enter to-do sheet names, separated by commas.


4. Make sure all to-do sheets have the same format and configuration. 

5. The Plug in, Configure plug and Unplug functions will run on all defined to-do sheets.

6. The Refresh function will run on the active to-do sheet only.

7. The log will include the to-do sheet name in front of each task.




Monday, August 3, 2026

Personal Investor Lab: Staged Mode for Online Dashboard Renewal

A new Activate Staged Mode function has been added for online dashboard renewal.


When Staged Mode is activated, alerts are generated much faster because chart building is skipped. You can then use the generated alerts to fine-tune your alert settings before proceeding with chart generation.

Sunday, July 19, 2026

Personal Investor Lab: Shortcut Menu for Faster Navigation

I'm excited to introduce a new floating Shortcut Menu in Personal Investor Lab, designed to make frequently used functions more accessible and improve the overall usage.

What's New

Floating Shortcut Menu


The new floating shortcut menu provides quick access to the most commonly used functions:

  • Refresh Holding Price
  • Build Chart
  • Renew Dashboard
  • Post Activity

You can move the menu to any blank space which will stay there, visible while you use the add-on, reducing the need to navigate through multiple menus and making navigation more efficient.

Automatic Display

The Shortcut Menu automatically appears when you run the following function from menu:

  • Refresh Holding Price
  • Build Chart for a selected ticker.

Improved Chart Viewing Experience

The floating menu is particularly useful when viewing tickers which are not saved in the Chart sheet.

Quick Access to Post Activity

The Post Activity function is now readily available from the Shortcut Menu.

This is especially useful when updating activities that do not involve a row change will trigger  renewing holdings automatically.

Summary of Benefits

  • Faster access to frequently used functions
  • Fewer menu clicks
  • Improved workflow when reviewing charts
  • Convenient activity posting for non-row-change updates
  • Better overall user experience


Sunday, July 5, 2026

Personal Investor Lab: Performance & Dashboard Renewal Update

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.

Sunday, June 28, 2026

Personal Investor Lab: Indicator Validation for Alerts

With all investment data stored in a spreadsheet, you can define your own custom indicators:


These indicators can then be used in your buy and sell alerts.

The matching table now validates whether each referenced indicator exists on the first line. The last column displays ✅ for defined indicators and ❌ for undefined ones, making it easier to spot configuration errors before they affect your alerts.