📊
Retirement Portfolio
Please login to view your data
🔒 HTTPS encrypted · Data stored in Cloudflare KV
Loading data...

💾 Cloud Database

Data stored in Cloudflare KV — auto-syncs across all devices
💡 Export XLSX regularly for personal backup
🆕 Empty database
This account has no schema-v2 data yet. Initializing seeds your 9 known funds (PVD, TLWORLD-X, TLWORLDRMF, TLMMRMF, SGOV, DIME FCD, SCBGOLDE, ONE-GOLD-X-UX, BTC) — no snapshots or transactions, those you re-enter yourself.

If you have old data, export an XLSX backup from it first — this does not touch or delete that data (it lives under separate keys), but you won't see it here anymore.
—Portfolio history (snapshots)
—Transactions
—Last updated

📊 Manage Funds

Toggle a builtin fund off to hide its input from the snapshot form (historical data is kept). Custom funds are tracked by value only — perfect for new RMFs, ETFs, crypto, etc.

🗂️ Manage Asset Classes

Core classes count toward the retirement checkpoint (equity/cash/gold by default). Satellite classes (Crypto by default) are tracked separately, excluded from the ฿53.3M trajectory — a capped-loss sleeve, not part of the compounding math. At least one Core class is required.
📚 Instructions & Schema
XLSX file structure (schema v2) — key sheets:

Sheet: Funds — the fund registry (Id, Label, Type, Color, HasUnits, Currency, Section, ClassId, Active, Order, PriceSourceKind, PriceSourceRef). REPLACES the current registry on import.

Sheet: Asset_Classes — (Id, Label, Color, Target, Order, Sleeve). REPLACES on import. Sleeve = core (counts toward the retirement checkpoint) or sat (tracked separately — the Satellite card, excluded from the ฿53.3M trajectory). A file exported before this column existed has no Sleeve values; on import Crypto is re-derived as sat and everything else as core (same self-heal a first load after upgrading applies).

Sheet: Snapshots — Date, USD_THB, Contribution, Notes, then a <fundId> / <fundId>_units / <fundId>_cost triple per fund (columns are generated from the Funds sheet in the same file). Merged by date.

Sheet: Transactions — Date, FundId, Type, Units, CostPerUnit, Fx, Amount, Note, Timestamp. Fx (USD/THB) is set only for USD-denominated funds (e.g. SGOV) — CostPerUnit is in the fund's native currency, Amount is always THB. Type = buy / sell / div. Merged by timestamp.
A file with no Funds sheet is a pre-v2 export and can't be imported here.
Retirement Portfolio · Updated —
Portfolio Value
฿—
—
Portfolio NAV
—
—
🛰️ Satellite ฿0
TWR
—
Time-Weighted
MWR / IRR
—
Money-Weighted
Gain / Loss
—
Total invested —
Portfolio vs Target
—
Total / ฿53.3M (age 60)
Portfolio Value
— Current Value — Cumulative Cost
📈 Portfolio vs Target Checkpoint
⚡ Comparing whole portfolio (equity + bond + cash) against checkpoint
Asset Allocation
100%
Fund Details
FundValueUnitsNAVCostGain/LossType
🛰️ Satellite
Tracked, but excluded from the retirement checkpoint — a capped-loss sleeve, not part of the ฿53.3M trajectory
FundValueUnitsCostGain/Loss
Satellite total: ฿0
🎮 Portfolio Checkpoints
🥚
タマゴ
Egg
☆☆☆☆☆
財の種、まだ眠る...
Next Checkpoint (Total)
—
—
—%
Reached
📸 Save Portfolio Snapshot
Enter only current prices/NAV — units and cost basis derived from Transactions
✏️ Editing snapshot for  Cancel
🔮 Retirement Forecast
Calculated at 6%/yr growth + DCA from transactions
Not enough data
💸 Withdrawal Simulator
How long does the money last after you retire?
Start balance (age 60)
projected
Monthly spend
4% rule
Return /yr
post-retirement %
Inflation /yr
grows spend %
📋 Snapshot History
—
📝 Transaction Log
Specify which fund you added/withdrew money from

Education fund

Plan with calm confidence

Track Punn's education savings, activity, and school costs in one place.

Education data migration

No production data changes occur until you download a fresh backup and explicitly confirm migration.

Complete the backup-confirmed migration above to unlock Activities and School Plan.

Education outlook

Am I on track?

Update a snapshot to see your actual fund position.

Actual Fund Value
No snapshot yet
Graduation Surplus / Shortfall
—
—
24-Month Safety Coverage
—
Snapshot required
Next Planned Fee
—
No planned fee
💰 Surplus at Graduation
—
After all tuition paid
📈 Peak Portfolio Value
—
Highest combined value
Monthly Saving
—
vs monthly target
Academic-Year Budget vs Actual
—
vs planned budget
Net Fund Cash Flow
—
saving + tax − fund expenses
🏫 Current School & Upcoming Fees
🗓️ 24-Month Fee Window
Rolling total of planned fees and latest safety coverage
📊 17-Year Education Fund Projection — Punn
Safety Bucket (Cash/MMF)Growth Bucket (Equity)Tax Fund Unlock → GrowthAnnual Tuition CostActual Total
Projection AssumptionsInitial, saving, rates & reserve

⚙️ Simulator Settings

🎓 Tuition Schedule (edit per year)
2-Bucket Strategy
📈 Bucket 1 · Growth
VT — receives DCA
🛡️ Bucket 2 · Safety
Cash / MMF — pays tuition
🔄 Annual rebalance: pull from Growth so Safety covers this year + 1 yr ahead
📋 Year-by-Year Breakdown
Bucket balances after rebalance & tuition payment
Year Tuition Tax Fund In Growth Bucket Safety Bucket Total Safety Score
🛡️
Safety Bucket Score
—
Avg fund / remaining cost · ≥1.5x = healthy · <1.0x = at risk
📝 Record Education Fund Transaction
Log actual deposits into Punn's fund & update portfolio value
Legacy tools

Activities and School Plan require migration. Legacy transaction entry remains available until migration is confirmed.

📊 Actual Portfolio Snapshots
—

Update Snapshot

✏️ Editing snapshot:

Delete Snapshot

📋 Education Fund Transaction Log
—
Activities
Showing 0 of 0 activities

Add Activity

Delete Activity

Activities and School Plan require migration. Confirm migration from Overview to manage the School Plan.

Manage School Plan

School periods and their planned fee schedules.

Add School Period

Change School

Enter the next school period. You will review the exact transition before anything is saved.

Review transition

Add Fee Item

Advanced yearly overrides

Blank years use escalation.

Confirm action

🏛️ Thai Tax Funds (SSF / RMF / ThaiESG)

Lock-up tracker. When a lot unlocks, transfer it to Punn's Growth Bucket via the action button.

💼 Total Value
—
— lots active
🔒 Locked
—
—
🔓 Unlocked
—
—
⏭️ Next Unlock
—
—
📅 Unlock Timeline
Value becoming sellable each year (current value of locked lots)
📋 Lots
—
Fund Bought Unlocks Time Left Units NAV (฿) Value Status
➕ Add / Edit Lot
New lot
📥
Seed initial lots from Thai Tax fund record.xlsx
Imports the 7 lots: KFCASHSSF, KFS100SSFX, MEGA10CHINA-SSF, MEGA20THAIESG, KKP GB THAI ESG (×2), KKP BL THAI ESGX-2568. You can edit/delete after.
📤 Transferred to Punn's Growth
—
Fund Bought Transferred Units Value at Transfer