Power Apps vs. Other Platforms for Field Inspection Apps
A cost and feature comparison for anyone holding a five figure quote for a site inspection app with photos: a custom Power App on Dataverse, or a standalone platform such as Fulcrum, AppSheet, or Jotform.
Surely there is a cheaper way to do this. If a site inspection app with photos was quoted at forty thousand dollars, there usually is. The options are a standalone inspection platform such as Fulcrum, AppSheet, or Jotform, or a custom app on Power Apps. This page compares them on cost structure, licensing against per user subscription, development effort, offline capability, photo handling, and integration with Dynamics 365 and Dataverse. The short version: a Power App is often the cheaper alternative to a bespoke build, and a standalone platform is cheaper still when the inspection never leaves the field team.
Being straight about the bias: Solzet builds Power Apps on Dataverse and Dynamics 365, and we do not sell Fulcrum, AppSheet, or Jotform. So this is written the way we would talk it through on a call, including the cases where we would tell you to buy the standalone tool and keep the money. One accuracy note. Pricing and feature sets move constantly on every product named here, Microsoft included, so this page describes what each kind of product is built to do and which line items decide the total, rather than publishing numbers that will be wrong in a quarter. Check the current vendor pages and the Microsoft licensing guide for the figures, and hold them against the questions further down.
The decision in three lines
Buy the standalone inspection platform when
The inspection is the whole job. Inspectors go out, capture photos and readings, and a report comes back. Nothing downstream needs the result except a person reading it. Fulcrum, AppSheet, and Jotform will have you collecting data this week for a subscription, with no build, and that is a genuinely good answer we would not argue with.
Build the Power App when
The inspection has to reach something. A customer record, an asset, a work order, a case, a follow up job, a warranty claim, an invoice. Once the result has to land next to the rest of your business, a standalone tool becomes a second customer list and a sync you own forever, and the Power App stops being the expensive option.
Either way, the forty thousand quote is beatable
A bespoke native app for iOS and Android is expensive because you are paying for two codebases, sign in, an offline sync engine, a photo pipeline, a backend, store distribution, and the maintenance of all of it. A low code platform is cheaper because someone else already built those parts. That is the actual reason for the price gap, and it holds whichever platform you pick.
What the bespoke quote is actually charging you for
Before comparing platforms it is worth knowing why the custom build costs what it costs, because every line below is a part that a low code platform already ships. That is the whole reason the cheaper way exists, and it is not a trick.
Two apps, not one
A native build means iOS and Android, either as two codebases or as one cross platform codebase with two sets of device quirks, two store submissions, and two release cycles. Before a single inspection question is designed, the platform tax is already in the quote.
Sign in, users, and permissions
Someone has to build accounts, password resets, roles, and the rule that an inspector sees their own jobs and a supervisor sees everyone. On a Microsoft platform this is Entra ID and Dataverse security roles, which already exist. On a bespoke build it is a feature with a line item and a security surface you now own.
The offline sync engine
This is usually the single largest hidden cost. Caching work locally, queuing submissions, resolving what happens when two people edited the same record, and recovering when the app is killed mid sync are all real engineering. It is also the part that gets under quoted, because it looks like a checkbox in the requirements document.
The photo pipeline
Capture, compress, thumbnail, upload with resume, retry on failure, store somewhere durable, and show it again later on a slow connection. Photos are the reason inspection apps are heavier than they look, and a bespoke quote prices every step of that individually.
A backend that did not exist yesterday
An API, a database, hosting, backups, monitoring, and the person who gets paged. A platform gives you a governed data store on day one. A custom build gives you an operational responsibility that outlives the project.
Distribution and the next two years
App store accounts, device rollout, and then the maintenance nobody quotes for: operating system updates that break something annually, and every change request going back to the developer who wrote it. The build price is the smaller half of the number.
The same argument applies to any paper process, and we walked through it for the plant floor in how Power Apps replaces paper forms on the shop floor.
Power Apps against the standalone platforms, factor by factor
The standalone column wins several of these rows outright. Where it does, the table says so rather than manufacturing a counterargument.
| Factor | Custom Power App on Dataverse | Standalone platform (Fulcrum, AppSheet, Jotform) |
|---|---|---|
| What you are actually buying | A development platform. Canvas and model driven apps over Dataverse, with Power Automate for the logic and Power BI for the reporting. Nothing exists until someone builds it, and then it is exactly your process. | A finished product for one job. Fulcrum is built around field data collection and inspection, AppSheet builds apps from spreadsheets and databases, Jotform is a form builder with a mobile app. You get their opinion of how inspections work, which is often correct. |
| Time to a working inspection form | Days to weeks depending on scope. A basic capture form with photos is genuinely quick. A form that validates against real assets, works properly offline, and writes into your existing data model is a small project. | Hours to days. Drag the fields in, publish, install the app on a phone. This is the category advantage and the honest reason these products sell. Nothing on the Microsoft side beats it for a standalone form. |
| Cost structure | Licensing plus a build. Power Apps premium use is licensed per user per month, and Microsoft has changed the plan names and structure more than once, so check the current licensing guide. The important nuance: enterprise Dynamics 365 licences already carry use rights for custom Power Apps used within the context of that Dynamics 365 application, and Microsoft 365 licences carry limited Power Apps rights over Microsoft 365 data sources, which do not extend to Dataverse or premium connectors. | Subscription only. Fulcrum and AppSheet price per user per month by tier. Jotform tiers by forms, submissions, and storage. Setup cost is near zero, the monthly number is predictable from day one, and there is no build to fund. |
| What happens as the inspector count grows | The build cost is spent once and does not repeat. Licensing still scales per user, but if those users already hold a Dynamics 365 licence for the app the inspection belongs to, the marginal cost of adding the inspection can be close to nothing. | Cost scales linearly and forever. Ten inspectors is fine. Eighty inspectors plus the office staff who read the results is a subscription line that grows every year, and it is the point at which a build starts paying for itself. |
| Development effort | Real, and much smaller than a bespoke build. You are designing screens, a data model, validation, and an offline strategy, not writing an app. Most of the effort goes into deciding what a completed inspection must record, which is work the standalone tools also make you do, just faster. | Configuration rather than development. Someone still has to design the form properly, and a badly designed form is a badly designed form on any platform, but nobody has to think about architecture. |
| Offline capability | Supported and a design decision, not a switch. Canvas apps can cache data and queue submissions locally and sync when signal returns, and Microsoft has shipped an offline first mode for canvas apps on Dataverse. Model driven mobile uses offline profiles that define which records travel with the device. Built with offline in mind from the first screen it is solid. Retrofitted at the end it is painful. | Offline first by design in the products built for field capture, Fulcrum most obviously, since collecting data where there is no signal is the reason the category exists. You get it working correctly without thinking about it, which is a real advantage and one of the strongest arguments in this column. |
| Photo capture | The camera and add picture controls handle capture, and you decide the rest: how many photos per section, whether a photo is mandatory before the inspector can continue, annotation, and whether the device location is captured as its own field. If you need GPS coordinates against a photo, capture the location explicitly rather than assuming it survives inside the image file. | Photo capture with geotagging, captions, and inclusion in a generated PDF report is core functionality in the inspection focused products. It works on install with no decisions to make. |
| Where the photos are stored, and what that costs | Your choice, and it matters more than people expect. Dataverse file and image columns are simplest but consume metered file capacity. Routing photos to SharePoint or Azure Blob Storage and keeping the reference in Dataverse is usually far cheaper at volume. This is a decision worth making before the first thousand inspections, not after. | Included in the plan, up to the storage the tier allows, after which you upgrade the tier. Simple, predictable, and out of your hands. |
| Photo volume on a bad connection | Yours to manage, which means you can. Resizing and compressing before upload, deferring image sync until the device has decent signal, and capping resolution are all available levers. A twenty photo inspection at full phone resolution will punish a weak connection on any platform. | Handled by the vendor and generally handled well, since it is their core problem. Less to get wrong, and less you can tune when your sites genuinely have no signal. |
| The data model behind the form | A relational model in Dataverse. An inspection belongs to an asset, which belongs to an account, which has a service history. You can ask what changed since the last visit, because the last visit is a related record rather than another submission. | A form and its submissions, plus whatever lookups the product supports. Excellent for collecting. Weaker when the question is about the relationship between this inspection and everything else you know about that site. |
| Integration with Dynamics 365 and Dataverse | Not an integration. A Power App writes to the same Dataverse that carries your accounts, contacts, cases, work orders, and assets, so a failed inspection can raise a case or a follow up work order through Power Automate with nothing in between. This single row is the reason most of our clients choose this column. | A separate system with its own data. Connectors and APIs exist and they work, but you own a sync: duplicate sites, fields that live on one side only, and the question of which system is right when they disagree. It is cheap to start and it is a permanent responsibility. |
| Reporting | Power BI over Dataverse, joining inspection data to sales, service, and asset data in one model, so you can answer questions nobody anticipated when the form was designed. | Built in dashboards and PDF report generation covering the metrics the vendor chose, which for a team coming off paper is a large step forward. Anything beyond that set means exports. |
| When the form is genuinely unusual | Custom PCF components in TypeScript and React where the standard controls run out of road: an annotated site diagram, a specialised measurement control, a signature and markup surface. This is our own specialty, and it is the difference between shaping the app to the inspection and reshaping the inspection to fit the app. | The vendor roadmap and available integrations. Constraining, and also protective, since you cannot customise yourself into something unmaintainable. |
| Identity and security | Microsoft Entra ID sign in, Dataverse security roles down to individual columns, and audit history. If your organisation already runs on Microsoft 365 and has a security review to satisfy, this is substantive rather than cosmetic. | Vendor accounts and vendor permissions, usually with single sign on available on higher tiers. Fine for most field teams and a real conversation in a regulated one. |
| Who owns it after go live | Someone must own the app, the data model, and the change queue, whether that is an internal maker or a partner on a support arrangement. Power Platform release waves are a routine to absorb rather than a crisis. | An office manager can administer it, which is exactly the point. Upgrades happen to you and are mostly invisible. |
| Best fit | Inspections that belong to a business process: asset condition against a service contract, a site survey that becomes a quote, a compliance check that raises a case, or any team already on Dynamics 365 where the customer record exists once and should stay that way. | Self contained field data collection, small to medium inspector counts, no CRM to integrate with, no appetite for a build, and a need to be collecting data this month. |
When we would tell you to buy the standalone tool
We would rather say this than sell a build that was never a good fit. If most of these are true, take the subscription and keep the money.
You need inspectors collecting data next week. Nothing in the Microsoft column beats signing up on Monday and having photos coming back on Wednesday, and if the deadline is real this decides it.
The inspection is self contained. If the output is a report a person reads and nothing downstream consumes the data, the main argument for Dataverse does not apply to you, and paying for a build to get it would be wasteful.
There is no CRM or ERP to integrate with. The strongest case for the Power App is that the result lands next to the customer, the asset, and the work order. If none of those exist as records anywhere, that case is worth very little.
Nobody in the company builds or owns software. An opinionated product an office manager can administer beats a flexible platform with no owner, every time. We have taken over enough abandoned apps to say that without hedging.
The inspector count is small and stable. Per user subscriptions are cheap at ten people. The arithmetic that favours a build only really bites as the headcount and the years accumulate.
When the Power App is the cheaper answer
The other side, stated as plainly. These are the situations where a build costs less than the subscription it replaces, or buys something the subscription cannot sell you.
The result has to trigger something. A failed check that raises a case or a follow up work order automatically, without anyone rekeying it, is the difference between collecting data and running a process. On Dataverse that is a Power Automate flow, not an integration project.
The site, asset, or customer already exists as a record. Inspecting against your real asset list rather than a free typed site name is what makes the history usable, and it is what stops the second customer list from ever being created.
You are already paying for Dynamics 365. Enterprise Dynamics 365 licences include use rights for custom Power Apps used within the context of that application, so the inspection app can be a far smaller incremental cost than a new per user subscription for everyone. The boundaries of that right are specific, so read the current licensing guide before you plan a budget around it.
The headcount is large or growing. A build is a cost you pay once. A per user subscription is a cost you pay every month for every person, including the office staff who only read the results.
The inspection is not a standard inspection. Custom controls, conditional sections that depend on the asset type, calculations, and validation against live data are configuration questions on the platform and feature requests in somebody else's backlog on a product.
Five questions that settle it
Answer these honestly and the choice usually makes itself. They are also the questions we ask on a first call, before anyone opens a demo environment.
What happens to the inspection after it is submitted?
If the honest answer is that somebody reads it, buy the standalone tool. If the answer involves raising a job, updating an asset record, notifying a customer, feeding a warranty claim, or triggering an invoice, every one of those is an integration you would be building and maintaining on the standalone side, and a flow on the Dataverse side.
Does the thing being inspected already exist as a record somewhere?
A site, a serial numbered machine, a vehicle, a property. If it exists in Dynamics 365 or Dataverse, inspecting against the record gives you a real service history and no duplicate list. If it exists only as a name someone types into a form, you do not yet have the problem the platform solves.
How many people will need a licence in three years, including the office?
Count inspectors, supervisors, schedulers, and everyone who only reads results. Then multiply by thirty six months and compare it to a one time build. This arithmetic is the entire argument, and it is the one comparison nobody does before signing the subscription.
What does a completed inspection actually have to record?
Photos per section, measurements with tolerances, serial numbers, a signature, a location, a pass or fail with a reason from a fixed list. Write this down before choosing anything. It is the specification for either option, and its absence is the most common reason an inspection app is abandoned by month three, on any platform.
How bad is the connectivity, honestly?
Not the office wifi, the basement plant room and the site with no coverage. If a meaningful share of inspections happen with no signal, offline stops being a feature and becomes the architecture. Both options can do it. Only one of them does it without you making the decisions, and only one of them lets you tune it when the default is not good enough.
Comparing cost without kidding yourself
We do not publish prices for products we do not sell, and we will not put a build figure on a page before anyone has described the scope. What we can give you is the shape of the comparison and the line items that get left out of it.
Compare three years, not one month
A subscription looks cheap against a build for roughly as long as it takes to forget that the subscription renews. Put a one time build with an annual change budget next to a monthly per user cost multiplied by every seat and thirty six months. Sometimes the subscription still wins, and then you have a real answer rather than a hunch.
Count every seat, not just the inspectors
Supervisors who approve, schedulers who assign, the office staff who read reports, and the manager who only opens a dashboard all sit somewhere in a licensing model. The cheapest looking quote is usually the one that counted the fewest people.
Check what your existing licences already cover
This is the line item most often missed and the one that changes the answer. Enterprise Dynamics 365 licences carry rights to custom Power Apps used within the context of that Dynamics 365 application. Microsoft 365 licences carry limited Power Apps rights over Microsoft 365 data sources, not Dataverse or premium connectors. The boundaries are precise, they move, and they are worth twenty minutes with the current Microsoft licensing guide before anyone builds a business case.
Photo storage is a running cost on both sides
Inspection apps generate images relentlessly. On a subscription that shows up as a storage tier upgrade. On Dataverse it shows up as file capacity, which is why routing photos to SharePoint or Azure Blob Storage and keeping the reference in Dataverse is usually the cheaper architecture at volume. Either way it is a line nobody puts in the first business case.
Integration cost arrives later, and only on one side
The standalone tool is genuinely cheap until the site list has to match your CRM, the failed inspections have to become work orders, and somebody has to own the sync when the two disagree. That work is not free. It just arrives in month nine instead of month one, and by then the decision has already been made.
Budget for change, not just for go live
The form you design in month one is not the form you run in year two. On the platform side that is a change queue and a support arrangement. On the subscription side it is tier upgrades and add on modules. Both are ongoing, and neither is on the first quote.
What building the inspection app actually takes
If the Power App is the answer, this is the work. None of it is exotic, and the projects that go wrong are almost always the ones that skipped the first two.
Design the completed inspection before the screens
Every field, every photo, every measurement with its tolerance, and every pass or fail with a reason from a fixed list. Agreeing this with the people who inspect is the single highest return hour in the project, and skipping it is why apps get rebuilt.
Decide the offline strategy on day one
Which records travel with the device, what happens to a submission queued for six hours, and what the app does when two people edited the same asset. Offline designed in from the first screen is dependable. Offline added after the app works on office wifi is a rewrite wearing a smaller name.
Build the photo pipeline deliberately
Resolution caps and compression at capture, a storage target chosen for cost rather than convenience, thumbnails for the list views, and sync behaviour that does not strand an inspector on a weak connection. Photos are the difference between an app that works in a demo and one that works on a site.
Point it at real records
Inspecting against the actual account, site, and asset in Dataverse is what turns a pile of submissions into a service history. It also means the data cleanup happens before go live rather than being discovered in month four.
Close the loop back into the business
A failed check that raises a case or a follow up work order, a report that reaches the customer, a dashboard that shows which sites keep failing. This is the part the standalone tools cannot do without an integration, so it is the part worth building properly.
Roll out to the inspectors, not to the software
The app has to be faster than the clipboard it replaces, not more thorough. Training in a van rather than a meeting room, big touch targets for gloved hands and bright sun, and somebody who answers the phone in the first fortnight.
If the inspections are part of a scheduled field operation rather than a standalone round, the related question is which platform runs the schedule, which we cover in Dynamics 365 Field Service against dedicated scheduling software, and you can see a delivered build in our field service case study for a European manufacturer.
How Solzet builds inspection apps
For completeness, our side of the comparison stated plainly, so you can hold it against whatever a vendor sales team offers you.
We scope the inspection before we build anything
Sessions with the people who actually inspect, capturing what a complete record has to contain and which parts are mandatory. That document is the specification, and it is also what tells us honestly whether you need a build at all.
We build on Dataverse so the result has somewhere to go
Accounts, sites, and assets modelled properly, inspections related to them, and Power Automate closing the loop into cases, work orders, and notifications. The value is not the form, it is that the form is connected to the rest of the business.
We treat offline and photos as architecture
Offline behaviour and the photo pipeline are decided at design time, including where images are stored and what that costs at volume. These are the two things that decide whether an inspection app survives contact with a real site.
We write custom controls when the standard ones run out
Custom PCF components in TypeScript and React are our specialty, so an annotated diagram, a specialised measurement input, or a markup surface is ordinary work for us rather than a reason to change the process to suit the tool.
We build on proper solution lifecycle management
Separate development, test, and production environments, changes made in unmanaged solutions and promoted as managed ones, so a change can be reviewed and rolled back instead of edited live. It is also the only way ongoing support means anything, since you cannot support what you cannot version.
We stay inside our scope and say where it ends
We deliver Dynamics 365 Customer Engagement and the Power Platform: Sales, Customer Service, Field Service, and Customer Insights on Dataverse, plus Power Apps, Power Automate, and PCF. We do not implement Microsoft finance and operations products, so where an inspection has to reach invoicing or the ledger we scope the integration to whichever finance system you run rather than claiming the whole stack.
Certified engineers in one time zone
We deliver from a single hub in Yerevan, Armenia, at GMT+4, a working day that overlaps Western European hours and reaches into the US morning. Our engineers hold Microsoft certifications including PL-200, PL-400, and PL-600 for the Power Platform, and MB-240 for Field Service.
More detail is on our Power Platform consulting page, the custom control work under PCF controls development, and the operational context for equipment heavy inspection on our manufacturing industry page.
Frequently Asked Questions
We were quoted forty thousand dollars for a site inspection app with photos. Is there a cheaper way?
Usually yes. A bespoke native app is expensive because you are paying for two mobile codebases, sign in and permissions, an offline sync engine, a photo upload pipeline, a backend with hosting and backups, app store distribution, and the maintenance of all of it. Low code platforms are cheaper because somebody else already built those parts and amortised them across every customer. The two realistic cheaper routes are a standalone inspection platform such as Fulcrum, AppSheet, or Jotform on a per user subscription with no build, or a custom Power App on Dataverse, which has a real but much smaller build cost. Which is cheaper for you depends almost entirely on what has to happen to the inspection after it is submitted.
Is Power Apps or a tool like Fulcrum cheaper for an inspection app?
For a small team collecting self contained inspections, the standalone tool is cheaper and we would say so on a call. There is no build, and a per user subscription for ten inspectors is a modest number. The arithmetic changes on two axes. The first is headcount and time: a subscription is a cost per person per month forever, including the office staff who only read results, while a build is paid once. The second is integration: if the inspection has to reach a customer record, an asset, or a work order, the standalone tool needs a sync you own permanently, and that cost never appears in the original comparison. We deliberately do not publish other vendors prices, since they change and quoting them would only mislead you. Compare three years of every seat against a build plus a change budget, and the answer is usually obvious.
Can a Power App work offline and still capture photos?
Yes, and it is a design decision rather than a switch. Canvas apps can cache the data an inspector needs on the device, queue submissions made with no signal, and sync when the connection returns, and Microsoft has shipped an offline first mode for canvas apps on Dataverse. Model driven mobile uses offline profiles that define which records travel with the device. Photos work the same way: they are captured and held locally and uploaded when there is signal. The honest caveat is that offline has to be designed in from the first screen. An app built and tested on office wifi and then asked to work in a basement plant room is close to a rewrite, and that is the most common reason a Power Apps inspection pilot disappoints. Products built for field capture, Fulcrum most obviously, are offline first out of the box, which is a real advantage of that column.
Where do the photos actually get stored, and what does that cost?
On a Power App you choose, and the choice matters at volume. Dataverse file and image columns are the simplest option and consume metered file capacity. Storing images in SharePoint or Azure Blob Storage and keeping the reference in Dataverse is usually significantly cheaper once inspections run into the thousands, which is why we decide this before the first one is captured rather than after. It is also worth capping resolution and compressing at capture, because a twenty photo inspection at full phone resolution is a slow sync on a weak connection regardless of platform. On the standalone products, storage is included up to the tier you are on and you upgrade when you exceed it, which is simpler and out of your hands.
Do we need extra Power Apps licences if we already have Dynamics 365?
Possibly not, and this is the line item that most often changes the answer. Enterprise Dynamics 365 licences include use rights for custom Power Apps used within the context of that Dynamics 365 application, so an inspection app that genuinely belongs to your Field Service or Customer Service deployment can carry a much smaller incremental cost than a new per user subscription for everyone. Microsoft 365 licences include limited Power Apps rights over Microsoft 365 data sources, which do not extend to Dataverse or premium connectors. The boundaries of what counts as within the context of an application are specific and Microsoft revises the terms, so check the current licensing guide rather than taking any page, including this one, as the final word. We will always walk through it with you rather than quote a licence you may not need.
How does the inspection connect to Dynamics 365 or Dataverse?
It does not connect, it is already there. A Power App writes to the same Dataverse that holds your accounts, contacts, cases, assets, and work orders, so an inspection is a related record against the real asset rather than a submission in another system carrying a typed site name. That is what makes the follow up automatic: a failed check can raise a case or a follow up work order through Power Automate with nobody rekeying anything, the service history is complete when the next inspector arrives, and Power BI can join inspection data to sales and service data in one model. With a standalone platform this is an integration, and integrations are cheap to start and permanent to own.
How long does it take to build an inspection app on Power Apps?
A straightforward capture form with photos writing into Dataverse is days rather than months. What extends it is the same list every time: inspecting against real asset and site records, offline behaviour designed properly, a photo pipeline that survives a weak connection, conditional sections that change with the asset type, and the automation that turns a failed check into a job. We would rather phase it than quote a single large number: get inspectors off paper first with a form that works offline, then connect the results into cases and work orders, then add reporting. Each phase is usable on its own and proves itself before the next is funded.
We started on a standalone tool. Can we move to Power Apps later?
Yes, and starting there is not a mistake you have to apologise for. You arrive with something more valuable than the tool you leave: a form design that has been used rather than imagined, a real history of inspections, and a team already working to it. The migration is mostly sites, assets, and historical submissions into Dataverse, plus rebuilding the form properly against real records rather than transplanting it field for field. The photo history is usually the fiddliest part and it is a solved problem. We also take over half built Power Apps that another developer started and left, which is a different exercise and a common one.
Send us the quote you are holding
Tell us what the inspection has to capture, how many people will use it, and what is meant to happen after it is submitted. You will get a straight answer about whether a Power App is cheaper for you, including the answer where a subscription product is the better buy. Solzet is a Dynamics 365 Customer Engagement and Power Platform consultancy in Yerevan, Armenia, working with clients and Microsoft partners across Europe and the US.