The 2021 Software Year in Review at ParityFactory


(Photo by Petr Magera on Unsplash)

2021 was a huge growth year for the ParityFactory software application suite, as we introduced multiple new features, Enterprise Resource Planning (ERP) software Integrations, added many enterprise customers who needed brand new functionality, and cemented more robust software engineering practices. It’s time to review those highlights with a comprehensive summary!

New Features By The Numbers!

2021 ParityFactory software features by the numbers
List of ParityFactory software features and ERP integrations by the numbers


After an initial start in the Alaskan seafood industry over 30 years ago, ParityFactory has continually expanded across the food industry with clients in produce, meat, dairy, nuts, eggs, juice and beverage, bakeries, other multi-ingredient manufacturers and much, much more. Last year we almost doubled our team size as our growth continued to accelerate in the United States and in overseas markets. We established a dedicated robust Project Management Office (PMO), solidified our partnership with Netsuite, and onboarded more enterprise customers than ever before in our history. We added additional Software-as-a-Service (SaaS) offerings, including our fruit and nut testing platform (PF Grading) and payment platform (Grower Payments). Below we list all our new features released in 2021, with the version of ParityFactory in square parentheses.

Winter 2021

January: Quickbooks Integration redux kicks off and our API gets a facelift!

Our flagship warehouse management application, PF Office, added a setting to enable auto-emailing of Bill Of Lading (BOL) when shipment is shipped [v120], the ability to create a new vendor receipt from a receiving order [v120], and users could now review the status of a Receiving Order from the header, so they know how much is left on a contract [v120]. We improved One-Click tracing by adding a transaction log to the Forward and Backward trace reports [v121] and added the ability to clone preferences for easier configuration [v121]. Our handheld scanner application (PF Mobile) added a new system preference for better usability by seeing just the Product Name and not the Product Name and ID [v120]. We upgraded our RESTful API by introducing human-readable examples using the Swagger UI framework [v121].

The team started a complete rewrite of our Quickbooks Enterprise ERP Integration, with the goal of making it significantly simpler and more robust for both developers and users. Our Netsuite ERP Integration added a slew of new features, including:

  • Import Delivery Date from NetSuite Sales Order into Scheduled Arrival Date [v120]
  • Import blanket Purchase Orders as Receiving Orders [v120]
  • Import production line during Work Order In [v120]
  • Assign Production Lines to locations [v120]
  • Purchase Order In & Work Order In to use the Production Line from the linking table [v120]
  • Multiple subsidiaries to integrate [v120]
  • On Shipments and Receipts, add the Unit Of Measure (UoM) and do all calculations for Uniform and Random products [v121]
  • Optionally Ship to Vendors and Receive from Customers (opposite to the default process) to support custom RMA functionality [v121]
  • Assign tracked Item user fields on Advanced Receipts [v121]

Our Electronic Data Interchange (EDI) Integration received the update of adding Customer ID or Ship To Facility ID to the filename of an EDI document to ensure routed to the correct trading partner [v120], while our Sage 100 ERP Integration added inventory register to Deferred Printing when updating the inventory register [v120] and our Sage Intacct ERP Integration added better error handling when transactions fail [v120] and generating Sales Invoices (instead of just Shippers) [v121].

February & March: Cycle counts rearchitected and support added for NiceLabel

As we onboarded more and more enterprise customers, we quickly realized that we needed to re-architect our Cycle Counts feature to support very high transaction volumes (hundreds of thousands!) [v122]. We also added native support for NiceLabel label printing software [v122]. We upgraded our Receiving Order transaction (close & reopen; print SSRS reports from Receiving Order views; Receiving Order ID to become the Lot Code for new Receipts generated from the Receiving Order) [v122, v123] and improved our One-Click trace report to exclude Lot relationships where the Lot was completely unissued [v123]. Our handheld scanner application got option for disabling Quick Transfers via a system preference in PF Office [v122]. Our API got a new Shipment endpoint [v122]. Our fruit and nut test/grading platform (PF Grading) got a feature that staggered release of test results to Growers and the ability to edit Growers created by Lab Users.

Our Netsuite ERP Integration got the ability to export units for all Receiving transactions (Uniform & Random) to verify billings [v122], export Components to only those Assemblies which list that Component [v122], assign Production Templates to multiple output Products [v122], optionally have the Receiving Order ID become the Lot Code for new receipts generated from the Receiving Order [v122], and Work Order closes to occur independently of Assembly Build creation to prevent duplicates [v122]

We improved our EDI Integration by adding fields to the Ship Notice/Manifest Transaction Set (856 document) exported from ParityFactory and added even better error handling [v122]. For our Sage 50 ERP Integration we added error handling for max character limits on export fields [v122] and for our Sage Intacct ERP Integration we added application identifiers to avoid duplicate tracking numbers [v122]. Our SysPro ERP Integration got upgraded by adding the ability filter out Sales Order line items with blank stock codes [v122]

