Easy Digital Downloads – Sell Digital Files & Subscriptions (eCommerce Store + Payments Made Easy)

Description

eCommerce without limits

We believe that your passion for creating shouldn’t be limited by your choice of ecommerce software. Easy Digital Downloads gives you unlimited products with no hidden listing fees, unlimited transactions, and provides unlimited possibilities.

Too often, you must choose between powerful and cheap. Not with Easy Digital Downloads. It’s free and easy to start with limitless possibilities, which is why some of the most popular digital ecommerce businesses trust Easy Digital Downloads with their store.

Within minutes of starting the Setup Wizard, you’ll have access to all the features you need to start selling your digital products today, including an integrated shopping cart, flexible payments (like credit cards, PayPal, Apple Pay, and Google Pay), a clean and optimized checkout, customer management, detailed ecommerce reports, secure file storage, discount codes, and more.

Easy Digital Downloads Pro
This plugin is the lite version of the Easy Digital Downloads Pro plugin that comes with all the ecommerce features you will ever need, including subscriptions, custom payment forms, email marketing tools, additional payment processors, and more. Purchase the best premium WordPress ecommerce solution now!

Effortless payments with a checkout form

With 1-Click connections to the most popular payment processors, you’ll be selling within minutes, allowing your customers to checkout with ease with the ability to choose from the most popular payment methods in their region of the world. With Stripe and PayPal, your ecommerce store is ready for global payments.

What can I say? Stripe is my go-to payment processor, and without [EDD] I don’t know what I would do. Connect EDD to your Stripe account in seconds, and you’re done!
Matt Whiteley – Whiteley Designs

Easy Digital Downloads is a verified member of the Stripe partner program, so you can process payments with confidence, knowing that EDD meets their strict quality standards.

When you use the included payment processor integrations, you get immediate access to the following:

  • Credit Card Payments
  • Apple Pay
  • Google Pay
  • PayPal
  • PayPal Credit
  • CashApp
  • Link by Stripe
  • Venmo
  • Sofort
  • and more!

With our included integrations, new payment methods are added when they become available, usually without any updates or changes!

Make decisions with powerful reporting

Unlock the full potential of your digital store with Easy Digital Downloads — the best WordPress ecommerce solution renowned for its powerful reporting features. Dive deep into the heart of your digital business with tools designed not just to give you insights into what is happening in your business now, but also to help you make decisions that will help you grow your business.

With the included date comparison tools, you can compare your sales, revenue, customers, and other data from one period to another, giving you the insights to make informed decisions and accelerate your growth. Some of the data points you get access to include:
* Customer growth
* Revenue and Sales
* Filtering by product
* Detailed category and tag reports
* Revenue and Sales by Country
* Revenue and Sales by Payment Method
* and more!

Full Easy Digital Downloads Feature List

  • Responsive Checkout Form – With the included Checkout Block, you get a responsive and customizable checkout form that is sure to convert.
  • Digital Product Management – Create as many digital products as you want, with no added costs. Create single products, product variations, and product bundles.
  • Discount Codes – Run sales and promotions with the built-in discount code management. Set start and expiration dates, product limitations, price limitations, and reward your best customers with custom discount codes.
  • eCommerce Reports – Easy Digital Downloads provides the best reporting available in WordPress ecommerce with the included reporting features. You’ll get access to valuable insights into the growth of your ecommerce business.
  • 1-Click Payment Setup – Go from Install to Selling in a matter of minutes with our official integrations with Stripe and PayPal.
  • Flexible Payment Methods – With the included integrations for Stripe and PayPal, it’s even easier for you to collect payments and sell access to your digital products.
  • File Downloads Protection – Your downloadable products are safe with Easy Digital Downloads. When a user purchases your product, we generate a secure and unique link that allows only your customers to download your files from your ecommerce site.
  • Email Receipts – The included email receipts are fully customizable to ensure that your brand is represented in your receipts.
  • Customer Management – Track your customer lifetime value and purchase history with the included Customer Management system. Quickly access a customer’s entire purchase history, add notes, and link to WordPress users.
  • Refund and Dispute Handling – With our accounting friendly store management system, refunds and disputes ensure that your records are accurate and customers only have access to files when they should.
  • Customer Profile Editor – Give your users to their purchase history and profile management with the included blocks.

