// cairn labs · cost guard + deployment preflight · prototype

ExpenseClaims v1.0.0.5 · UNMANAGED

Generated Sun, 12 Jul 2026 19:20:32 GMT · Assumptions: 25 app users, 5 flow-only users · UK list prices 2026-07-12
3
connectors
1+HTTP
premium dependencies
2
cloud flows
8
preflight findings
£0.00
cheapest compliant / month

Connector licence tiers

ConnectorIdTier
SharePointshared_sharepointonlinestandard
SQL Servershared_sqlpremium
Office 365 Outlookshared_office365standard
HTTP action (in-flow)Httppremium feature

Licence scenarios — “cheapest compliant architecture”

ScenarioEst. monthlyBasisNotes
A — Per-user Premium (everyone licensed)£442.5025 app users × £15.40 (Power Apps Premium) + 5 flow-only users × £11.50Simplest and most flexible; unlimited apps per user.
B — Per-process flows + standard app data£76.901 premium flow(s) × £76.90 per-process; app itself refactored to standard connectors onlyOnly compliant if the APP uses no premium connectors — premium work moves into per-process flows any user can trigger.
C — Refactor to standard connectors cheapest£0.00Replace premium dependencies (see recommendations) — runs on existing M365 seeded licences£0 additional licences. Viability depends on data volume/relational needs.

Architecture recommendations

SQL Server is the costliest dependency here: for <~5k rows and simple relations, SharePoint lists (standard) may suffice; for relational needs, compare Dataverse (premium but included in scenario A) vs SQL + gateway.
HTTP action is premium: if calling an internal API, an Azure Function behind a custom connector doesn't avoid premium — but reshaping the integration through standard connectors (e.g. SharePoint/Outlook events) might.
Unmanaged solution: fine for dev, do not deploy unmanaged to production (preflight finding P1).

Deployment preflight — 8 finding(s)

SevCodeFindingFix
highPF-001Solution is UNMANAGED — importing unmanaged to production prevents clean upgrades/removal.Export as managed for production; keep unmanaged for dev only.
mediumPF-002Connection reference 'SharePoint - Expenses' (SharePoint) has no bound connection — import will prompt or flows will be off.Pre-create connections in target + bind via deployment settings file.
mediumPF-002Connection reference 'Finance SQL (prod)' (SQL Server) has no bound connection — import will prompt or flows will be off.Pre-create connections in target + bind via deployment settings file.
highPF-003Environment variable 'Finance API Base URL' has neither default nor current value — dependent components will fail at runtime.Provide value via deployment settings file at import.
highPF-005Flow 'Process expense claim' contains hard-coded URL: https://finance.contoso-internal.com/api/claimsMove to an environment variable.
mediumPF-006Flow 'Process expense claim' contains hard-coded email: [email protected]Move to an environment variable or security-group lookup.
lowPF-007Flow 'Process expense claim' contains 1 hard-coded GUID(s) (first: c7d1f2e3-88aa-4b1c-9f3e-2a6b5d4c3f21) — likely environment-specific IDs.Replace with environment variables (data source type where applicable).
mediumPF-004Flow 'Weekly expense digest' state is 'Draft' — it will be OFF after import.Turn on post-import (pipeline step) or fix state before export.

Flows

FlowStateTriggerConnectorsPremium?
Process expense claimActivatedWhen_a_claim_is_submittedshared_sql, shared_office365yes
Weekly expense digestDraftRecurrence_weeklyshared_sharepointonlineno
Cairn Labs · labs.cairnautomation.co.uk · Planning guidance with recorded assumptions — not legal or licensing advice. Prices are UK list (ex-VAT, annual billing) and change; verify against the Microsoft Power Platform Licensing Guide before quoting.