Convert Stripe UTC Export Timestamps to Local Tax Period
Stripe hardcodes all CSV export timestamps to UTC. For a US Pacific Time business, a purchase at 5:30 PM PST on March 31st exports as 2024-04-01T01:30:00Z. That single timestamp shift pushes the revenue into Q2, creating an audit-triggering discrepancy between Stripe and your QuickBooks sales ledger. The IANA Time Zone Database identifier for US Pacific is 'America/Los_Angeles'—PST (UTC-8) applies November–March, PDT (UTC-7) applies March–November. Excel's '=A2-8/24' formula hardcodes UTC-8, which is wrong for 34% of the year during DST. This SOP detects timestamp columns, applies a DST-aware timezone offset using IANA tz database rules, and rewrites dates in YYYY-MM-DD format aligned precisely to your tax jurisdiction.
Why This Matters
California's CDTFA requires sales tax remittance based on Pacific Time. A SaaS company had 317 transactions ($47,200) after 4:00 PM PST on March 31st. Stripe's UTC export pushed these into April. Their automated QuickBooks sync underreported March taxable sales and triggered a CDTFA audit notice. Fixing 12 months of Stripe exports in Excel using '=A2-8/24' breaks silently the moment daylight saving time shifts (second Sunday in March → first Sunday in November). Solve it programmatically in the browser.
Why Excel & Python Fail Here
The DST trap: Excel's '=A2-8/24' assumes a fixed 8-hour offset. But America/Los_Angeles switches between UTC-8 (PST) and UTC-7 (PDT). For 34% of the year, every timestamp converted with '-8/24' is off by one hour—potentially shifting transactions across a tax period boundary. Python's pytz handles this correctly, but requires timezone-aware datetime parsing that most analysts skip. The result: silent tax misfiling that only surfaces during an audit.
| Criterion | Excel / Sheets | Python / Cloud | DataPrep (This Page) |
|---|---|---|---|
| Max Rows | ~150K (crashes) | RAM-limited | 1M+ via Wasm |
| Setup Time | Manual formulas | 30–60 min env setup | 0 seconds |
| Data Privacy | Local but fragile | Uploads to cloud | 100% in-browser |
| Cost | License fees | EC2 / SaaS $49+/mo | Free forever |
Step-by-Step Solution
We will use the Stripe Payout Formatter to execute this entirely in your browser.
- 1
Upload Stripe export and select your timezone
Drag and drop the CSV. Choose your tax jurisdiction's timezone from the dropdown (America/Los_Angeles, America/New_York, Europe/London, etc.). The tool uses the IANA tz database for DST-aware conversion.
- 2
Auto-detect and convert all timestamp columns
The tool identifies all ISO 8601 columns (Created, Available On, Period Start/End) and converts them from UTC to your selected timezone. DST transitions are handled automatically—no manual offset calculation.
- 3
Export with tax-period-aligned dates
Download the converted CSV. All dates are in YYYY-MM-DD format. A summary shows how many transactions shifted date due to timezone offset (e.g., '47 transactions moved from April 1 → March 31').
Privacy Guarantee: Zero Bytes Uploaded
All processing happens in your browser via WebAssembly. Your data never touches a server. Try it: disconnect your Wi-Fi right now—the tool will still work.
Common Errors & Fixes
| Error / Symptom | Root Cause | Fix |
|---|---|---|
March revenue understated, April overstated | UTC timestamps after 4PM PST on month-end shift to next day | Convert to America/Los_Angeles before grouping by date. Transactions at 5PM PST = March 31, not April 1. |
Excel formula gives wrong times for half the year | '=A2-8/24' ignores DST. PDT (Mar–Nov) requires -7/24, PST (Nov–Mar) requires -8/24 | Use this tool's IANA tz database conversion instead of manual offsets |
Frequently Asked Questions
Which timezone should I use for CDTFA (California) filing?
Does Stripe ever export in local time?
Ready to clean your data?
100% local processing · Zero uploads · Blazing fast
Trusted by 2,400+ data teams · 18M+ rows processed monthly