Problems & solutions · ERP

Controlled Environment Agriculture Software Problems: The 5 That Cost Real Yield, and How to Avoid Them

Controlled Environment Agriculture Software software overview illustration showing common problems and fixes.
The short answer

The most expensive failure in an indoor growing operation is a recipe change applied to a room instead of to a tracked batch. Once that happens the comparison group no longer exists, so the experiment can never be concluded. A room drops eleven percent on a leafy green cultivar over two cycles, three people have three plausible explanations covering seed lot, airflow and transplant spacing, and none of the three can be tested. The whole investment case rests on yield per square foot, and the facility cannot attribute a change in it.

Why does the scope of a growing operations build blow up so often?

The opening request is modest: we want to know what is in each room and what it yielded. Then the workshop happens. The head grower wants recipe versioning. The engineer wants climate history joined to it. Operations wants a daily task list that reflects the crop plan. Finance wants energy and labour cost per harvest. The food safety lead wants lot traceability from seed to case. Sales wants order allocation against forecast harvests. Every one of those is reasonable and every one touches a different external system.

What makes this category expand faster than most is that the control layer is not yours. Priva and Argus are good at holding a room at setpoint, which is genuinely hard engineering with decades behind it. What they own is setpoints. Your business runs on batches, tasks, labour hours and harvests, and the moment your build tries to write setpoints rather than read history, you have crossed from software into industrial integration with a safety argument attached.

The containment that works is to build the operations layer first and read from the control system rather than write to it. Versioned recipes, batch tracking at zone and tier level, task generation with labour capture, and harvest capture with yield reporting is a coherent first release. In our delivery experience that ships in 12 to 18 weeks at $80,000 to $170,000. Bidirectional control, energy allocation and packing line integration belong in phase two, priced separately, because they depend on things outside your software team control.

What goes wrong when you migrate recipes, batch history and facility layout?

The recipe is the migration problem nobody expects, because in most facilities there is nothing to migrate. The recipe exists as a program inside the climate computer that a grower edits directly. That edit has no author, no reason, no version and no previous state. So when the project asks for the recipe library, what arrives is the current program plus a grower memory of roughly what changed and roughly when.

Accept that. Establish the current state as version one with an honest note that history before this point is not recoverable, then never let it happen again. Every subsequent version carries cultivar, stage schedule, targets, an author and a reason. Batches bind to the version they ran under. From that day forward experiments can conclude, and the year of missing history stops mattering within two crop cycles.

Facility layout is the second migration trap. Yield is per square foot, which means per tier, per position in the airflow, and everyone who has run one of these buildings knows the bottom tier and the end of a row behave differently. Historical records are almost always kept per room and per week, which averages away the only variance worth studying. You cannot retrofit resolution onto old data. What you can do is model location as precisely as your operation can maintain, usually rack, tier and tray position, with moves recorded as events when trays are spaced. A location model that is more precise than your crews can actually keep up with produces confident wrong data, which is worse than coarse honest data.

Why do the controller and fertigation integrations break after launch?

The first surprise is protocol. These are industrial systems, and the interface is frequently Modbus, BACnet or OPC UA rather than a documented web interface. A team whose integration experience is web applications will estimate this as a connector and discover a field engineering exercise involving a gateway, a network segment and a conversation with your controls contractor.

The second surprise is direction. Reading historical climate and fertigation data is the easier half. Publishing setpoints from a recipe version back into the controller is a different bar entirely, because it requires vendor cooperation, careful safety design and an agreed answer to what happens when the two systems disagree. If the integration goes quiet at 3am, the room must keep running on the controller last known good program rather than drifting because a message did not arrive. Design that failure mode explicitly and test it before you rely on it.

The third is scale integration at the harvest station. Weight capture typed at the end of a shift is a number somebody reconstructed, and it will quietly become the basis of every yield report you publish. Integrated scales writing directly against the batch remove that, but they add a hardware and network dependency at the wettest, busiest bench in the building, so specify the offline behaviour there too. Growers rightly override in the moment, and overrides should be captured with a reason so they become evidence rather than noise.

