User Manual

Daily operating procedures, refresh schedules and troubleshooting.

$hail's Portfolio Dashboard

Daily Data Refresh User Manual

ICICI Direct • Interactive Brokers • Revolut

Embedded document image

Figure 1. Main dashboard and portfolio entry cards

Purpose Use this guide for the normal daily routine, transaction updates, automatic price refreshes, and common recovery steps. The main starting point is the $hail's Dashboard home page.

1. Daily routine at a glance

Start at: https://portfolio.finance.shailshilp.com/

PortfolioWhat refreshes automaticallyWhat you doWhen
ICICI DirectNothing without a valid Breeze session token.Generate/update the Breeze token when the session expires, then open the ICICI Direct Portfolio.Usually daily or whenever the session expires.
Interactive BrokersExternal prices at 22:40 UTC, Monday to Friday.For new trades, quantity, cash or account changes: log in to TWS, run the Windows agent, then click Refresh IBKR Snapshot.Snapshot only when holdings/account data change.
RevolutSupported prices and FX at 22:30 UTC, Monday to Friday.Upload a new complete account-statement CSV only when transactions change. Upload P&L CSV when available.No daily action for prices.
Important distinction A price refresh updates market prices and calculated P/L. A holdings refresh updates quantities, trades, cash and account information. These are separate processes.

2. ICICI Direct / Breeze process

Normal daily process

1. Open $hail's Dashboard

Open the home page and locate the ICICI Direct Portfolio, Breeze Session Token and ICICI Breeze Login cards.

2. Open ICICI Breeze Login

Use the ICICI Breeze Login card to open the ICICI Breeze API login page and generate a current session token when required.

3. Update the Breeze Session Token

Return to $hail's Dashboard, open the Breeze Session Token card, paste the new token, enter the admin PIN and submit the update.

4. Open ICICI Direct Portfolio

Open the ICICI Direct Portfolio card. The dashboard retrieves the available funds, holdings and P/L using the active Breeze session.

5. If data does not load

Generate a fresh Breeze token and update it again. Then reload the ICICI Direct Portfolio page.

What is automatic? ICICI holdings are retrieved through Breeze when the dashboard is opened, but the Breeze session token must remain valid. If the session expires, renew the token through the two Breeze cards on the main page.

3. Interactive Brokers process

A. Daily prices only

B. New buy, sale, quantity, cash or account change

1. Log in to TWS

On a Windows laptop with the agent installed, open Trader Workstation and wait until the account is fully connected.

2. Start the Windows agent

Open PowerShell and run:

cd "$env:USERPROFILE\OneDrive\Apps\IBKR-Test" python .\ibkr_windows_agent.py

3. Keep the agent window running

The expected message is: “IBKR agent running as home-laptop. Polling every 10 seconds.”

4. Click Refresh IBKR Snapshot

From the IBKR dashboard, click the Refresh IBKR Snapshot button and enter the admin PIN.

5. Wait for completion

The dashboard should progress through waiting, claim, export, upload and success states, then reload using the new snapshot.

6. Close when finished

After the snapshot has updated, the Windows agent may be stopped with Ctrl+C and TWS may be closed if no longer required.

Using another laptop The dashboard button can be clicked from any device. The laptop that is logged into TWS must be awake, online and running the configured Windows agent.

4. Revolut process

A. Daily prices

B. When Revolut transactions change

1. Export complete statements from Revolut

Download a complete start-to-date trading account statement CSV. Also download the P&L statement CSV when available.

2. Open Revolut Portfolio

From $hail's Dashboard, open the Revolut Portfolio card.

3. Choose Upload Revolut Statements

Click the upload button. The upload page opens in the same browser tab.

4. Select files carefully

Account statement field: trading-account-statement…csv. Optional P&L field: trading-pnl-statement…csv. Do not reverse the files.

5. Enter the admin PIN and upload

Click Upload and rebuild dashboard. The server validates the files, backs up the old snapshot and builds a new snapshot.

6. Return to the dashboard

After success, the browser returns automatically and displays “Success. [count] holdings loaded at [timestamp].”

Recommended update method Upload the latest complete start-to-date account statement rather than a differential file. Rebuilding from the full history reduces duplication and omission risk.

5. Daily and event-driven checklist

SituationRequired actionExpected result
Normal weekday, prices onlyNothing before the scheduled times. Refresh the Revolut/IBKR dashboards afterward.Revolut prices updated after 22:30 UTC; IBKR prices after 22:40 UTC.
ICICI dashboard session expiredUse ICICI Breeze Login, generate token, update Breeze Session Token, reopen ICICI Direct Portfolio.Funds and holdings load with a valid session.
IBKR trade or cash changedLog in to TWS, start Windows agent, click Refresh IBKR Snapshot, enter PIN.New TWS snapshot is exported and uploaded.
Revolut trade/dividend changedUpload fresh complete account CSV and optional P&L CSV.Revolut holdings and P&L summary are rebuilt.
Revolut/IBKR price says PendingNo urgent action. Map the exact provider symbol later or use fallback/manual price.Holding remains visible; price-dependent values may remain Pending.
Automatic job appears staleCheck the appropriate cron log and cache timestamp on Oracle.Any API or script error is visible in the log.

6. Troubleshooting quick reference

IBKR shows “Waiting for a Windows agent”

Confirm TWS is logged in and the Windows agent PowerShell window is running. If the request was accidental, reset the queued state on Oracle.

IBKR agent reports Unauthorized

Confirm the Oracle agent route is exempt from website Basic Authentication and that the private agent token matches on Oracle and Windows.

IBKR export reports order timeouts

If the script still reports Connected: True and saves ibkr_snapshot.json, the portfolio export can still be successful.

Revolut upload reports missing columns

The account and P&L files may be reversed. Put trading-account-statement in the account field.

Automatic prices did not change

Check whether the market was closed, whether the cached timestamp changed, and whether the provider returned an error or rate limit.

Alpha Vantage limit reached

Previously cached values remain available. Twelve Data continues to cover supported US equities and FX; retry Alpha Vantage after its allowance resets.

7. Reference commands

Start the IBKR Windows agent

cd "$env:USERPROFILE\OneDrive\Apps\IBKR-Test" python .\ibkr_windows_agent.py

Check scheduled jobs on Oracle

crontab -l

Check Revolut price-refresh log

tail -50 ~/breeze-app/logs/revolut-price-refresh.log

Check IBKR price-refresh log

tail -50 ~/breeze-app/logs/ibkr-price-refresh.log

Security reminder Never place API keys, agent tokens, admin PINs, IBKR credentials or Breeze session tokens in screenshots, HTML files, public JSON files or chat messages. Keep secrets only in protected configuration files.