Extensible, adaptable, and open source — Easy Digital Downloads is created with designers and developers in mind. With our extensive list of integrations as well as the included hooks and filters, the possibilities are endless.

We’ve made it even easier, with 1-Click installation of code snippets via WPCode.

EDD gives me a solid platform out of the box, with the flexibility of being able to customize anything I want or need to. The best of both worlds!
Brian Hogg – SellingPlugins.com

Grow revenue by going Pro

With our Pro plans you can get access to additional features and super-charge your ecommerce business. Some of our most popular features in Pro are:

  • Subscriptions – Build a sustainable ecommerce business and add recurring revenue to your store by selling subscriptions.
  • Reviews – What better way promote your digital products than by having your happy customers do it for you! Schedule automatic review requests, show average ratings and rating breakdowns.
  • Content Restriction – Restrict content on your site and only share it with customers who have purchased specific products. Content Restriction is great for membership sites and customer-only information.
  • Software Licenses – Sell activatable license keys for software products, including WordPress Themes/Plugins, desktop software, SaaS solutions, and more.
  • Frontend Submissions – Build a full-featured vendor marketplace and grow a community of creators.
  • Commissions – Pay your vendors with percentage or flat rate commissions when their products are purchased.
  • Free Downloads – Use free products as lead magnets to grow your email list.
  • Recommended Products – Add automatically generated recommendations to your products and checkout experience.

…We’ve got over 70+ premium features and integrations!
These are just a few of the features available to help you optimize your digital store and sell more digital products. View our full list of premium ecommerce features.

Get help

Easy Digital Downloads is backed by world-class technical support from our globally distributed full-time support team. We also have an extensive documentation site available. If you’re looking for faster support via email, we encourage you to purchase an Easy Digital Downloads pass.

Looking to change e-Commerce solutions?

Easy Digital Downloads is the perfect digital e-Commerce alternative to Etsy, Gumroad, WooCommerce, Shopfiy, BigCommerce, or Wix.

You can use Easy Digital Downloads to sell your digital products with less fees than Gumroad or Etsy, and create unlimited products, and never pay a listing fee.

If Easy Digital Downloads doesn’t quite fit your needs, we suggest you try WP Simple Pay, the #1 Stripe Payments Plugin for WordPress.

Notes

A Message from our President

Since 2012, I’ve been helping build Easy Digital Downloads and making it the best eCommerce solution for digital creators. Now, as the President of the company, my commitment continues to be making Easy Digital Downloads the most effortless way to manage your ecommerce store, handle billing, protect your files, integrate with payment processors, and sell your digital products.

I’m proud of what we’ve built and our world-class customer support team that is here to help you succeed. I hope you enjoy using Easy Digital Downloads.

Thank You,
Chris Klosowski

Branding guideline

Easy Digital Downloads is a product by Sandhills Development, LLC. When writing about the digital eCommerce plugin by Easy Digital Downloads, please make sure to always reference us by full name before you use our short name of EDD.

Easy Digital Downloads (correct)
EDD (correct)
easy digital downloads (incorrect)
Edd (incorrect, this is our mascot’s name!)
edd (incorrect)

From our blog

Check out some of our popular posts for actionable advice for running your business and selling digital files on the web.

Subscribe to our newsletter to get posts like these in your inbox as soon as they’re published.

Screenshots

  • Detailed and actionable reports
  • Customer Management
  • Order History
  • Order Details
  • Product Grid - Vendd
  • Checkout - Vendd
  • Product Grid - Default Theme
  • Checkout - Default Theme

Blocks

This plugin provides 11 blocks.

  • EDD Cart Display a mini or full shopping cart outside of checkout for Easy Digital Downloads.
  • EDD Download Terms Show categories, or tags for Easy Digital Download products.
  • EDD Order History Display the Easy Digital Downloads order history of a logged in user.
  • EDD User Downloads Allows a user to access the Easy Digital Downloads products they have purchased.
  • EDD Receipt Show customers their detailed receipt. Supports guest orders.
  • EDD Registration Form Registration form for Easy Digital Downloads.
  • EDD Products A block to show your Easy Digital Download products based on visual customizations and query parameters.
  • EDD Login Form Login form for Easy Digital Downloads.
  • EDD Checkout Full checkout block for Easy Digital Downloads.
  • EDD Buy Button Quickly add a "buy now" button for any EDD product.
  • EDD Confirmation A brief confirmation screen to show to customers immediately after a successful purchase.