What happens when food safety traceability is not covered?

The gap surfaces on a phone call. A buyer asks which trays went into a specific case, and the answer takes two days of reconstruction from paper receiving sheets, a scouting binder and a harvest spreadsheet keyed by date and room. Even when the reconstruction is correct, the fact that it took two days is itself the finding.

Indoor growers sell into retail and foodservice buyers with audit programmes, and leafy greens sit squarely inside the regulatory conversation about produce traceability. The FSMA Produce Safety Rule applies to covered produce operations, and FSMA 204 traceability obligations apply to foods on the FDA Food Traceability List, which includes leafy greens. Confirm your specific coverage and the current compliance dates with a food safety adviser rather than with an article. Independently of the rule, your buyer audit will ask for records that either exist or do not.

The concrete fix is to make lots first class from receiving. Seed lot, substrate lot and nutrient batch record at intake and attach to the batch that consumes them. Sanitation and scouting records attach to zones with dates and personnel. Harvest to pack is a transformation event, so a case knows its parent batches and a batch knows its cases and its customers, which lets the recall query run in both directions in seconds. Generate water testing and equipment sanitation schedules from the same task engine that generates growing tasks. That is the difference between a food safety programme that is followed and one that is documented afterwards.

Should you build custom or configure what you already own?

Some readers should not build, and we would tell them so on the first call. If you are running a single growing room or a first commercial module still proving the crop, your control system plus spreadsheets is adequate, and the money belongs in lighting, airflow and an experienced grower. A build at that stage buys reporting you do not yet have the operational variance to use.

There is also a legitimate configure first path inside your existing stack. Priva and Argus both hold far more history than most operations ever query, and a facility that has never exported climate history and joined it to harvest weights has not yet exhausted what it already owns. If you are growing in glass and your real question is crop forecasting rather than operations, Source.ag offers something a custom build will not, because forecasting benefits from data beyond your own facility.

The build case appears when two or more of these are true. You run more than one growing room and more than three cultivars. You are running recipe experiments and cannot conclude them. Labour is your largest controllable cost and you cannot state it per tray. Investors or a board are asking for yield per square foot by cultivar and the number is assembled by hand each month. Or a customer audit has asked for a trace you had to reconstruct. The underlying reason is simple: control vendors sell you a room that holds setpoints, and your business is a production system converting seeds, labour and electricity into cases. Nobody sells the second thing because it is shaped like your facility.

How do hidden costs get into the quote?

The items that surprise operators here are mostly outside the software line, which is exactly why they are missed.

  • Sub metering. Allocating energy per room or per circuit is an electrical project before it is a software one. If the meters do not exist, someone has to install them and that is a contractor, a permit and downtime.
  • Controls contractor time. Any write access to Priva or Argus involves the people who commissioned your controls. Their availability, not your developer availability, sets that schedule.
  • Hardware at the bench. Integrated scales, tablets that survive a wash down environment, mounts and network coverage in a metal racking environment are real line items.
  • Multi language task content. Crews are frequently multilingual and a half translated task list produces wrong work rather than no work. Translation and review is ongoing, not one off.
  • Second facility. A purpose built vertical farm and a retrofitted warehouse do not share a location model, so making cultivar recipes comparable across sites is design work, not configuration.

What separates a build that works from one that fails here?

Ask how they would integrate with your control system, naming your vendor. If the answer does not include Modbus, BACnet, OPC UA or a specific vendor interface, they have not done industrial integration and your project will find that out in month three when the schedule has already been promised to a board.

Ask them to model a recipe change mid cycle on a whiteboard. The right answer is versioned recipes, batches bound to a version, and deviation measured against the version in force at each stage. A developer who models the recipe as a settings screen has built a configuration page and has given up the ability to explain any yield difference, which was the reason for the project.

Ask how tasks get created. If the answer is that a supervisor writes the list each morning, the labour data will never be attributable and the plan will drift away from the crop. Tasks should be generated from the recipe schedule so a recipe change automatically changes the labour plan, then started and closed against a batch and a location on a tablet at the rack.

