A Next.js powered web application that parses Etsy financial statements to track order payouts and give insights for your Etsy shop.
- Comprehensive Dashboard: View all your Etsy orders, fees, taxes, and deposits in one place
- Payout Status Tracking: Automatically determines whether orders have been paid out to your bank account
- Financial Summary: Get instant insights into total sales, fees, net revenue, and pending payouts
- Filtering & Sorting: Filter orders by payout status and sort by date or amount
- Multi-File Support: Upload multiple CSV files at once for complete analysis
The application parses Etsy CSV statements and:
- Groups transactions by order number - Combines sales, fees, and taxes for each order
- Extracts deposit information - Identifies bank deposits from your statements
- Determines payout status - Matches orders with deposits based on availability dates
- Calculates financials - Provides detailed breakdowns of revenue, fees, and net amounts
- Node.js 18.0 or higher
- npm or yarn package manager
-
Clone or download this repository
-
Install dependencies:
npm install- Run the development server:
npm run dev- Open http://localhost:3000 in your browser
To create a production build:
npm run build
npm start- Log into your Etsy seller account
- Go to Shop Manager -> Finances -> Payment Account
- Click on Download CSV for the desired month(s)
- Save the CSV file(s) to your computer
- Open the Etsy Payout Tracker in your browser
- Upload your CSV file(s) onto the payout tracker
- The application will automatically parse and analyze your data
- Summary Cards: View high-level statistics at the top
- Orders Table: See all orders with their payout status
- Deposits List: View all bank deposits on the right sidebar
The application determines if an order has been paid out by:
- Checking if the order has an "availability date" in the CSV
- Looking for bank deposits on or after that availability date
- Marking orders as "Paid Out" if a matching deposit is found
- Orders without matches or with future availability dates are marked "Pending"
- All data processing happens locally in your browser
- No data is uploaded to any server
- Your CSV files are only read temporarily and are not stored
- Refresh the page to clear all data from memory
- Next.js 14 - React framework with App Router
- TypeScript - Type-safe development
- Tailwind CSS - Utility-first styling
- PapaParse - CSV parsing library
- date-fns - Date manipulation