Installation

  1. Activate the plugin
  2. Complete the Onboarding Wizard
  3. Start selling your first product!
  4. For more detailed setup instructions, visit the official Documentation page.

FAQ

Where can I find complete documentation?

Full searchable docs for Easy Digital Downloads and all our extensions can be found at https://easydigitaldownloads.com/docs

Where can I ask for help with my digital e-Commerce store?

You can submit a support ticket via the support forum at anytime.

Which file types can I sell?

Any file type can be sold using Easy Digital Downloads. You can sell .PDF, .DOC, .MP3, .MOV, .EPUB, .PSD, .MP4, .JPG, or any other extension which exists. On the product creation form, there is a file upload field which will accept any file type. Whatever file is uploaded to that field is the file customers will receive instantly when they complete a purchase.

How can I increase conversions?

Due to its popularity, many ecommerce tools have built direct integrations with Easy Digital Downloads, such as OptinMonster. With the direct EDD integration, you can optimize your sales funnel using OptinMonster’s display rules based on the customer’s EDD cart contents and conditions.

Is an SSL certificate required to sell digital products?

The security of you and your customers’ data is very important, so we strongly recommend you have an SSL certificate for your store. Documentation here

What themes work with Easy Digital Downloads?

While nearly any theme will work with Easy Digital Downloads, we’ve worked with industry-leading theme developers to curate a list of themes that are specifically written for Easy Digital Downloads.

Is there a sample import file I can use to setup a demo store?

Yes! Simply go to Tools > Import and install the WordPress Importer, then you can use the XML file located at wp-content/plugins/easy-digital-downloads/assets/ and select the sample-products-import.xml file. This will create several sample products and plugin pages for you.

Can I import all the products from my existing store into EDD?

Yes! We do have a basic import solution that imports a CSV file, so if you can get your data into the appropriate format then we can import it.

How do I migrate from Gumroad?

Check out our guide on migrating to Easy Digital Downloads from Gumroad.

How do I show the user’s purchase history?

You can display your customer’s purchase history with the EDD Order History Block or if you prefer, you can show users a list of their available downloads with the EDD User Downloads block. Check out our documentation for more information about Easy Digital Download’s Blocks.

How do I display my digital products?

Easy Digital Downloads comes with a customizable WordPress Block, giving you the ability to display your products your way.

Can I set up an affiliate program?

Yes! EDD integrates directly with several affiliate platforms that provide complete affiliate systems you can use to award commissions to your affiliate marketers. This means when affiliates refer customers to you, and those customers buy your products, those affiliates earn a commission from you.

Check out AffiliateWP

Can I give my customers downloadable PDF Invoices?

Yes, with a Personal Pass, you can provide beautiful and downloadable invoices to your customers with the Invoices extension.

Is selling subscriptions supported?

Yes, with an Extended Pass you get access to Recurring Payments. Full documentation here. The Recurring Payments extension allows you to create subscriptions so that customers continue paying you over time. This is great for selling memberships, courses, all access passes, software licenses, and other products which require an ongoing payment.

Reviews