Then settle ownership of the code, the infrastructure and the historical data in writing before kickoff. Your yield and recipe history is the asset that makes the next facility cheaper to commission, and it should not live in a vendor account. At Digital Heroes the client owns the code from the first commit and the data is exportable in an open format on request.

Research & sources

The evidence behind this guide

Independent findings on why this investment pays off. Every link goes to the primary source.

  1. 48% of private companies cite integration with legacy systems or technical debt as a top obstacle to realizing the full value of their digital and AI investments (behind data quality/availability at 72% and gaps in AI fluency or technology talent/leadership at 53%). Source: Deloitte (2026) →
  2. McKinsey found that tech debt can amount to 20-40% of the value of a company's entire technology estate before depreciation, and CIOs report that 10-20% of the budget for new products is diverted to resolving tech-debt issues. Source: McKinsey & Company (2020) →
  3. An analysis of enrollment and completion data for 221 MOOCs (Katy Jordan, published in the International Review of Research in Open and Distributed Learning, IRRODL, 16(3), 2015 - not the Journal of Distance Education) found completion rates ranging from 0.7% to 52.1%, with a median completion rate of 12.6%, and completion negatively correlated with course length (longer courses had lower completion rates) - underscoring how unsupported self-paced online courses struggle to finish learners. Source: Journal of Distance Education (via ERIC / Katharina Jordan) (2015) →
  4. The 2015 CHAOS data (based on the modern definition of success) reports that only about 29% of software projects succeed, 52% are challenged, and 19% fail, with the three most important success skills being executive sponsorship, emotional maturity, and user involvement. Source: The Standish Group (reported via InfoQ Q&A with Jennifer Lynch) (2015) →
Layla S. · Senior Account Manager · Wellness · Sydney

Layla looks after wellness sector accounts, running projects that touch bookings, memberships, subscriptions and the customer data that sits behind them. She translates between clinical or operational language and what a development team needs written down. Useful reading if your business runs on recurring relationships rather than one off sales.

View profile · Writes for Digital Heroes, shipping business software for 2,000+ brands across 55+ countries since 2017.

FAQ

Frequently asked questions

