{"id":388790,"date":"2026-10-23T10:58:51","date_gmt":"2026-10-23T10:58:51","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/daily-picks-fee-report-for-woocommerce\/"},"modified":"2026-10-23T10:58:16","modified_gmt":"2026-10-23T10:58:16","slug":"daily-picks-fee-report","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/daily-picks-fee-report\/","author":23579281,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.1","stable_tag":"1.0.1","tested":"7.1.4","requires":"6.5","requires_php":"7.4","requires_plugins":null,"header_name":"Daily Picks Fee Report for WooCommerce","header_author":"Daily Picks","header_description":"Monthly report of the fees Stripe and PayPal actually charged and the net you actually kept, read from the amounts the payment plugins saved. Read-only: orders are never modified.","assets_banners_color":"a4a7ac","last_updated":"2026-10-23 10:58:16","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/daily-picks.life\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":77,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.1":{"tag":"1.0.1","author":"dailypicks","date":"2026-10-23 10:58:16","revision":3761466}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3761476,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3761476,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3761476,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3761476,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.1"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"The monthly report with totals, separate currency rows and the orders left out of the totals.","2":"Fee and Net columns in the order list."}},"plugin_section":[],"plugin_tags":[288068,288067,3654,288066,286],"plugin_category":[45],"plugin_contributors":[286750],"plugin_business_model":[],"class_list":["post-388790","plugin","type-plugin","status-publish","hentry","plugin_tags-net-revenue","plugin_tags-paypal-fees","plugin_tags-reports","plugin_tags-stripe-fees","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-dailypicks","plugin_committers-dailypicks"],"banners":{"banner":"https:\/\/ps.w.org\/daily-picks-fee-report\/assets\/banner-772x250.png?rev=3761476","banner_2x":"https:\/\/ps.w.org\/daily-picks-fee-report\/assets\/banner-1544x500.png?rev=3761476","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/daily-picks-fee-report\/assets\/icon-128x128.png?rev=3761476","icon_2x":"https:\/\/ps.w.org\/daily-picks-fee-report\/assets\/icon-256x256.png?rev=3761476","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>WooCommerce shows what customers paid. It does not show what Stripe and PayPal kept. This plugin does \u2014 using the exact amounts the official payment plugins saved on each order, not an estimate.<\/p>\n\n<p><strong>What you get<\/strong><\/p>\n\n<ul>\n<li>A monthly report of sales, refunds, fees, net received, order count and fee rate, for Stripe and PayPal separately.<\/li>\n<li>Currencies kept apart. Stripe settles in your balance currency, which can differ from the order currency; each combination gets its own row. Nothing is converted.<\/li>\n<li>Net after refunds, done right. Stripe adds each refund to the order's running totals while PayPal re-sums all refunds every time; both are handled so a refund is never subtracted twice.<\/li>\n<li>PayPal refunds use PayPal's own numbers: net is the captured net minus the refunded net. The PayPal fee on refunds is shown on its own line for reference and is not used in any total.<\/li>\n<li>Orders that cannot be trusted are shown, not hidden. Orders whose fee has not been saved yet (unsettled payments, delayed payment methods, older orders) are listed instead of being counted as zero. Orders whose saved numbers do not add up \u2014 for example a Stripe charge whose fee was saved twice \u2014 are listed with the reason and kept out of the totals.<\/li>\n<li>Fee and Net columns in the WooCommerce order list.<\/li>\n<li>Monthly and per-order CSV files that open cleanly in Excel.<\/li>\n<li>Works with High-Performance Order Storage (HPOS) and with the classic posts storage.<\/li>\n<\/ul>\n\n<p><strong>Read-only by design<\/strong><\/p>\n\n<p>The plugin only reads what the payment plugins already saved. It never calls Stripe or PayPal, never asks for API keys, and never writes to your orders. (The Stripe plugin's own helper silently rewrites old meta keys when it reads them; this plugin reads the values directly so that nothing changes.)<\/p>\n\n<p><strong>Supported payment plugins<\/strong><\/p>\n\n<ul>\n<li>WooCommerce Stripe Payment Gateway (all Stripe payment methods)<\/li>\n<li>WooCommerce PayPal Payments<\/li>\n<\/ul>\n\n<p>Square, Mollie and WooPayments are not included. WooPayments has its own fee report.<\/p>\n\n<p><strong>Add-on<\/strong><\/p>\n\n<p>A paid add-on reconciles Stripe payouts: for each payout it lists the orders, refunds, fees and adjustments it contains and shows any difference from WooCommerce. It also exports accounting CSVs for Xero and QuickBooks. <a href=\"https:\/\/dailypicksjp.gumroad.com\/l\/fee-report-addon\">About the add-on<\/a><\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the plugin. WooCommerce must be active.<\/li>\n<li>Open WooCommerce \u2192 Fee Report.<\/li>\n<\/ol>\n\n<p>There is nothing to set up.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"where%20do%20the%20numbers%20come%20from%3F\"><h3>Where do the numbers come from?<\/h3><\/dt>\n<dd><p>From the order meta written by the official plugins: <code>_stripe_fee<\/code>, <code>_stripe_net<\/code> and <code>_stripe_currency<\/code> for Stripe, and <code>_ppcp_paypal_fees<\/code> and <code>_ppcp_paypal_refund_fees<\/code> for PayPal Payments.<\/p><\/dd>\n<dt id=\"why%20is%20an%20order%20listed%20as%20%22no%20fee%20data%22%3F\"><h3>Why is an order listed as \"No fee data\"?<\/h3><\/dt>\n<dd><p>The payment plugin has not saved a fee for it yet. This is normal for payments that settle later (some bank-based methods), for subscription renewals before the charge succeeds, and for orders older than the payment plugin's fee feature. These orders are not counted as zero.<\/p><\/dd>\n<dt id=\"why%20is%20an%20order%20listed%20as%20%22does%20not%20add%20up%22%3F\"><h3>Why is an order listed as \"Does not add up\"?<\/h3><\/dt>\n<dd><p>When the fee is saved in the order currency, the plugin checks that the saved fee plus the saved net equals the order total minus refunds (PayPal: that PayPal's captured and refunded amounts match the order). If they don't, the order is listed with the reason so you can look at it, and its numbers are left out of the totals.<\/p><\/dd>\n<dt id=\"which%20month%20does%20a%20refund%20belong%20to%3F\"><h3>Which month does a refund belong to?<\/h3><\/dt>\n<dd><p>The month of the original order. The payment plugins store fee and net per order, so a later refund updates that order.<\/p><\/dd>\n<dt id=\"which%20orders%20are%20included%3F\"><h3>Which orders are included?<\/h3><\/dt>\n<dd><p>Orders with the status Processing, Completed or Refunded, by paid date in your site's time zone. Developers can change the statuses with the <code>dpfr_report_statuses<\/code> filter.<\/p><\/dd>\n<dt id=\"does%20it%20slow%20down%20my%20store%3F\"><h3>Does it slow down my store?<\/h3><\/dt>\n<dd><p>No. It only runs when you open the report or the order list in the admin. Reports are calculated with a few database queries and cached for 10 minutes; use \"Recalculate\" to refresh. In testing, 12,000 orders took about two seconds to calculate.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>CSV downloads: any text cell starting with = + - @ is now written as text, so a spreadsheet cannot run it as a formula.<\/li>\n<li>Removed the bundled translation files; translations come from translate.wordpress.org.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release.<\/li>\n<\/ul>","raw_excerpt":"The real Stripe and PayPal fees, and your real net revenue, month by month. Read-only: your orders are never modified.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/388790","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=388790"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/dailypicks"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=388790"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=388790"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=388790"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=388790"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=388790"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=388790"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}