Original Idea
Freelancer Tax Withholding A web app that calculates quarterly estimated taxes for freelancers based on invoices and reminds you before payment deadlines.
Product Requirements Document (PRD): TaxWise Freelance
1. Executive Summary
TaxWise Freelance is a modern financial management web application designed specifically for independent contractors and gig workers in the US. By automating quarterly estimated tax calculations, providing real-time liability dashboards, and offering proactive deadline reminders, the platform eliminates "tax-season surprises." Built on a 2026-standard tech stack, it leverages AI-driven transaction categorization and high-security encryption to ensure freelancers remain compliant with IRS and state regulations while optimizing their cash flow.
2. Problem Statement
Freelancers operate without the automated withholding systems of traditional W-2 employment. This leads to:
- Accuracy Issues: Difficulty in tracking fluctuating income and calculating complex marginal tax brackets.
- Compliance Risk: Missed quarterly deadlines resulting in IRS/State interest and penalties.
- Cash Flow Stress: Unexpectedly large tax bills at year-end due to lack of real-time visibility into tax liabilities.
3. Goals & Success Metrics
- Goal 1: Provide 99.9% accurate federal/state tax estimations based on current 2026 tax laws.
- Goal 2: Reduce the time spent on manual tax bookkeeping by 70% through automation.
- Goal 3: Zero late-payment penalties for users following automated reminders.
- Success Metrics:
- Monthly Active Users (MAU) retention > 40%.
- User Accuracy Rating: Average variance between app estimate and final filing < 2%.
- NPS (Net Promoter Score) > 60.
4. User Personas
A. Sarah, the "Full-Time Creative" (Sole Proprietor)
- Role: Freelance Graphic Designer.
- Needs: To know exactly how much to set aside from every client payment.
- Pain Point: She often forgets the June 15th deadline and pays a penalty every year.
B. Marcus, the "Side-Hustler" (Gig Economy)
- Role: Uber/DoorDash driver + Part-time W-2 job.
- Needs: To understand how his side income affects his total tax bracket.
- Pain Point: Difficulty combining W-2 withholdings with 1099 liabilities.
5. User Stories
- As a freelancer, I want to link my bank account so that my income is automatically tracked and categorized for taxes.
- As a consultant, I want to see my estimated tax liability update in real-time as I log new invoices.
- As a sole proprietor, I want to receive SMS reminders 7 days before a quarterly deadline so I never miss a payment.
- As a user with a spouse, I want to select "Married Filing Jointly" so the tax brackets accurately reflect my household situation.
6. Functional Requirements
6.1 Onboarding & Setup
- FR-1: Users must select Federal and State jurisdictions (Support for all 50 US states).
- FR-2: Support for filing statuses: Single, Married Filing Jointly, Married Filing Separately, Head of Household.
- FR-3: Manual entry for expected annual income to initialize tax bracket logic.
6.2 Income & Expense Management
- FR-4: Automated income fetching via Plaid API (using PFCv2 for Gig Income detection).
- FR-5: Manual invoice entry for cash/check payments.
- FR-6: Expense categorization mapped to IRS Schedule C lines (Meals, Office Supplies, etc.).
6.3 Tax Engine
- FR-7: Calculation of Self-Employment Tax (15.3% on 92.35% of net earnings).
- FR-8: Implementation of 2026 Federal brackets (10% to 37%) and state-specific ladders.
- FR-9: Support for Safe Harbor logic (checking if 100%/110% of prior year tax is met).
6.4 Reminders & Reporting
- FR-10: Automated SMS (Twilio) and Email (SendGrid) notifications for Q1-Q4 deadlines.
- FR-11: Generation of pre-filled Form 1040-ES PDFs using
pdf-lib. - FR-12: Real-time dashboard showing "Paid vs. Owed" for the current quarter.
7. Technical Requirements
7.1 Tech Stack (2026 Standard)
- Frontend: React v19.2.3 with Tailwind CSS v4.1.18 and TypeScript.
- Backend: Node.js v24.13.0 (LTS) with Express v5.1.0.
- Database: PostgreSQL v18.1.
- State Management: Signals (@preact/signals-react) for fine-grained reactivity in the dashboard.
- Background Workers: Inngest (Hybrid approach for durable execution of reminders).
- Authentication: Clerk (using Organizations for multi-tenant isolation and MFA).
7.2 Integrations
- Plaid: For automated transaction syncing (Transactions for Business Beta).
- API Ninjas: For real-time 2026 tax bracket verification.
- Twilio/SendGrid: For multi-channel alerts.
8. Data Model
- Users:
id,clerk_id,email,filing_status,state_residency,encrypted_ssn(using AES-256-GCM). - IncomeEntries:
id,user_id,amount,category(Plaid PFCv2),date,is_verified. - TaxRules (Bitemporal):
id,jurisdiction,year,bracket_data (JSONB),effective_range (tstzrange). - TaxPayments:
id,user_id,quarter,amount_paid,confirmation_number.
9. API Specification (Sample)
POST /api/v1/income
- Description: Log a new income entry.
- Request Body:
{ "amount": 1500.00, "date": "2026-03-15", "source": "Stripe", "category": "Gig Income" } - Response:
201 Createdwith updatedtotal_quarterly_liability.
GET /api/v1/tax-summary
- Description: Fetch current dashboard metrics.
- Response:
{ "federal_owed": 4250.00, "state_owed": 840.00, "next_deadline": "2026-04-15", "days_remaining": 31 }
10. UI/UX Requirements
- Dashboard: A "gauge" chart showing the percentage of tax set aside vs. the total liability.
- Income Feed: A virtualized list (React Window) for smooth scrolling through thousands of transactions.
- Mobile-First: Fully responsive design using Tailwind v4's CSS-first configuration.
- Accessibility: WCAG 2.1 Level AA compliance, specifically for color contrast on financial charts.
11. Non-Functional Requirements
- Security:
- AES-256-GCM encryption for all PII.
- Envelope Encryption with AWS KMS.
- Compliance with IRS Publication 4557.
- Performance:
- Dashboard calculations offloaded to Web Workers (Comlink) to prevent UI jank.
- API response times < 200ms for income logging.
- Reliability: 99.9% uptime for the reminder service using Inngest retries.
12. Out of Scope
- Full annual tax filing (1040) directly to the IRS.
- Tracking of capital gains/losses from stocks or crypto (1099-B).
- Corporate tax filing (1120-S / 1065).
- International tax jurisdictions outside the United States.
13. Risks & Mitigations
- Risk: IRS changes tax brackets mid-year (Legislative risk).
- Mitigation: Bitemporal data modeling in PostgreSQL to update rules without corrupting historical logs.
- Risk: Users rely on app and still underpay.
- Mitigation: Clear disclaimers and a "Safety Buffer" feature that allows users to save an extra 2-5% over the estimate.
- Risk: Financial data breach.
- Mitigation: SOC2 Type II compliance roadmap and mandatory MFA via Clerk.
14. Implementation Tasks
Phase 1: Project Setup & Auth
- [ ] Initialize project with React v19.2 and Node.js v24.
- [ ] Configure Tailwind CSS v4.1 with Lightning CSS engine.
- [ ] Set up Clerk Auth with Mandatory MFA and Organization support.
- [ ] Configure PostgreSQL v18 with AES-256-GCM encryption utilities in Node.js.
Phase 2: Core Tax Engine & Database
- [ ] Design Bitemporal schema for
TaxRules. - [ ] Implement Federal 2026 tax logic (Self-employment + Income tax).
- [ ] Build Web Worker (Comlink) wrapper for real-time math calculations.
- [ ] Create API for manual income/expense logging.
Phase 3: Plaid & Automation
- [ ] Integrate Plaid Link with
personal_finance_category_version: "v2". - [ ] Build mapping layer: Plaid PFCv2 $\rightarrow$ IRS Schedule C.
- [ ] Implement "Confidence Score" logic for auto-categorization of income.
- [ ] Set up Inngest for background transaction syncing.
Phase 4: Reminders & Notifications
- [ ] Configure Inngest "Durable Workflows" for quarterly scheduling.
- [ ] Integrate Twilio for SMS alerts.
- [ ] Integrate SendGrid for email reports.
- [ ] Build "Sudo Mode" for changing sensitive tax residency settings.
Phase 5: Reporting & PDF Generation
- [ ] Implement
pdf-liblogic to fill IRS Form 1040-ES. - [ ] Build "Export Data" feature for CSV/Excel (Schedule C ready).
- [ ] Conduct security audit for IRS Publication 4557 compliance.
- [ ] Final UI polish and accessibility testing.