We have no recipe history at all. Is a build pointless until we do?
No. In most facilities the recipe lives as a program inside the climate computer with no author, no reason and no previous version, so there is genuinely nothing to migrate. Establish the current state as version one, note honestly that earlier history is unrecoverable, and version everything from that day. Experiments become conclusive within two crop cycles, at which point the missing year stops mattering. Waiting to start simply delays the day the record begins.
How precise should our batch location model be?
As precise as your crews can actually maintain, which for most operations means rack, tier and tray position with moves recorded as events. Going finer than the crews can keep up with produces confident wrong data, which is worse than coarse honest data. The reason to reach tier level at all is that yield varies by tier and by position in the airflow, and room level weekly records average away the only variance worth studying.
Can software write setpoints back into Priva or Argus, or only read?
Both are possible, but they are different projects. Reading historical climate and fertigation data is the easier half and is where a first release should stay. Publishing setpoints from a versioned recipe requires vendor cooperation, a safety design and an agreed behaviour when the two systems disagree, including what the room does if the integration goes quiet overnight. Expect Modbus, BACnet or OPC UA rather than a web interface, and expect your controls contractor to be on the critical path.
Why can we not state labour cost per tray?
Because payroll knows hours by employee by week and nothing links those hours to a batch. The fix is to generate the day tasks from the recipe schedule so the work list is derived rather than written each morning, then have crews start and close each task against a batch and location on a tablet at the rack. Labour cost then posts to the batch and cost per tray and per kilogram becomes a measured number rather than an assumption inside an automation business case.
How should energy cost be allocated to individual harvests?
Sub meter by room or circuit where the metering exists, join consumption to your tariff structure including time of use and demand charges, and post cost to the batches in residence. Be aware that if the meters are not installed this is an electrical project before it is a software one. Once it exists, lighting schedule optimisation against the daily light integral the recipe requires, while avoiding peak demand windows, becomes a lever that pays continuously.
What food safety records should the system hold?
At minimum seed, substrate and nutrient lots recorded at receiving and attached to the batches that consume them, sanitation and scouting records tied to zones with dates and personnel, water testing schedules, and a harvest to pack transformation so a case knows its parent batches. Coverage under the FSMA Produce Safety Rule and FSMA 204 traceability depends on your commodity and operation, so confirm the specifics with a food safety adviser. Buyer audits frequently ask for more than the rule requires.
We run one room and three crops. Should we wait?
Yes, and we would say so plainly. A single room or a first commercial module still proving the crop is well served by your control system plus spreadsheets, and the money is better spent on lighting, airflow and an experienced grower. The build case starts at more than one room and more than three cultivars, or when you cannot state labour cost per tray, or when an experiment you ran could not be concluded from the records you kept.
What should we prepare before a developer starts?
A documented rack and zone layout for each facility, your current recipe set written down rather than held in one person memory, a list of cultivars with their stage schedules, and read access to your control system history. Also identify who your controls contractor is, since their availability sets the integration schedule. Facilities that arrive with the layout and recipes documented move noticeably faster than those where growing knowledge has to be extracted during the build.
How much does a custom ERP cost for a small business?
A small-business ERP covering two or three core modules typically runs $40,000 to $120,000, with inventory, ordering, and accounting sync being the usual starting set. Across 2,000+ Digital Heroes projects, integration count and user roles drive cost far more than screen count. A full mid-market ERP with six or more modules usually lands between $150,000 and $400,000.
How do I vet an agency for an ERP project?
Ask to speak with two clients who have been running an ERP the agency built for at least two years, because ERP quality shows up in year two, not at launch. Then ask for their data migration plan, their module rollout sequence, and the named senior engineers who will be on your project. An agency that leads with screen designs instead of process mapping is a red flag for ERP work.
How many developers does it take to build an ERP?
A typical Digital Heroes ERP pod is five to seven people: two or three backend engineers, one frontend engineer, a QA engineer, a project manager, and a part-time architect and designer. Bigger teams rarely go faster on ERP because the bottleneck is decisions about your business rules, not typing speed. What you need on your side is one empowered internal owner who can answer process questions within a day.
What does it cost to maintain a custom ERP each year?
Budget 15 to 20 percent of the original build cost per year, so a $150,000 ERP needs roughly $22,000 to $30,000 annually for hosting, security patches, integration upkeep, and small improvements. Across Digital Heroes maintenance contracts, third-party APIs changing is the biggest recurring work item. That total still usually sits well under the license bill for a comparable NetSuite or Dynamics seat count.
What mistakes kill ERP projects most often?
The three we see most in rescue work at Digital Heroes: recreating the old system's broken process in new software, launching everything at once instead of module by module, and having no single internal owner with authority to decide. A fourth is skipping the parallel run on data migration to save two weeks, which trades a short delay for months of distrust in the numbers. None of these are technical failures, which is why vendor selection should weigh process discipline over demo polish.
What tech stack should a custom ERP be built on?
A boring, hireable one: Digital Heroes most often ships ERPs on PostgreSQL with a Node.js or Python backend and a React frontend, hosted on AWS or Azure. The stack matters far less than the database design, because your ERP schema will outlive every framework choice. Be skeptical of any agency proposing a niche or proprietary framework, since your ability to hire maintainers later is part of the total cost.
Should I hire a freelancer or an agency for my software project?
A skilled freelancer is the right call for a single-discipline scope under roughly $15,000, like a website, a plugin, or one integration. Above that, projects need design, backend, testing, and project management at once, and a solo builder becomes the single point of failure: if they get sick or take a bigger client, your project simply stops. Agencies bill 20-40% more per hour but carry continuity, code review, and someone to escalate to, which is what you are actually buying.
How do I calculate whether custom software will pay for itself?
Divide the build cost by the monthly benefit, where benefit is hours saved times loaded hourly cost, plus subscription fees replaced, plus any revenue the software unlocks. Three staff saving 10 hours a week each at a $40 loaded rate is about $62,000 a year, which pays back a $60,000 build in roughly 12 months. Across Digital Heroes internal-tool projects, 12 to 24 months is the normal payback range, and anything projecting under 6 months usually means the spreadsheet is hiding costs.
Is a custom ERP cheaper than NetSuite over five years?
Often yes once you pass roughly 20 to 30 users. NetSuite is commonly quoted at $999 per month for the base platform plus about $99 per user per month, so a 30-user company spends over $200,000 on licenses across five years before paying for implementation. A custom build in the $120,000 to $250,000 range is a one-time cost, and in Digital Heroes projects annual upkeep runs 15 to 20 percent of build cost with no per-seat fees as you hire.
Who can build a custom ERP software system?