19 มีนาคม 2024
EDDの拡張プラグインを使用した際に上手くいかずサポートに協力してもらいました。非常にレアなケースだったが丁寧に対応してくれ、今後のアップデートで当該箇所の改善を約束してくれました。
15 มีนาคม 2024
I have been using this plugin for a few years, and it hasn't let me down. Support is fantastic as well, when you need it.
7 กุมภาพันธ์ 2024
I recently pulled the trigger and purchased EDD/Pro. Install was easy, however, I did run into a couple of little snags. I emailed EDD support each and every time they responded within an hour, with a solution. My most recent request was a form layout issue. Again they responded quickly and offered to log in to my server and resolve it. They didn't have to, it was a design issue, but they took the extra steps and helped me. Support is just as important as the product itself. The EDD team has been available to me every step of the way in launching my new site. Thank you EDD team!!
28 ธันวาคม 2023
Our configuration of EDD was painless and we only had one small issue that was resolved quickly by Mihai. (It was an issue with a host's preferred caching plugin, not EDD.) Compared to Woo, it is so much easier and better!
19 ธันวาคม 2023
I had a problem with the translation and Mihai Joldis from support was very patient and perseverant until he helped me fix the problem. I surely recommend the EDD plugin.
Read all 522 reviews

Contributors & Developers

“Easy Digital Downloads – Sell Digital Files & Subscriptions (eCommerce Store + Payments Made Easy)” is open source software. The following people have contributed to this plugin.

Contributors

“Easy Digital Downloads – Sell Digital Files & Subscriptions (eCommerce Store + Payments Made Easy)” has been translated into 19 locales. Thank you to the translators for their contributions.

Translate “Easy Digital Downloads – Sell Digital Files & Subscriptions (eCommerce Store + Payments Made Easy)” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

3.2.10

  • Downloads: Improved performance when creating and managing download directories.
  • Discounts: Start and End dates are properly handling the timezone.
  • Discounts: Improved the accuracy of the check for if a store has active discounts.
  • Discounts: A background upgrade process will be run to ensure all discounts have valid start and end dates.
  • Dev: Debug log is now being managed within EDD’s upload directory.
  • Payments: Improved the detection and handling of purchase sessions when displaying the Receipt and Confirmation pages.
  • Performance: Optimized the amount of data stored in the options table related to changelogs.
  • HTML: The Product Dropdown could be forced to include items that were not products.
  • HTML: The Product Dropdown has had its placeholder value improved.
  • HTML: The Product Dropdown could have an unexpected empty option in the list of options.
  • HTML: The Textarea HTML field could add empty content to the value.
  • Checkout: The Privacy Policy checkbox may not always show when expected.
  • Blocks: Improved loading of Easy Digital Download blocks.
  • Blocks: Improved the handling of Easy Digital Download blocks when using a classic theme.
  • Orders: Manually creating orders in the admin could fail to save the order due to a capability check.
  • Migration: Improved the reliability of the EDD 3.0+ migration routine for possibly corrupt serialized data.
  • Migration: Improved PHP 8.0+ compatibility for the EDD 3.0+ migration routine.

View the full changelog at https://easydigitaldownloads.com/changelogs/plugin/easy-digital-downloads/

3.2.9

  • Stripe: Resending the purchase receipt could fail if including the Stripe statement descriptor in the email template.
  • Settings: Improve the reliability of determining the timezone settings in WordPress.
  • Reports: When using custom dates for reporting, some timezone settings could make the dates show incorrectly.
  • Emails: Adjusted when the deprecation notices will be shown for the legacy email hooks.

3.2.8

  • Stripe: Resolved an issue that could cause card payments to fail when providing a Bank statement description with the statement_descriptor parameter.
  • Stripe: IMPORTANT! The Statement Description settings in the Stripe gateway settings are no longer editable. The description is now automatically pulled from the Stripe account settings.
  • Stripe: Buy Now buttons could throw a PHP deprecation notice.
  • API: Added an option to enable logging public API queries (API Requests without a key & token) for the EDD API.
  • Downloads: Improved the reliability of the download file access checks.
  • Downloads: Searching downloads via the dropdown could return incorrect results.
  • PayPal: Improved the reliability of the PayPal Merchant Account Connection process.
  • Taxes: Improved the reliability of the tax calculations for orders with multiple items.
  • Checkout: The Legend for checkout form elements could display incorrectly in Safari.
  • HTML: Introduced a new Toggle Checkbox Class.
  • Reports: A fatal error could occur if you supplied an invalid Download ID to the reports URL.
  • System: Prevent a fatal error and improve the gathering of site system information.
  • Compatibility: Improved checkout compatibility with Wordfence.

3.2.7

  • Admin: Improved validation of saving some settings.
  • API: Improved API Key management for admins, including showing the last time a key was used.
  • Customers: Prevent updating a customer to have no email address.
  • Downloads: Improved the consistency of the results of setting and getting a price option name.
  • Downloads: Searching the downloads dropdown was not working correctly for international characters.
  • Downloads: Improved download access validation.
  • Fees: Improved the reliability of the fees and tax calculations.
  • Orders: The Order Status Badge API now includes the order as a parameter on filters.
  • Reports: Download Taxonomy reports have been improved for large data sets.
  • Reports: Some timezones and date calculations were getting incorrect date ranges.
  • Stripe: Improved mixed cart messaging.

3.2.6

  • Checkout: Improved checkout block field handling for guest customers.
  • Checkout: Login fields on checkout were incorrectly trying to process the checkout when hitting the ‘Enter’ key.
  • Admin: Better compatibility when loading EDD footer and documentation links for non-store admin pages.
  • Admin: Custom EDD admin pages could throw an error if incorrectly filtered.
  • Downloads: Improved handling of detecting download variable prices.
  • Downloads: Custom product dropdown could incorrectly exclude the download being edited.
  • Reports: The store dashboard widget revenue and sales stats sometimes parsed dates with an incorrect offset.
  • Reports: Pie charts for revenue currency values were not correctly applying the currency symbol.
  • Reports: Improve Export Product Sales accuracy.
  • Compatibility: Further improve PHP 8.0+ support.
  • Shortcodes: Some shortcode attributes were hardened before being output.
  • Orders: Better handling of refunding orders.
  • Stripe: Better error messages when some cart contents are not compatible with the Stripe gateway.
  • Discounts: Ensure store discounts recorded for orders are unique.

3.2.5

  • Compatibility: Improved compatibility with servers not configured with mbstring.
  • PayPal: Improved detection of PayPal order session handling and processing.

3.2.4

  • Compatibility: Adds support for PHP 8.2.
  • PayPal: Improve error handling of PayPal API responses.
  • REST API: Download terms now have the featured images in the JSON response.
  • Checkout: Improved the checkout block login and registration handling.
  • Checkout: The legacy shortcode properly handles required fields.
  • Emails: Improved sample data for the purchase confirmation preview.
  • Refunds: Improved refund status handling and validation.
  • Downloads: Bulk editing no longer clears prices.
  • Downloads: Improved the ability to filter the ‘supports buy now’ for a download.
  • Downloads: Reliability of the file download limits was improved.
  • Store: Encourage store owners to set a country to help prepare for upcoming features.
  • Privacy: Enhanced the integration with the WordPress Privacy tools.
  • Reports: Improved chart sizing to prevent overlap and overflow.
  • Dates: Added a polyfill for servers without mbstring.
  • Support: Made links to support and documentation more accessible.
  • Taxes: Corrected an issue with subscription updates when taxes are enabled.
  • Registration: Fixed an issue with Recaptcha on the registration form.

3.2.3

  • Blocks: The user registration forms and lost password feature have been updated to allow customization via hooks.
  • Stripe: Refunded payments initiated within the Stripe Dashboard now create a refund order in EDD.
  • Cart: Improved product validation when adding an item to the cart.
  • Emails: Admin payment & order notifications have been updated to allow further customization.
  • Block Editor: Improved compatibility with themes and page builders.
  • Payments: Ensure that tax rates are accurately stored when using legacy payment creation processes.
  • Customers: Improved the performance and accuracy of checking if a user has previously made purchases.

3.2.2

  • PayPal: The IPN Backup for PayPal was fixed to prevent a fatal error.
  • PayPal: Improved the Buy Now with PayPal payments to bypass Checkout only when Buy Now is fully supported.
  • PayPal: Improved the reliability of the PayPal IPN listener.
  • Stripe: Improved the Buy Now with Stripe payments to bypass Checkout only when Buy Now is fully supported by the product.
  • Stripe: The State/Region ensures that it is updated when the Country field is changed.
  • Emails: Further improved the reliability of payment emails and admin payment notifications.
  • Customers: Migrating the customer data from EDD 2.x to EDD 3.x is now more reliable.
  • Customers: Existing guest customers can now use the EDD Registration form to create a user.
  • Customers: Improved the customer email address detection and reliability.
  • Payments: Updated the customer recent payments list to use the correct date format.
  • Blocks: Improved the reliability of checkout when EDD Blocks or Gutenberg are disabled.

3.2.1

  • Stripe: We’ve improved the error handling and informational messaging related to the Stripe Payments integration.
  • PayPal: When new features are added to the PayPal integration, a background process attempts to register new payment endpoints automatically.
  • API: Accessing the file download logs via the EDD API now supports querying by both customer ID and customer email address.

3.2.0

  • Important: This release requires PHP 7.4 or higher and WordPress 5.8 or higher.
  • Important: Amazon Pay has been formally deprecated and is no longer available for new installs. Existing stores using Amazon Pay are encouraged to explore other options.
  • New: PHP 8.1 is now fully supported.
  • New: Discount codes can now be applied to specific price variations.
  • New: A discount code can now be set to include or exclude specific download categories.
  • New: Store owners can now archive discount codes, to make managing their promotions simpler.
  • New: The discount list now has improved visibility for the status and usage of discounts.
  • New: A new ‘Service’ product type was added to the Product Type dropdown, to allow for non-downloadable products.
  • New: Disputed payments in PayPal and Stripe set the order to a new ‘On Hold’ status, and restrict access to downloads.
  • New: When a payment is disputed with PayPal or Stripe, a link to the dispute is added to the view order details in the admin along with order notes.
  • New: The date that the completed order actions were run is now stored as part of the order itself, not as metadata, and will be displayed more clearly on the order details screens. Existing meta will be migrated in the background; notifications will be updated to keep store owners advised of progress.
  • Improvement: Purchase receipts are now sent using deferred actions, to improve the performance of the payment processing.
  • Improvement: The bundle product metabox has been improved for performance on sites with many products.
  • Improvement: The query for non-bundled products has been updated to be more performant, specifically when editing a download product.
  • Improvement: Improved performance of checkout and customer lookups by conditionally running legacy hooks and filters that contained payment objects.
  • Improvement: Site Health and telemetry now check the health of the REST API via a test endpoint.
  • Improvement: The application fee for Stripe payments is removed for pass holders who have access to the Stripe Pro extension even if they do not have Stripe Pro installed.
  • Improvement: Easy Digital Downloads’ block styles have been updated for non block themes to load only when the block is rendered.
  • Improvement: The EDD Products block now allows products to be filtered by author.
  • Fix: Stripe Payment Elements no longer supported a theme of ‘none’, and ‘stripe’ has been defaulted.
  • Fix: Added hardening around viewing the adjustments list table.
  • Fix: To avoid conflicts with other plugins, critical vendor libraries have been moved to the EDD namespace.
  • Fix: Regional support for Stripe now checks the Stripe account country before checking the store country.
  • Fix: PayPal Commerce orders where not always being completed when using the confirmation page.
  • Fix: The Stripe Payment Element now uses the browser’s locale for localization.
  • Fix: Using the Import tool could produce a fatal error.
  • Fix: Discount codes resulting in a 100% discount could restrict the cart from allowing the user to complete the purchase.
  • Fix: Saved carts were not correctly saving for some users.
  • Fix: When saving a cart with Stripe as the active gateway, the message stating the cart was saved was removed prematurely.
  • Fix: Recalculating a customer’s stats was not always being scheduled correctly.
  • Fix: Malformed add to cart URLs could result in a PHP warning being thrown.
  • Fix: Flat discount can result in an incorrect rounding total depending on the cart conditions.
  • Fix: Viewing the order details of a migrated order that had its discount deleted looked incomplete.
  • Fix: It was possible for sites with incompatible MySQL versions to not see the appropriate warnings.
  • Fix: Attempting to activate a pass with an empty license key could appear to be stuck.
  • Fix: The Stripe JavaScript has been improved to be more efficient, remove only error messages, and only run when the Stripe gateway is selected.
  • Fix: Stripe could attempt to update a property that is not supported by the Stripe API.
  • Fix: New PayPal Commerce subscriptions might not be correctly marked as complete.
  • Fix: EDD Blocks placeholder styles could interfere with WordPress Core placeholders.
  • Fix: Additional, not officially supported fee data is now stored as order adjustment metadata.
  • Dev: Many filters and hooks that passed EDD_Payment objects now have a complimentary hook or filter that uses EDD\Orders\Order objects.
  • Dev: Easy Digital Downloads is no longer registering the edd_payment and edd_discount post types.
  • Dev: Easy Digital Downloads – Core now holds the Stripe base code, and Stripe Pro 3.0.0 only contains pro features.
  • Dev: Code for old, unsupported versions of PHP has been removed.
  • Dev: A new edd_after_order_actions hook has been introduced to manage all events which should happen when an order is created. This uses the order object for improved performance and any usage of edd_after_payment_actions should be updated accordingly.
  • i18n: 141 Additions, 199 Removals/Location Changes, 17 Differences (counts are approximate).