Two ordering platforms (PhotoFinale/PPRpix and ROES Server) feed into a single Stripe account. The incremental sync runs daily at 06:00 UTC, pulling new charges and enriching them with platform identification. ROES charges are backfilled every 20 minutes with description and metadata to enable QuickBooks Stripe Connector sync.
2. Tax Jurisdiction Logic
ZIP code is the definitive jurisdiction locator. City name is NOT used due to unreliability in Stripe data (55 of 101 January orders listed 'Atlanta' regardless of actual municipality). Tax is back-calculated using the formula: taxable = gross / (1 + rate), then tax = gross - taxable.
Tax Jurisdiction Rules
ROES Default
GA in-store pickup (override only if shipping specifies non-GA state)
PhotoFinale
Shipping ZIP → billing ZIP → default Atlanta/Fulton 9%
Store Pickup
Detected via "1234 Logan Circle, 30318" pattern
GA Rate Range
7.0% – 9.0% (State 4% + County + City + MARTA varies)
JSON: Complete data with per-order jurisdiction details
CSV JE: QuickBooks journal entry import (one summary line per month)
Combined Summary
Generated via generate-combined-summary.js - compares all months.
XLSX: Month-over-month comparison with jurisdiction detail
PDF: Executive summary format
JSON: Aggregated data
Stripe Fees Export
Generated via generate-stripe-fees-csv.js.
Detail CSV: One row per charge with fees
JE CSV: One monthly summary entry for QB import
5. Financial Summary
All-time totals across December 2025 – February 2026 (3 months):
Metric
Dec 2025
Jan 2026
Feb 2026
TOTAL
Orders
128
144
112
384
Gross Revenue
$9,155.52
$11,848.01
$9,051.00
$30,054.53
Stripe Fees
$303.95
$385.15
$295.18
$984.28
Net Revenue
$8,851.57
$11,462.86
$8,755.82
$29,070.25
GA Taxable Orders
113
137
109
359
Estimated GA Tax
$644.18
$740.49
$691.77
$2,076.44
Out-of-State
15
7
3
25
PhotoFinale
116
85
86
287
ROES
12
59
26
97
6. Script Reference
Script
Purpose
incremental-sync.js
Stripe API sync → scan-results.json
backfill-roes-charges.js
ROES charge enrichment for QBO Stripe Connector sync
cron-roes-backfill.sh
Sync + backfill wrapper script (systemd timer)
generate-monthly-tax-report.js
Per-month XLSX+PDF+JSON+CSV tax report
ga-tax-jurisdictions.js
75+ ZIP jurisdiction database module
generate-combined-summary.js
Multi-month comparison report (XLSX+PDF+JSON)
generate-stripe-fees-csv.js
Stripe fee export for QBO (detail CSV + JE CSV)
roes-tax-merger.js
ROES CSV tax data merger (historical tool)
monthly-tax-aggregator.js
ROES CSV monthly aggregation (historical tool)
7. Known Limitations
PhotoFinale tax amounts are ESTIMATED via back-calculation (taxable = gross / (1 + rate)). Actual tax amounts are not captured by Stripe metadata.
Approximately 15 split-jurisdiction ZIP codes exist in the Atlanta metro area, where a single ZIP may span multiple municipalities with different tax rates. Maximum theoretical monthly error is approximately $60.
No tracking for tax-exempt entities or organizations. All GA orders are assumed taxable.
ROES orders have no customer-facing order number in Stripe metadata (use Stripe charge ID for lookups).
Shipping charges cannot be separated from product amounts in current data. This causes slight tax overestimation since shipping may be taxed at different rates or exempt.