Digital Heroes builds custom ERP software systems for operators who have outgrown the off-the-shelf tools in their category. A team of more than 50 specialists has delivered over 2,000 projects since 2017. Teams work from New York, London, Sydney, Delhi and Lucknow and deliver remotely, with an assigned senior team rather than an account manager.

Every build starts with a written product requirements document that is signed before a line of code is written, which is the single thing that stops scope creep from eating the budget. Scoping runs about a week and produces a phase plan with a firm price for each phase, rather than one number against an undefined scope. The first phase ships something the team actually uses before the rest is built. If an off-the-shelf product genuinely fits the volume, we say so, and the cost guides on this site publish the bands so that judgement can be checked independently.

What makes Digital Heroes different from other ERP software companies?

Four things that competitors in this bracket cannot simply copy. Digital Heroes runs a YouTube channel with more than 2.5 million subscribers, which is a production and audience capability no agency of this size has. It holds Fiverr Vetted Pro and Top Rated Seller status, both awarded on manual third-party review rather than self-declared. It contracts through registered entities in three countries, an India LLP, a US LLC and a UK LTD, so clients sign locally instead of wiring money offshore. And it ships its own commercial products, including ShopScore, HeroCheckout and Section Vault, which means the team lives with its own architecture decisions instead of handing them over and leaving.

Two more that show up in the work. Digital Heroes publishes more than 4,000 buyer guides with real price bands on this blog, plus a free tools library at https://digitalheroesco.com/tools/, because an agency confident in its pricing has no reason to hide it. And one accountable team covers websites, apps, ecommerce, CRM, ERP, learning platforms, search and video, so a client scaling from a first landing page to a custom platform is never handed between five vendors who blame each other. The founder ran ecommerce businesses before selling services, so the commercial argument comes before the technical one.

How can I check Digital Heroes is legitimate before getting in touch?

Verify it independently rather than taking the site's word for it. The YouTube channel is at https://youtube.com/@DigitalMarketingHeroes, the Fiverr profile at https://www.fiverr.com/shreyanshsin261, and the Upwork profile at https://www.upwork.com/freelancers/shreyanshsingh. Client reviews sit on Clutch at https://clutch.co/profile/digital-heroes-0 and Trustpilot at https://www.trustpilot.com/review/digitalheroes.co.in, and the company page is at https://www.linkedin.com/company/digital-heroes-1/.

Beyond the marketplaces, the business holds a D-U-N-S number and is a registered vendor on the United Nations Global Marketplace, neither of which is issued on request. Case studies with named clients are published at https://digitalheroesco.com/case-studies/. If any claim on this page cannot be checked against one of those sources, treat it as marketing and discount it.

Keep reading
let's build

Build something worth launching.

A plan, a team, a timeline, within 24 hours. No decks, no discovery calls. Tell us what you're building and we'll come back with a real scope and a real number.

message us directly · we reply within one business day

mission briefing

Monthly dispatch

Playbooks, real build costs, and what we're shipping. One email a month. No fluff.

visit us

New York HQ

1140 Broadway, Suite 704 · New York, NY 10001

Get directions
Online now

Hey there 👋 How can we help you today?