Support
We're a small team and we read every message. Typical response time is 24–48 hours.
Accounts & Positions
How do I add my first account?
Open the Accounts tab and tap the + button. Give your account a name (e.g. "Schwab Roth IRA"), pick the brokerage hint (purely cosmetic for the icon), and save. Compounder HQ treats each account as a brokerage relationship — the tax wrapper is set per-position, not per-account, so a single Rakuten account can hold both NISA and 特定 (taxable) positions.
What's the difference between an Account and a tax wrapper?
An Account is just the brokerage relationship — "Schwab", "Fidelity", "Rakuten Securities". The tax wrapper (Taxable / Trad IRA / Roth / 401(k) / HSA / NISA / iDeCo / ISA / SIPP / SRS / MPF / IRP / NPS / PPF) is set on each individual Position via the wrapper picker on AddPositionSheet. This mirrors how brokers actually work — e.g. a Rakuten account legitimately holds both NISA-sheltered and 特定-account positions side by side, and CompounderHQ's tax engines read the per-Position wrapper.
Why does the Free tier limit me to 2 accounts and 25 positions?
Free tier exists so you can fully evaluate the app before subscribing. With 2 accounts and 25 positions you can model a realistic small portfolio — e.g. one taxable account and one IRA — and exercise every feature except the Pro-locked projections (After-Tax Income, Income Goal, X-Ray, DRIP, calendar past 30 days, widgets, all alerts). Pro is $39.99/yr. There is no paid trial — the Free tier is the trial.
Transactions & Tax Lots
What lot allocation methods does Compounder HQ support?
Five methods, picked per-position via the Menu picker on PositionDetailView:
- FIFO — First In, First Out. The IRS default if you don't otherwise specify.
- LIFO — Last In, First Out. Useful for high-cost-basis-first scenarios.
- Min-tax — Highest cost basis first. Minimises realised gain in the current year.
- Max-tax — Lowest cost basis first. Maximises gain (e.g. for tax-loss harvesting offsets).
- Average cost — Lifetime weighted average; collapses to position-wide cost but still walks lots FIFO for holding-period (long-term vs short-term) tagging.
What are TaxLots and how are they created?
Every Buy transaction (manual or imported via CSV) creates a corresponding TaxLot with the acquisition date, share count, cost basis per share, and any fees. Sell transactions consume open lots using your chosen allocation method — the consumed lots and the realised gain per slice are recorded as LotConsumption rows linked to the Sell. This audit trail is sufficient input for a future Schedule D / Form 8949 export (planned for v1.1).
What transaction types can I record?
Buy, Sell, Split, Spinoff, and Merger can be entered manually. Dividend Received and Return of Capital are auto-generated from the dividend pipeline — not user-enterable. Splits scale every open lot's shares and basis. ROC reduces every open lot's basis proportionally. Spinoffs and mergers are audit-only in v1.0 (notes-only) — for those, log a Sell of the original position and add a new Position for the resulting security.
Can I edit or delete a transaction after entering it?
Yes. Tap any Buy in the Transactions section of PositionDetailView to open EditTransactionSheet — you can adjust shares / price / date for an intact lot, or date-only if the lot has already been partially sold. There's a Delete button for full removal. The Position aggregates (total shares, weighted-avg cost) recompute automatically.
Covered-Call ETFs & Section 19(a)-1
What is Section 19(a)-1 and why does it matter?
US closed-end funds and certain ETFs that pay distributions exceeding their net investment income are required by SEC Rule 19a-1 to issue a Section 19(a)-1 Notice with each distribution disclosing what portion is qualified dividend, ordinary dividend, return of capital, and (for option-strategy funds) Section 1256 gain. Most consumer dividend trackers treat these distributions as a single "dividend" number — that's misleading because each component has a different tax treatment. CompounderHQ splits them properly and applies the right tax math.
Which ETFs are covered in v1.0?
v1.0 ships a curated manifest of the top 10 covered-call ETFs by AUM: JEPI, JEPQ, SPYI, QQQI, XDTE, ULTY, XYLD, QYLD, DIVO, and SVOL. The manifest reflects typical historical splits and is refreshed periodically via a Cloudflare Worker (no app update required). Live SEC EDGAR Section 19(a)-1 parsing is on the v1.1 roadmap.
How does Return of Capital affect my cost basis?
ROC distributions reduce the cost basis of every open lot in the position proportionally on the ex-date, floored at zero. This is automatic — you'll see a
.returnOfCapital Transaction row appear in the Transactions section with "−$X/sh" and a "basis reduction" subtitle. ROC is not taxed as current-year income (which is why your taxable income shouldn't include it). The reduced basis means a larger realised gain when you eventually sell. If basis hits zero, the excess ROC is logged for your awareness — v1.0 doesn't auto-realise this as long-term capital gain (planned for v1.2).
What's Section 1256 and why is it 60/40?
IRC Section 1256 governs certain regulated futures contracts and broad-based index options. Gains and losses on Section 1256 contracts are taxed as 60% long-term capital gain and 40% short-term — regardless of holding period. Some option-strategy ETFs (e.g. SVOL with its VIX futures structure, certain index-option-writing funds) generate Section 1256 distributions, and CompounderHQ classifies them with that auto-60/40 split in the after-tax engine.
Tax Residency & Multi-Country Investors
I'm an NRI / US expat / international user holding US stocks. Does this app work for me?
Yes — this is a primary use case. Compounder HQ is built for global App Store availability and supports nine residencies. Pick yours in Settings > Tax Residency and the after-tax engine applies your country's treaty withholding rate plus your domestic tax (sheltered for NISA / iDeCo / ISA / SIPP / NPS / etc., but US withholding still applies inside those wrappers). For the most common scenarios the app shows the unrecoverable-withholding gotcha that broker statements only reveal months after the fact.
Which residencies are supported?
United States (per-class), Japan, United Kingdom, India, Singapore, Hong Kong, China, Korea, and a generic "Other" with a conservative 30% withholding default. Each engine carries its own treaty-based US withholding rate, domestic tax model, and Foreign Tax Credit math. Pick yours in Settings > Tax Residency.
Do tax-advantaged accounts shelter US dividends?
They shelter domestic tax only. US withholding tax (15% under most US treaties, 0% for US residents) is taken at source by the issuer regardless of which account you hold the security in. So a Japan-resident holding JEPI in NISA still loses 10% (treaty rate) of every dividend to US withholding — that's permanent and unrecoverable in NISA because there's no domestic tax to credit it against. The app shows you exactly this number so there are no surprises.
Why is the Foreign Tax Credit math simplified?
CompounderHQ uses the simplified principle
net total tax = max(US withholding, domestic gross tax). Real FTC limitation, carryforward, and per-basket sourcing rules (US Form 1116, UK Foreign Notes, India DTAA Article 25, etc.) are more complex — they involve income source classification, separate baskets, and accumulated-credit carryovers. The app's projection is directionally correct for typical situations but should not be used for actual tax filing. Always reconcile with a qualified tax adviser in your country of residence.
CSV Import
Which brokers does Compounder HQ support?
Eight CSV parsers ship in v1.0:
- US: Fidelity, Schwab, Vanguard, Interactive Brokers (IBKR Activity Statement)
- Japan: SBI証券 (foreign / 米国株式 sections), 楽天証券, マネックス証券
- Generic: permissive header-matching fallback for anything else
What does the row validator check?
CSVRowValidator runs three layers when you import:
- Layer 1 (deterministic): negative shares, missing symbol, malformed cost basis, future purchase dates, etc.
- Layer 2 (statistical): Modified Z-score MAD outlier detection on cost basis vs the rest of the file — flags "$1500 cost basis on a $30 stock" type errors.
- Layer 3 (cross-check): async lookup of current quote — flags positions whose cost basis is wildly off from current price.
Re-importing a CSV created duplicates last time. Is that fixed?
Yes — v0.2 introduced delta math. Re-importing the same broker file performs a reconcile: existing positions are matched by (account, symbol, wrapper) and updated in-place; new positions are added; missing positions are flagged. A post-commit alert summarises the result with ✓ (added), Δ (changed), = (unchanged), and ⚠️ (warnings) counts. No more accidental doubling.
I have multiple Schwab accounts. How does the importer route the rows?
If the brokerage hint matches more than one of your accounts, the importer surfaces a picker forcing you to explicitly choose which account this CSV belongs to. Content-token sniffing also distinguishes brokers that use the same CSV shape — e.g. a Moomoo export won't be misclassified as Rakuten just because both are Japanese-styled CSVs.
Subscription & Billing
How do I subscribe to Pro?
Tap any Pro feature (After-Tax Income tab, Income Goal, Portfolio X-Ray, DRIP toggle, etc.) and the paywall appears. Pro is $39.99/yr via Apple's StoreKit. Your entitlement updates within seconds of confirmation. Restore Purchases in Settings re-establishes Pro on a new device when you sign in with the same Apple ID.
How do I cancel my subscription?
Go to iOS Settings > [your name] > Subscriptions — or in the app, Settings > Manage Subscription deep-links you there. Cancellation takes effect at the end of the current billing period; you keep Pro features until then.
Can I get a refund?
Refunds for App Store purchases are issued by Apple, not by MARS Studio. Visit reportaproblem.apple.com, sign in with your Apple ID, find the Compounder HQ purchase, and request a refund. Apple typically responds within 48 hours.
Projections, Scores & Forecasts
How does the After-Tax Income Forecast work?
For each held position, Compounder HQ takes the trailing-twelve-month dividend stream, shifts each event forward 12 months, classifies each event via Section19ANoticeAugmenter (qualified / ordinary / ROC / Section 1256 / cap gain), then applies your residency engine (with treaty withholding + domestic tax + tax-advantaged shelter logic). The result is per-month, per-account, per-class after-tax income for the next 12 months. Section 1256 auto-computed 60/40. ROC zero-rated. The Pro IncomeForecast tab visualises this with a bar chart, totals card, and per-account / per-class breakdown.
What's the difference between Compounder Score and Compounder Rank?
Compounder Score is a 0–10 quality score evaluating P/E, FCF yield, ROE, debt levels, and dividend growth consistency — per stock. Free users get the top-line score; Pro users get the component breakdown.
Compounder Rank is a 0–100 composite (Quality 30% + Safety 30% + Chowder Rule 25% + Consecutive raise streak 15%) that lets you compare stocks side by side. Available from the toolbar of Accounts and Watchlist. Select 2–4 stocks and tap Compare for a side-by-side sheet covering 11 metrics.
Compounder Rank is a 0–100 composite (Quality 30% + Safety 30% + Chowder Rule 25% + Consecutive raise streak 15%) that lets you compare stocks side by side. Available from the toolbar of Accounts and Watchlist. Select 2–4 stocks and tap Compare for a side-by-side sheet covering 11 metrics.
What's the Chowder Rule?
David Crosetti's Chowder Rule (popularised on Seeking Alpha) tests dividend yield + 5-year dividend CAGR against a threshold:
- Utilities: yield + 5Y CAGR ≥ 8
- Yield ≥ 3%: yield + 5Y CAGR ≥ 12
- Yield < 3%: yield + 5Y CAGR ≥ 15
How does Portfolio X-Ray work?
For each ETF in your portfolio that's covered by the manifest (~12 popular US ETFs in v1.0), X-Ray decomposes the position into the ETF's top-10 underlying holdings weighted by your share count. It then aggregates across your direct holdings + ETF-implied exposures to give you a single ranked list of "true" effective exposure. Multi-source rows (e.g. AAPL via direct + SPY + VTI + QQQ) show a count badge and expand to a per-source breakdown. Pro feature. Long-tail ETF holdings beyond the top-10 are not surfaced in v1.0.
How does DRIP simulation work?
Toggle DRIP on for any position in PositionDetailView's "Tax lots" section. From that moment forward, every dividend received simulates a buy at the price closest to the ex-date in the position's loaded chart (within a 5-trading-day window). The simulated buy creates a new TaxLot with its own un-reduced cost basis. Past dividends remain as cash audit rows — this matches what brokers actually do (Vanguard / Schwab / Fidelity / IBKR all DRIP forward-only). Retroactive multi-year DRIP is on the v1.2 roadmap.
Alerts & Widgets
How do alerts work in v1.0?
v1.0 uses local notifications only — ex-dividend reminders fire 2 days before at 9 AM local time; earnings reminders fire 1 day before at 5 PM local. Caps: 32 ex-div + 16 earnings (within iOS's 64-pending limit). Enable in Settings > Alerts (off by default). The app schedules notifications via BGAppRefresh every 4 hours when in the background. Server-driven push alerts are on the v1.1 roadmap.
What widgets are available?
Pro users get configurable home-screen widgets: SymbolDividend (per-symbol dividend overview), TopMovers (watchlist scope, biggest movers of the day), and a portfolio summary tile. Long-press the widget to configure scope. iOS 17+ interactive widgets supported.
Why am I not receiving alerts?
Three things to check:
- Notifications enabled in iOS Settings > Notifications > Compounder HQ.
- Alerts toggle on in app's Settings > Alerts.
- Open the app at least once a day — iOS schedules background refreshes opportunistically; if the app hasn't been launched recently, the system may pause refreshes.
Sync, Backup & Data
How do I enable iCloud sync?
Open Settings > Sync and toggle iCloud sync on. The app will write to your iCloud private database (CloudKit) the next time data changes. Other devices signed into the same Apple ID will pick up the changes within seconds. Disabled by default — your data starts local-only. (iCloud sync is being activated for the App Store launch; if you're on a TestFlight build, this toggle may appear inert.)
How do I back up my data?
If iCloud Backup is enabled on your iPhone (iOS Settings > [your name] > iCloud > iCloud Backup), Compounder HQ's local data is included in your nightly device backup. iCloud sync (separate feature) keeps live data in sync across devices. For an export-style backup, use Settings > Export to write all positions and transactions to a CSV file you can save to Files or email to yourself.
Can I bring my own Finnhub API key?
Yes. In Settings > Data Source, paste your Finnhub key. The app stores it in iOS Keychain and uses it for all Finnhub requests, sidestepping the shared rate-limited pool. Free Finnhub keys are 60 requests/min; paid tiers are higher. Useful for Pro users with large portfolios who hit the shared cap during heavy use.