
Marketplace Fee Reconciliation
- 75 installs
- 41 repo stars
- Updated March 13, 2026
- finsilabs/awesome-ecommerce-skills
Reconcile seller fees from Amazon, eBay, Walmart, and Etsy to compute net revenue with fee categorization and optimization recommendations.
About
Reconciles and categorizes marketplace seller fees across Amazon, eBay, Walmart, and Etsy to calculate true net revenue. A seller or developer uses it to understand real margins and find fee-optimization opportunities.
- Fee categorization and net-revenue calculation across marketplaces
- Fee-optimization recommendations
Marketplace Fee Reconciliation by the numbers
- 75 all-time installs (skills.sh)
- Ranked #551 of 1,106 Finance & Trading skills by installs in the Skillselion catalog
- Data as of Aug 3, 2026 (Skillselion catalog sync)
npx skills add https://github.com/finsilabs/awesome-ecommerce-skills --skill marketplace-fee-reconciliationAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 75 |
|---|---|
| repo stars | ★ 41 |
| Last updated | March 13, 2026 |
| Repository | finsilabs/awesome-ecommerce-skills ↗ |
What it does
Reconcile seller fees from Amazon, eBay, Walmart, and Etsy to compute net revenue with fee categorization and optimization recommendations.
Files
Marketplace Fee Reconciliation
Overview
Selling on marketplaces like Amazon, eBay, Walmart, and Etsy introduces a complex layer of fees that significantly impact net profitability. Amazon alone has over a dozen distinct fee types: referral fees, FBA fulfillment fees, storage fees, advertising fees, return processing fees, and more. These fees are deducted before disbursement, making it easy to lose track of how much of your gross revenue actually reaches your bank account.
Fee reconciliation is the practice of matching marketplace settlement data against your expected fee schedule, verifying that you have been charged correctly, and computing true net revenue by SKU and category.
This skill guides you through downloading settlement reports from each major marketplace, reconciling fees against expectations, and using dedicated tools to automate this process.
When to Use This Skill
- When selling on Amazon, eBay, Walmart, or Etsy and needing to understand true net revenue
- When suspecting FBA fulfillment fee overcharges due to incorrect product dimensions
- When reconciling marketplace payouts against your GL on a monthly basis
- When computing true contribution margin per SKU by channel including marketplace fees
- When evaluating whether to move products from FBA to FBM (fulfilled by merchant)
- When building a multi-channel profitability model with normalized fee data
Core Instructions
Step 1: Download settlement reports from each marketplace
Amazon (Seller Central): 1. Go to Seller Central → Reports → Payments → Transaction View 2. Click Download flat file (.txt) for each settlement period (bi-weekly) 3. Alternatively, access via the SP-API (Selling Partner API): use the /finances/v0/financialEventGroups endpoint for automated downloads 4. Key settlement fields: transaction type, fee type, amount, order ID, SKU
eBay: 1. Go to eBay Seller Hub → Payments → Payments report 2. Download as CSV (monthly or custom date range) 3. eBay Payments API is available for programmatic access
Walmart Marketplace: 1. Go to Walmart Seller Center → Payments → Transaction Report 2. Download monthly CSV 3. Walmart's Seller API provides programmatic access via the /payments/filepayments endpoint
Etsy: 1. Go to Etsy Shop Manager → Finances → Payment account 2. Download monthly statement CSV 3. Note: Etsy fees include listing fees, transaction fees (6.5%), payment processing fees, and offsite ads fees (if enrolled)
Step 2: Use a dedicated reconciliation tool (recommended)
Before building custom tooling, check if an existing tool handles your marketplace:
| Tool | Marketplaces Supported | Key Feature |
|---|---|---|
| A2X | Amazon, Shopify, eBay, Etsy, Walmart | Reconciles marketplace settlements to QuickBooks/Xero with GAAP journal entries; fee categorization built-in |
| Link My Books | Amazon, eBay, Etsy, Shopify | Automatically maps settlement data to accounting chart of accounts; fee overcharge alerts |
| Getida | Amazon FBA | Specializes in Amazon reimbursement auditing; works on contingency (takes % of recovered fees) |
| Seller Ledger | Amazon, eBay, Etsy, Walmart | Bookkeeping designed for marketplace sellers; fee reconciliation + tax tracking |
| InventoryLab | Amazon FBA | COGS tracking, fee analysis, and profit calculation per ASIN |
A2X setup (most comprehensive): 1. Connect A2X to your marketplace accounts (Amazon Seller Central, eBay, Etsy) 2. Connect A2X to QuickBooks Online or Xero 3. A2X automatically imports each settlement, categorizes fees (referral, fulfillment, storage, advertising, refund fees), and creates journal entries 4. Go to A2X → Settlements — view each settlement with fee breakdown; click any settlement to see the journal entry it will create 5. Review and post journal entries to your accounting system monthly
Step 3: Categorize and analyze marketplace fees
Amazon fee categories to track separately:
| Fee Type | Amazon Label | Typical Rate |
|---|---|---|
| Referral fee | Commission | 6–45% of selling price (varies by category) |
| FBA per-unit fulfillment | FBAPerUnitFulfillmentFee | $3–$8+ per unit (based on size/weight) |
| FBA storage fee | FBAStorageFee | $0.75–$2.40/cubic foot/month |
| Long-term storage fee | FBALongTermStorageFee | $6.90/cubic foot on inventory >365 days old |
| Return processing fee | RefundCommission | 20% of referral fee on returned items |
| Advertising (Sponsored Products) | Listed separately in Advertising reports | Varies by ACOS target |
Build a fee summary by SKU (using a spreadsheet or A2X):
For each SKU and period, calculate:
Gross Revenue
- Returns & Refunds
= Net Sales
- Referral Fees
- FBA Fulfillment Fees
- Storage Fees
- Long-term Storage Fees
- Advertising Fees
- Return Processing Fees
= Net Marketplace Proceeds
Total Fee Rate % = Total Fees / Net Sales × 100
Net Margin % = Net Proceeds / Net Sales × 100Typical Amazon total take rate by category:
- Apparel: 25–35% (high referral + FBA for bulky items)
- Electronics: 15–20%
- Health & Beauty: 20–30%
- Home & Kitchen: 18–28%
- Books: 15–20%
If your actual fee rate is 5%+ above these ranges, investigate for potential overcharges.
Step 4: Identify FBA fee overcharges
Amazon FBA fees are based on product dimensions and weight stored in their system. If Amazon has incorrect measurements for your product, you may be paying systematically higher fees on every unit shipped.
How to check for FBA measurement errors: 1. Go to Seller Central → Reports → Fulfillment → Fee Preview — download the fee preview report 2. Compare the dimensions Amazon has on file against your actual product measurements 3. Go to Seller Central → Inventory → Manage Inventory → [Product] → FBA product review to see the dimensions Amazon is using
How to dispute an FBA measurement: 1. Go to Seller Central → Help → Contact Us → FBA issue → FBA fee dispute 2. Submit a dispute with photos showing your product's actual dimensions 3. Amazon has up to 90 days to investigate; if the dispute is upheld, fees are corrected going forward 4. For historical overcharges: file a reimbursement request via Seller Central → Help → Contact Us → Reimbursements
Using Getida for systematic reimbursement recovery: 1. Sign up at getida.com — Getida works on a contingency fee basis (takes ~25% of recovered amounts) 2. Grant Getida SP-API access to your Seller Central account 3. Getida audits 18 months of historical FBA fees and claims reimbursements automatically 4. You receive the net recovery with no upfront cost
Step 5: Monitor long-term storage fees proactively
Amazon charges long-term storage fees on inventory held more than 365 days, assessed on February 15 and August 15 each year. These fees can be significant — $6.90 per cubic foot.
Proactive monitoring: 1. 60 days before the assessment date (December 15 and June 15), go to Seller Central → Reports → Fulfillment → Inventory Age 2. Download the report and filter for items with more than 270 days in FBA 3. For items approaching 365 days, evaluate:
- Price reduction: Run a sale or promotion to accelerate sell-through
- Removal order: Request Amazon to return inventory to you (removal fee applies but is lower than long-term storage fee for most items)
- Liquidation: Amazon's liquidation program sells inventory to resellers at ~5–10% of the listed price
Step 6: Build a multi-channel fee comparison
Once you have fee data from multiple marketplaces, compare net margin per SKU across channels:
Example comparison for one SKU at $39.99 selling price:
| Channel | Gross Revenue | Fees | Net Proceeds | Net Margin |
|---|---|---|---|---|
| Own Website (Shopify + Stripe) | $39.99 | $1.46 (Stripe: 2.9% + $0.30) + $5 shipping | $33.53 | 83.8% of revenue |
| Amazon FBA | $39.99 | $5.99 referral (15%) + $4.50 FBA + $0.82 storage | $28.68 | 71.7% of revenue |
| eBay | $39.99 | $5.20 final value (13%) + $0.30 payment + $5 shipping | $29.49 | 73.7% of revenue |
| Etsy | $39.99 | $2.60 transaction (6.5%) + $0.90 payment + $0.20 listing | $36.29 | 90.7% of revenue |
This comparison shows which channel generates the most net proceeds per unit sold.
Best Practices
- Reconcile every settlement, not just month-end — Amazon produces bi-weekly settlements; reconcile each one within 3 business days of receipt to catch discrepancies early
- Use A2X or Link My Books to automate journal entries — manual entry of marketplace settlements is error-prone; these tools save 4–8 hours per month and create accurate GAAP entries
- Track fee rates as a percentage of revenue — absolute fee amounts grow with revenue; tracking fee rate % lets you monitor fee efficiency independent of volume changes
- Submit FBA reimbursement claims systematically — claims must typically be submitted within 90–180 days; automate detection with Getida or SELLERBOARD to avoid leaving money unclaimed
- Separate advertising spend from transaction fees — marketing spend (Sponsored Products) is a strategic investment decision; transaction fees (referral, fulfillment) are unavoidable cost of sales; keep them in separate GL accounts
- Monitor net payout timing for cash flow — marketplace disbursements have holds and reserves; build the expected payout schedule into your cash flow model (see @cash-flow-forecasting)
Common Pitfalls
| Problem | Solution |
|---|---|
| Using marketplace payout amount as revenue | The amount deposited by Amazon is net of all fees; record gross sales as revenue and fees as cost of revenue separately |
| Missing FBA inventory reimbursements | Amazon loses or damages FBA inventory and is obligated to reimburse; reconcile expected inventory against FBA inventory reports monthly; use Getida or SELLERBOARD for systematic auditing |
| Not tracking fee changes in Amazon's annual fee schedule update | Amazon updates FBA fees annually (typically in January/February); update your expected fee model or reconciliation will show unexplained variances throughout the year |
| Currency conversion fees ignored for international marketplaces | If selling on Amazon UK/DE/JP, currency conversion fees reduce disbursements; track separately and include in international channel profitability analysis |
| Long-term storage fees as a surprise | Pull the FBA Inventory Age report 60 days before Feb 15 and Aug 15 assessment dates; take action before fees are assessed |
Related Skills
- @profit-margin-analysis
- @cost-allocation-analysis
- @cash-flow-forecasting
- @financial-reporting-dashboard
{
"context": "Tests whether the agent correctly parses Amazon flat-file settlement data using the prescribed format and column mappings, and applies the correct fee category mapping to produce a categorized fee summary per SKU.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Tab-separated parsing",
"max_score": 8,
"description": "The parsing code uses tab as the separator (sep='\\t') when reading the settlement file"
},
{
"name": "UTF-8 encoding",
"max_score": 8,
"description": "The parsing code specifies UTF-8 encoding when reading the file"
},
{
"name": "Thousands separator handling",
"max_score": 6,
"description": "The parsing code includes thousands=',' to handle comma-formatted numbers"
},
{
"name": "Marketplace column set",
"max_score": 6,
"description": "The normalized output includes a 'marketplace' column set to 'amazon'"
},
{
"name": "FBA fulfillment fee mapping",
"max_score": 8,
"description": "FBAPerUnitFulfillmentFee, FBAPerOrderFulfillmentFee, FBAWeightBasedFee, and/or 'FBA transaction fees' are mapped to the 'fulfillment' category"
},
{
"name": "Referral fee mapping",
"max_score": 8,
"description": "Commission, VariableClosingFee, and/or 'Selling fees' are mapped to the 'referral_fee' category"
},
{
"name": "Storage fee mapping",
"max_score": 8,
"description": "FBAStorageFee is mapped to 'storage' and FBALongTermStorageFee is mapped to 'storage_long_term'"
},
{
"name": "Advertising fee mapping",
"max_score": 8,
"description": "'Sponsored Products' and 'Sponsored Brands' are mapped to the 'advertising' category"
},
{
"name": "Advertising vs transaction separation",
"max_score": 10,
"description": "The output or analysis separates advertising fees (advertising category) from transaction fees (referral_fee, fulfillment categories) — they are not summed together without distinction"
},
{
"name": "Refund fee mapping",
"max_score": 6,
"description": "RefundCommission is mapped to 'refund_fee' category"
},
{
"name": "SKU-level fee summary",
"max_score": 10,
"description": "The output produces a per-SKU breakdown of fees by category (aggregated amounts per fee category per SKU)"
},
{
"name": "Fee category column present",
"max_score": 6,
"description": "The parsed/processed data includes a fee_category column (or equivalent) derived from the fee_type mapping"
},
{
"name": "Numeric amount coercion",
"max_score": 8,
"description": "The code converts the amount/fee column to numeric, handling non-numeric values gracefully (e.g., errors='coerce' or equivalent)"
}
]
}
Amazon Settlement Fee Analysis
Problem/Feature Description
Finley Home Goods sells kitchen products on Amazon and has just received their bi-weekly settlement file from Seller Central. The finance team wants to understand exactly how much they're paying in each type of fee per product SKU so they can identify which fees are hurting margins most. The settlement file contains a mix of order proceeds, FBA fulfillment charges, referral fees, storage fees, advertising spend, and refund-related fees — all in a single flat file.
The finance analyst has extracted the raw settlement data and needs a Python script that parses the file, classifies each transaction by fee type, and produces a clean per-SKU fee summary broken down by category. The analyst specifically wants advertising fees called out separately from the unavoidable transaction fees, since advertising is a discretionary spend they want to analyze on its own.
Output Specification
Write a Python script named parse_settlement.py that: 1. Reads the provided settlement file (settlement.tsv) 2. Parses and normalizes the data 3. Maps each transaction's fee type to a fee category 4. Produces a CSV output file named fee_summary_by_sku.csv with per-SKU fee totals broken out by category
The script should print a brief summary to stdout showing total fees collected per category across all SKUs.
Input Files
The following files are provided as inputs. Extract them before beginning.
=============== FILE: settlement.tsv =============== settlement-id settlement-start-date settlement-end-date transaction-type order-id merchant-order-id shipment-id marketplace-name amount-type amount-description amount quantity-purchased posted-date sku product-description 1234567890 2026-02-01 2026-02-14 Order 112-3456789-0000001 SHP001 Amazon.com ItemPrice Principal 29.99 1 2026-02-03 KIT-001 Bamboo Cutting Board 1234567890 2026-02-01 2026-02-14 Order 112-3456789-0000001 SHP001 Amazon.com ItemFees FBAPerUnitFulfillmentFee -3.22 1 2026-02-03 KIT-001 Bamboo Cutting Board 1234567890 2026-02-01 2026-02-14 Order 112-3456789-0000001 SHP001 Amazon.com ItemFees Commission -4.50 1 2026-02-03 KIT-001 Bamboo Cutting Board 1234567890 2026-02-01 2026-02-14 Order 112-3456789-0000002 SHP002 Amazon.com ItemPrice Principal 49.99 1 2026-02-04 KIT-002 Stainless Steel Pan Set 1234567890 2026-02-01 2026-02-14 Order 112-3456789-0000002 SHP002 Amazon.com ItemFees FBAPerUnitFulfillmentFee -5.80 1 2026-02-04 KIT-002 Stainless Steel Pan Set 1234567890 2026-02-01 2026-02-14 Order 112-3456789-0000002 SHP002 Amazon.com ItemFees Commission -7.50 1 2026-02-04 KIT-002 Stainless Steel Pan Set 1234567890 2026-02-01 2026-02-14 Order 112-3456789-0000003 SHP003 Amazon.com ItemPrice Principal 29.99 2 2026-02-05 KIT-001 Bamboo Cutting Board 1234567890 2026-02-01 2026-02-14 Order 112-3456789-0000003 SHP003 Amazon.com ItemFees FBAPerUnitFulfillmentFee -6.44 2 2026-02-05 KIT-001 Bamboo Cutting Board 1234567890 2026-02-01 2026-02-14 Order 112-3456789-0000003 SHP003 Amazon.com ItemFees Commission -9.00 2 2026-02-05 KIT-001 Bamboo Cutting Board 1234567890 2026-02-01 2026-02-14 Refund 112-3456789-0000002 SHP002 Amazon.com ItemFees RefundCommission 1.50 1 2026-02-07 KIT-002 Stainless Steel Pan Set 1234567890 2026-02-01 2026-02-14 other-transaction Amazon.com other-transaction FBAStorageFee -12.80 2026-02-14 KIT-001 Bamboo Cutting Board 1234567890 2026-02-01 2026-02-14 other-transaction Amazon.com other-transaction FBAStorageFee -8.40 2026-02-14 KIT-002 Stainless Steel Pan Set 1234567890 2026-02-01 2026-02-14 other-transaction Amazon.com other-transaction FBALongTermStorageFee -45.00 2026-02-14 KIT-001 Bamboo Cutting Board 1234567890 2026-02-01 2026-02-14 other-transaction Amazon.com Subscription Subscription -39.99 2026-02-14 1234567890 2026-02-01 2026-02-14 other-transaction Amazon.com Sponsored Products Sponsored Products -28.50 2026-02-14 KIT-001 Bamboo Cutting Board 1234567890 2026-02-01 2026-02-14 other-transaction Amazon.com Sponsored Brands Sponsored Brands -15.00 2026-02-14 KIT-002 Stainless Steel Pan Set 1234567890 2026-02-01 2026-02-14 other-transaction Amazon.com Lightning Deal fees Lightning Deal fees -5.00 2026-02-14 KIT-001 Bamboo Cutting Board 1234567890 2026-02-01 2026-02-14 other-transaction Amazon.com other-transaction other-transaction -2.10 2026-02-14 KIT-002 Stainless Steel Pan Set
{
"context": "Tests whether the agent correctly implements FBA overcharge detection using dimensional weight (LxWxH/139), size tier classification, $10 threshold, and generates prioritized optimization recommendations using the correct category/priority/threshold logic.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Dimensional weight formula",
"max_score": 8,
"description": "Dimensional weight is computed as (length * width * height) / 139"
},
{
"name": "Billable weight as max",
"max_score": 8,
"description": "Billable weight is taken as the maximum of actual weight (lbs) and dimensional weight — not just actual weight"
},
{
"name": "Small standard tier",
"max_score": 8,
"description": "small_standard size tier criteria: longest <= 15, median <= 12, shortest <= 0.75, weight_lbs <= 0.75"
},
{
"name": "Large standard tier",
"max_score": 8,
"description": "large_standard size tier criteria: longest <= 18, median <= 14, shortest <= 8, weight_lbs <= 20"
},
{
"name": "Overcharge threshold $10",
"max_score": 8,
"description": "Overcharges are only flagged when the variance (charged - expected) exceeds $10.00 per settlement period"
},
{
"name": "Submit reimbursement action",
"max_score": 8,
"description": "Flagged overcharge records include an action field or recommendation indicating reimbursement claim submission"
},
{
"name": "Long-term storage threshold",
"max_score": 8,
"description": "SKUs with long-term storage fees greater than $100 are flagged for inventory liquidation (high priority)"
},
{
"name": "FBM switch threshold",
"max_score": 8,
"description": "SKUs where FBA fee rate exceeds 20% of revenue are flagged for FBM switch evaluation"
},
{
"name": "Pricing review threshold",
"max_score": 8,
"description": "SKUs with net margin below 5% are flagged for pricing review (high priority)"
},
{
"name": "Priority ordering",
"max_score": 6,
"description": "Optimization recommendations are sorted with 'high' priority items listed before 'medium' items"
},
{
"name": "FBM priority logic",
"max_score": 6,
"description": "FBM switch recommendation is 'medium' priority when net_margin > 0, and 'high' priority when net_margin <= 0"
},
{
"name": "Overcharges output file",
"max_score": 8,
"description": "Results are written to a file (CSV or JSON) containing the flagged overcharges with sku, expected vs charged amounts, and variance"
},
{
"name": "Recommendations output file",
"max_score": 8,
"description": "Optimization recommendations are written to a file (CSV or JSON) listing each recommendation with sku, category, priority, and recommendation text"
}
]
}
FBA Fee Audit and Profitability Optimization
Problem/Feature Description
UrbanNest Home has been using Amazon FBA to fulfill their furniture accessory products for two years. Their operations manager has noticed that the fulfillment fees on their settlement reports seem higher than what the Amazon FBA fee calculator shows when she manually checks a few SKUs. She suspects that Amazon may have the wrong dimensions on file for some products — a common issue when products are measured by Amazon's receiving team rather than the manufacturer's spec sheet.
Additionally, the business development team wants to know which SKUs are candidates for operational changes: products eating up warehouse space in long-term storage, products where FBA costs are becoming a disproportionate share of their price, and products with razor-thin margins that may need to be repriced or discontinued. The team wants an automated script that takes their product dimension data and a settlement summary, identifies any potential overcharges, and generates a prioritized list of operational recommendations.
Output Specification
Write a Python script named fba_audit.py that: 1. Reads the product dimensions from product_dimensions.csv 2. Reads the FBA fee charges summary from fba_charges.csv 3. Reads the SKU financial summary from sku_financials.csv 4. Computes expected FBA fees using Amazon's size tier and dimensional weight logic 5. Identifies overcharges and writes them to fba_overcharges.csv 6. Generates optimization recommendations and writes them to recommendations.csv 7. Prints a brief summary to stdout
Input Files
The following files are provided as inputs. Extract them before beginning.
=============== FILE: product_dimensions.csv =============== sku,length,width,height,weight_oz SOFA-PAD-S,14.0,10.0,0.5,11.0 SOFA-PAD-L,17.5,13.5,1.2,18.0 CURTAIN-SET,22.0,8.0,4.0,24.0 LAMP-SHADE,16.0,16.0,12.0,38.0 DOOR-MAT,28.0,18.0,2.0,48.0
=============== FILE: fba_charges.csv =============== sku,units_shipped,total_fba_fee_charged SOFA-PAD-S,120,530.40 SOFA-PAD-L,85,892.50 CURTAIN-SET,60,480.00 LAMP-SHADE,40,520.00 DOOR-MAT,30,390.00
=============== FILE: fba_rate_table.json =============== { "small_standard": { "0.25": 3.06, "0.5": 3.15, "0.75": 3.28, "1.0": 3.48, "2.0": 4.05 }, "large_standard": { "1.0": 4.75, "2.0": 5.40, "3.0": 6.10, "4.0": 6.75, "5.0": 7.45, "10.0": 9.20, "20.0": 12.50 }, "large_bulky": { "30.0": 15.00, "50.0": 20.00, "70.0": 26.00 } }
=============== FILE: sku_financials.csv =============== sku,gross_revenue,fulfillment_fees,long_term_storage_fees,advertising_fees,refund_fees,net_margin_pct SOFA-PAD-S,1800.00,530.40,0,120.00,0,18.5 SOFA-PAD-L,4675.00,892.50,145.00,200.00,0,3.2 CURTAIN-SET,2400.00,480.00,0,80.00,25.00,21.3 LAMP-SHADE,3200.00,520.00,210.00,150.00,0,-2.1 DOOR-MAT,1200.00,390.00,0,60.00,0,8.7
{
"context": "Tests whether the agent computes net marketplace proceeds using the correct formula (subtracting all fee components from net sales), tracks fee rates as percentages of revenue rather than absolute amounts, and correctly treats gross sales as revenue (not the net payout amount).",
"type": "weighted_checklist",
"checklist": [
{
"name": "Net sales calculation",
"max_score": 8,
"description": "net_sales is computed as gross_revenue minus refunds (not using net payout as a proxy for gross sales)"
},
{
"name": "Gross sales as revenue",
"max_score": 10,
"description": "Gross selling price / gross_revenue is used as the revenue figure, NOT the net payout deposited (i.e., the script does not treat the net amount already deducted of fees as revenue)"
},
{
"name": "Net proceeds formula",
"max_score": 10,
"description": "net_marketplace_proceeds = net_sales - (referral_fees + fulfillment_fees + storage_fees + long_term_storage_fees + advertising_fees + refund_fees)"
},
{
"name": "All fee components subtracted",
"max_score": 8,
"description": "The net proceeds calculation subtracts ALL of: referral_fees, fulfillment_fees, storage_fees, long_term_storage_fees, advertising_fees, and refund_fees"
},
{
"name": "Total fee rate percentage",
"max_score": 8,
"description": "total_fee_rate_pct is computed as a percentage: (sum of fees / net_sales) * 100, rounded to 1 decimal place"
},
{
"name": "Net margin percentage",
"max_score": 8,
"description": "net_margin_pct is computed as (net_marketplace_proceeds / net_sales) * 100, rounded to 1 decimal place"
},
{
"name": "Division by zero guard",
"max_score": 6,
"description": "The percentage calculations guard against division by zero (e.g., using NULLIF, conditional check, or equivalent)"
},
{
"name": "Per-SKU breakdown",
"max_score": 8,
"description": "Output is broken down per SKU (and optionally per marketplace), not just as a single aggregate total"
},
{
"name": "Fee rate vs absolute",
"max_score": 8,
"description": "Output includes fee rate percentages (not just absolute fee amounts) — at minimum total_fee_rate_pct or equivalent percentage columns are present"
},
{
"name": "Separate fee categories in output",
"max_score": 8,
"description": "Output shows referral_fees, fulfillment_fees, storage_fees, and advertising_fees as separate columns rather than a single 'total_fees' lump sum"
},
{
"name": "Period grouping",
"max_score": 6,
"description": "Results are grouped by time period (month or settlement period) in addition to SKU"
},
{
"name": "Output file produced",
"max_score": 6,
"description": "A CSV or structured output file containing the net revenue analysis is written to disk"
},
{
"name": "FBA rate tracked separately",
"max_score": 6,
"description": "FBA fulfillment fee rate as a percentage of revenue is computed separately from referral fee rate (not merged into a single fee bucket)"
}
]
}
Marketplace Profitability Dashboard
Problem/Feature Description
NovaCraft Supplies is a mid-size seller on Amazon and eBay. Their CFO has been frustrated that the accounting system only shows the net bank deposits from each marketplace, making it impossible to understand true product-level profitability. The CFO suspects that some SKUs look profitable on paper because the team has been treating the settlement payout as if it were gross revenue — masking the real impact of fulfillment costs, referral fees, and storage charges.
The CFO wants a proper profitability analysis that starts from gross selling prices and decomposes every fee component to arrive at true net proceeds per SKU per period. She also wants percentage-based fee metrics so that fee efficiency can be compared across SKUs regardless of volume, and wants the team to start tracking how much each fee type eats into revenue as a rate, not just in dollars.
Output Specification
Write a Python script named net_revenue_analysis.py that: 1. Reads the provided normalized transaction data from transactions.csv 2. Computes net revenue per SKU per month with a full fee breakdown 3. Writes results to net_revenue_by_sku.csv
The output CSV should include columns showing gross revenue, each fee category as a separate column, net marketplace proceeds, and fee rates as percentages of net sales. The script should also print a summary table to stdout.
Input Files
The following files are provided as inputs. Extract them before beginning.
=============== FILE: transactions.csv =============== marketplace,transaction_date,transaction_type,fee_category,sku,selling_price,marketplace_fee,net_proceeds amazon,2026-01-05,order,none,KIT-001,29.99,0,29.99 amazon,2026-01-05,order,fulfillment,KIT-001,0,-3.22,-3.22 amazon,2026-01-05,order,referral_fee,KIT-001,0,-4.50,-4.50 amazon,2026-01-08,order,none,KIT-001,29.99,0,29.99 amazon,2026-01-08,order,fulfillment,KIT-001,0,-3.22,-3.22 amazon,2026-01-08,order,referral_fee,KIT-001,0,-4.50,-4.50 amazon,2026-01-12,order,none,KIT-002,49.99,0,49.99 amazon,2026-01-12,order,fulfillment,KIT-002,0,-5.80,-5.80 amazon,2026-01-12,order,referral_fee,KIT-002,0,-7.50,-7.50 amazon,2026-01-15,refund,none,KIT-002,-49.99,0,-49.99 amazon,2026-01-15,refund,refund_fee,KIT-002,0,1.50,1.50 amazon,2026-01-31,fee,storage,KIT-001,0,-12.80,-12.80 amazon,2026-01-31,fee,storage_long_term,KIT-001,0,-45.00,-45.00 amazon,2026-01-31,fee,storage,KIT-002,0,-8.40,-8.40 amazon,2026-01-31,fee,advertising,KIT-001,0,-28.50,-28.50 amazon,2026-01-31,fee,advertising,KIT-002,0,-15.00,-15.00 amazon,2026-02-03,order,none,KIT-001,29.99,0,29.99 amazon,2026-02-03,order,fulfillment,KIT-001,0,-3.22,-3.22 amazon,2026-02-03,order,referral_fee,KIT-001,0,-4.50,-4.50 amazon,2026-02-07,order,none,KIT-002,49.99,0,49.99 amazon,2026-02-07,order,fulfillment,KIT-002,0,-5.80,-5.80 amazon,2026-02-07,order,referral_fee,KIT-002,0,-7.50,-7.50 amazon,2026-02-10,order,none,KIT-002,49.99,0,49.99 amazon,2026-02-10,order,fulfillment,KIT-002,0,-5.80,-5.80 amazon,2026-02-10,order,referral_fee,KIT-002,0,-7.50,-7.50 amazon,2026-02-28,fee,storage,KIT-001,0,-12.80,-12.80 amazon,2026-02-28,fee,storage,KIT-002,0,-8.40,-8.40 amazon,2026-02-28,fee,advertising,KIT-001,0,-22.00,-22.00 ebay,2026-01-06,order,none,KIT-001,32.00,0,32.00 ebay,2026-01-06,order,referral_fee,KIT-001,0,-4.16,-4.16 ebay,2026-01-20,order,none,KIT-002,52.00,0,52.00 ebay,2026-01-20,order,referral_fee,KIT-002,0,-6.76,-6.76 ebay,2026-01-20,order,fulfillment,KIT-002,0,-2.50,-2.50
{
"name": "finsi/marketplace-fee-reconciliation",
"version": "0.1.0",
"summary": "Reconcile and analyze seller fees from Amazon, eBay, Walmart, and Etsy with net revenue calculation, fee categorization, and optimization recommendations",
"skills": {
"marketplace-fee-reconciliation": {
"path": "SKILL.md"
}
}
}