Spring 2021

April: QB Enterprise rewrite complete & PF Grading updates!

Our management interface, PF Office,  added default units for pallets [v124], increased length for Product IDs (255) to provide flexibility (and support item-subitem relationships [v124], printing labels directly from the current inventory view to reduce the time to find and print the right item [v124], scanning a printer ID instead of a button menu click when reprinting tracking numbers or when selecting a printer during receiving [v124], better error message reporting for “No Purchase Orders” across all Integrations [v124], support for adding attachments on Transfer Receipts [v125], validating allocations on a Product by Product level, instead of the Shipment level [v125], and overhauling our configuration system to be specific to each ERP we support [v125]!

To our handheld scan-gun application (PF Mobile) we added the ability to specify default Units during Production and Receiving [v124], auto-adjust to the user Net Weight or Gross Weight (Tare + Net) based on the item type so it matches PF Office [v124], and prefill the current units on Multi-Unit Random Items  when the user selects an item for Adjustment [v125]

Our in-house testing and grading platform (PF Grading) got a major overhaul in fuctionality, including pausing sharing test data with Growers, add a test audit trail, support for Growers with multiple owners, the ability to clone previous crop year functionality, add multiple user accounts under a Processor, add Processor-level data (calculate taxes & fees, define base prices, calculate payments, bonuses & deductions including Color, Defect total and Serious categories and totals),  add Grower-level data (calculate taxes & fees, define base prices, calculate payments, bonuses & deductions), the ability to export Grower Payment in Comma Seperated Value (CSV) format and that any payment is confirmed as processed, a configuration option for turning on Grower Payments with a custom payment schedule, new processor-level reporting & business intelligence dashboards,  support for Grower varieties with base price and optional custom price and new detailed Grower statements.

We improved our Quickbooks Enterprise ERP Integration by adding functionality to avoid duplicate Production/Receiving transactions [v124]. New features to our Netsuite ERP Integration included complete support for Transfers [v124], the ability to distinguish between Vendor & Customer Accounts with the same ID [v124], support for WIP/Routing [v124], the ability to enable or disable Sales Order imports writing ShipDate to ActualShipDate in PF [v125], create a Transfer Order process for quick transfer (move Inventory Transfer Integration from Receipt Out to Transfer Order; add Direct Transfer) [v125], add support for sub-item and sub-company [v125]. We updated our Microsoft Great Plains ERP Integration to require a Date field on Purchase Order’s to map to the Scheduled End Date on ParityFactory Receipts [v124].

May: New Cost UI, Parent & Child Cycle Count tracking, Netsuite Lot-level functionality

PF Office got a brand new Cost User Interface (UI) [v127], Save & Clone functionality was added to every screen [v127], and initial support for Parent/Child Cycle Count tracking was added [v127]

In PF Grading we added reporting by percent and variety on test results, the ability to prepopulate a Grower with a default value when entering a payment, improve Grower Statements with Bulk edits for “Mark as Paid” and “Generate Statements”, additional price options, support for adding additional nut tray photos (ex. inshell and shelled) or if there is a high defect rate.

For our Netsuite ERP Integration we added new Lot-level functionality [v127], the ability for the Memo field to be imported to ParityFactory Production Run notes [v127] and better error handling when Purchase Orders are closed during Receipt Out [v127].

For our EDI Integration we added support for 3rd party warehouses in 947 and 944 document types  [v126]. In Sage 100 we added support for multiple warehouses [v126]. For SysPro we now support duplicate items [v126] and conditionally update the datetime of ParityFactory Scheduled Ship field based on Required Shipping Note [v127]. In Microsoft Great Plains you can now import both Units and Fill for Quantity field on Shipment for Random Products [v126].

Summer 2021

June: Directed Putaway features roll out & Netsuite improvements 

For our warehouse management application (PF Office) we added the ability to optionally set default Lot attribute for new Receipts on Vendor & Advanced Receipts [v128]. We also started building a whole suite of Directed Putaway functionality, starting with restricting locations or groups of locations a product can be moved/putaway to [v128]. We also default planned unit amounts to zero for multi-unit random Products when planned fill is greater than zero [v128].

We added a new Transaction History endpoint to our RESTful API, while for PF Grading we added a filter for Crop Year on the Grower Payment Report with the Active Crop Year as the default view.

A large effort was focused on continued Netsuite ERP Integration improvements including a diagnostic inventory reconciliation tool [v128], the ability to conditionally ignore existing lot information when exporting to Netsuite [v128], adding an Assembly Builds custom “shift” field to the Integration [v128], importing a custom Unit of Measure (UoM) field from Netsuite into ParityFactory to ensure consistency [v128], improve the Production Out process to include Weighted Cost/lb and Produced Item location fields (instead of Assembly Builds) [v128].

July: Parent/Child Cycle Count improvements, Smart Directed Putaways, and Area of Origin & Country of Origin

Multiple feature improvements for PF Office was our focus, adding functionality to close/archive Bulk Issue Production Runs [v129], finish adding support for Parent-Child tracking numbers in Cycle Counts [v129],  and adding support for a Huller field on Advanced Receipts [v129]. Work continued on the Directed Putaways feature set by establish location priorities [v129] and using Tracked Item Limit to recommend location of Putaways [v129]. We also added a feature to define a scale on Production Product from which to pull weight from [v129] and assign specific products to an Area of Origin and Country of Origin for better Field/Product tracking & filtering [v130].

For our handheld scan-gun interface (PF Mobile) we added a smart Directed Putaway Move function that directs the User to the best location based on Lot Created Dates for true FIFO picking [v130], and the ability to automatically call the Get Scale Weight webservice on Production Runs [v130].

Additional Netsuite ERP Integration improvement work included the ability to import Scheduled End date & time on Work Orders into PF Production Runs [v129], populate the Production Run ID (Work Order ID) on a custom field when creating Assembly Builds [v129], a utility to reconcile Product/Item Configuration, including Unit of Measures (UoMs) [v129], improvements to Bulk Production Runs to integrate correctly & support the same functionality as regular Production Runs [v130], better Work Order error messages for NetSuite-side problems [v130] and importing the Carrier field on incoming Sales Orders, Purchase Orders, Transfer Orders [v130].

For our Quickbooks Enterprise ERP Integration we improved Advanced Receipts to create Item Receipts in QBE [v129].

August: Adding Business Central to our list of ERP Integrations

This month was focused on report performance improvements for both our  Inventory and One-click Tracing Reports [v131] and auto-email notifications when the User receives the “Shipment is overallocated” warning message in PF Mobile  (requires email config setting turned on in PF Office) [v131]

We added several new features to PF Grading: export test results in specific custom date range; assign Bonus/Deductions to InShell, Shelled or Both; add Moisture % optional field to test results; add an Integration with PF Office for raw goods production planning; add support for custom formulas for defect totals, and the development of Processor Payment Settings (per crop year, highlight when payment settings do not equal 100%)

For our Netsuite ERP Integration we improved the Vendor import to have “Ship To” address records added to support RMA processing [v131].

The big news this month was creating a brand new ERP Integration for Business Central – Microsoft’s next-generation, cloud-based ERP [v131].

Fall 2021

September: Localization

As part of our strategic push towards a global market, we added a translation/localization library framework, initially supporting  Italian localization in both our warehouse management application (PF Office) and our handheld scan-gun application (PF Mobile) [v132]. By the end of the year we also added Spanish to both our flagship applications.

We additionally added support for Uniform, Random and Child items simultaneously on Tracked Item types [v132], restricting products that can be assigned on Receipts to only those associated with the Origins of the Receipt [v132], and improved our user experience by adding dynamic recaptioning of tables [v133]. We also added many updates to Shipments: assign granular permissions for PF Mobile users for allocations, staging & loading transactions [v133]; the ability to remove Production Run associations from Shipments [v133]; and view Shipment Reservations without the aggregated counts or fill [v133].

PF Mobile improvements included having the Lot ID to default based on the Tracked Item ID if there is only a single Lot when adjusting inventory [v132] and viewing Inventory Fill in addition to Net Ship Weight when viewing a tracking number [v133].

PF Grading improvements included adding the  ability to pick multiple Varieties when assigning bonuses or deductions, having the Moisture % field populating the Remarks section along with existing Remarks and incoming Nut Inspection Report supporting a Field name.

Our Netsuite ERP ingration added the ability to validate Units of Measure (UoMs) against the Netsuite UoM to proactively identify UoM errors in all our ingestion transactions [v132], validation of transaction product counts in ParityFactory against available inventory in Netsuite to improve error message specificity [v132], importing multiple Work Orders to a single Production Run [v132], export Assembly Transactions with a link to their original Work Order [v133], and adding support for Multi-Work Order import (in addition to Template) [v133]

For our EDI Integration we added performance improvements to Receipt In [v132] and the ability to set Units and Ship Weight rollups [v133]

We continued improving our Integration with Microsoft’s Business Central ERP by adding an Inventory Out transaction [v132], Purchase Order In transaction [v133], Receipt Out process [v133] and using the Work Description field as the ParityFactory Shipment Note field [v132]

Finally for our Sage 100 ERP Integration we added support for multi-warehouses [v133].

October: Bill of Lading improvement,  Merging Pallets and the CSV Uploader debuts

In our warehouse inventory management application (PF Office) we improved the Cycle Count error reporting by posting errors directly on the Cycle Count [v134], added Datetime In and Datetime Out fields to Shipments for more clear Bill of Lading [v134], created an application-wide option to require Best Before Date on Receipts on product-by-product basis vs. Receipt Header level [v134], added a HoldID option to prevent Move transactions for Tracked Items on hold being moved into staging or production areas [v134], allowing our users to limit the size of file uploads to avoid performance impacts [v134], improved temporary notifications for better troubleshooting [v134], and added the ability to identify which Shipments are fully loaded (or under loaded) on the Shipment Status page [v134]

In PF Mobile users can now optionally scan ProductID or UPC code when Receiving [v134], and we added functionality to merge two pallets/pallet tags [v134]

This month we started work on a new Integration for those customers who don’t have an existing ERP system by creating the CSV Uploader. There were also minor improvements for EDI (run all 856 processes on a schedule [v134]), Quickbooks Enterprise (export Bulk Issue Production transactions prior to the Production Run being archived [v134]), and Microsoft Great Plains (quantity field on a Sales Order Line item to import into both the Units & Fill Field on the Shipment for Random Products [v134]).

November: Big Mobile updates & Spanish language support added!

This month, PF Office got product tiers defined for Products in Cycle Counts [v135], an update to the Receiving Manifest report that supports return receipts [v135], Staged Items added to Shipments [v136], Spanish localization (internalization) added [v136], improvements to the Tracing Suite to better track Return Receipts & associated transactions [v136], the ability to Transfer On Hold items between two Facilities without removing the hold or including all Facilities [v136], optionally setting the Best Before Date at the the Product level to reduce manual data entry & setup [v136], and reviewing quality data in real time while making reservations [v136].

PF Mobile got new Directed Putaways features (display the remaining capacity of a Location and optionally disable First Available function to enforce scanning of location barcodes [v135]). The Build & Ship Tracked Items support Uniform, Random and Child items simultaneously [v135], Staged Items can beadded to Shipments [v136], Spanish localization (internalization) added [v136], Area of Origin added to lookup results on lots when searching for a tracking number [v136], and the ability to select a production printer other than the assigned Production Run printer [v136]

We improved our Netsuite ERP Integration by adding Dynamic Item In fields that allow users to specify which fields in ParityFactory map to which fields in NetSuite [v135], adjustment transactions generated from Production Adjustment Out to conditionally exclude the Costing elements [v135], a new Production Run efficiency calculation [v135], and the ability to import the Container Number from NetSuite to ParityFactory for Purchase Orders, Transfer Orders and Sales Orders [v136].

December: Universal Tracked Items

In PF Office we added a new item-type (Universal Tracked Items) that allows Uniform Lots, Random Lots, and child items, all on the same Tracked Items which allows for a true “shopping-cart” type picking process during Shipping [v137]. We also added Scale setting & Weight Cert seed-value improvements for our nut-customers, including a new default scale Preference Property (for customers who don’t use scales) and add seed values for weight-certification. The Manage Weight UI button visibility is now turned on/off by the preference property in both Receiving (Advanced & Vendor) and Shipping (Customer & Transfer) transactions [v137]. We also now allow users to load parent items whose child products are all included on a Shipment [v137]

For PF Mobile we added a system-wide default value (that can be toggled on or off) for Clear Location and Save Location value in the Move transaction [v137], we added Locations to Cycle Count process [v137] and removed Universal Tracked Item containers from Production, Receiving and Cycle Count processes [v137]

The end of year improvements for PF Grading consisted of calculating taxes and fees “assigned by lbs” to be accurate as of the last payment made, and the ability to manage Contract Growers.

Our final ERP Integration improvements for Netsuite were to export the Carrier ID with the Shipment Out process [v137] and the Shipment Out transaction to recognize “Billed” status [v137]. We improved our Quickbooks Online ERP Integration by requiring the Item In transaction to use the QBO Product Name as Parity ProductID [v137]. Finally, for our Sage 100 ERP Integration we added the line-item number to make reporting more customizable for our users [v137].

Momentum in 2022!

Already this year we have added additional new features and added new team members to continue to expand our capabilities and delivery velocity! We’re excited to add even more language support as we continue to grow across European, Asian, and Central & South American markets.

If you believe, as we do, that we can help your food manufacturing business thrive and scale, please reach out to us and schedule a demo today!

If you are an existing customer and one or more of these new features released in 2021 can help your business efficiency and scalability, please schedule an upgrade today!


More to explore