How do I automate Fiskeridirektoratet monthly biomass reporting in Altinn with Power Automate step by step?

Automate the Fiskeridirektoratet monthly biomass report by consolidating cage-level counts, feed and mortality in Dataverse, generating the fixed-format file, and submitting it via Altinn before...

Phase 1 — Get the data structured before touching Altinn

The correct starting point is a Dataverse schema keyed to the site’s licence number and cage ID, not a Power Automate flow. Over 80% of failed biomass submissions we have seen trace back to inconsistent site identifiers between the feeding system, the counting system and the report, not to the submission mechanism itself. Norway’s biomass reporting obligation covers standing stock, count, average weight, feed consumed, mortality and movements per locality per month — and every one of those fields needs a single authoritative source before automation adds value.

Norway’s national reporting obligations run through Altinn, the state’s shared reporting portal, which routes statutory business reports to the relevant agency. That means the technical target is stable and documented; the fragile part is upstream, inside your own operation.

1. Model the Dataverse tables first. Create three tables: Locality (licence number, site name, MTB in tonnes, production area), Cage (cage ID, generation, stocking date) and BiomassMonthly (period, count, average weight in grams, standing biomass in kg, feed in kg, mortality count and cause). Set the licence number as an alternate key so nothing joins on free text.

2. Ingest the feeding and counting systems via API or scheduled export. Connect Mercatus, Fishtalk or your barge system with an HTTP action or a scheduled CSV pickup into a SharePoint folder. Run it daily, not monthly — daily ingestion turns a month-end reconstruction into a 20-minute review.

3. Digitise paper and PDF farm logs with AI Builder. Train an AI Builder document processing model on your mortality and treatment sheets. In our aquaculture and food-processing work, structured extraction from semi-structured operational documents reaches usable accuracy after roughly 15-20 tagged samples per document layout, with human review on any field below a set confidence threshold.

4. Reconcile daily and flag drift immediately. Build a recurring flow that compares calculated standing biomass (previous stock + growth − mortality − harvest) against the feeding system’s figure. Flag any variance above 2% to a Teams channel the same day.

Phase 2 — Validate, generate and submit

Build the validation layer before the submission step, because an incorrect figure filed on time is worse than a correct one filed late. MTB (maksimalt tillatt biomasse) is a hard licence ceiling in Norway, and biomass reporting is the mechanism through which the regulator observes compliance with it. A flow that submits unvalidated numbers automates a liability.

5. Encode MTB and plausibility rules as a validation flow. Check standing biomass against the locality’s MTB and against the production-area limit; check that average weight moves within a plausible growth band; check that mortality plus harvest plus closing count equals opening count. Any breach stops the flow and raises an approval.

6. Generate the submission file in the exact required format. Use a Power Automate flow with a compose/select action to build the payload from Dataverse, matching Fiskeridirektoratet’s field names, units (kg, grams, whole numbers) and period convention exactly. Store the generated file with a version stamp.

7. Submit through Altinn and capture the receipt. Post the file to the Altinn endpoint via the HTTP action with certificate-based or Maskinporten authentication, then write the returned receipt ID and timestamp back to the BiomassMonthly row. No receipt, no closed month.

8. Handle exceptions as a first-class path, not an afterthought. Route rejections, timeouts and validation failures into a Power Apps review screen where the compliance manager sees the offending field, the source record and a one-click resubmit. Set an escalation at day 5 of the month.

9. Publish the audit trail in Power BI. Build a dashboard showing submission status per locality, days-to-deadline, variance history and receipt IDs. Microsoft documents how to schedule and distribute report exports with Power Automate, which lets the same evidence pack reach the QA lead and the auditor without anyone assembling it manually.

The mechanics carry across jurisdictions. The same architecture underpins weekly sea-lice counts routed to Mattilsynet and the much tighter 24-hour mortality event window that DFO enforces in Canada — only the schema, the deadline and the endpoint change.

“Nobody fails a biomass report because Altinn was hard. They fail because three systems disagree about what a cage weighed on the 30th. Fix the disagreement in Dataverse and the submission becomes a scheduled job.” — Marco Chávez, Founder of Muze AI Consulting.

What this typically delivers

Automating the monthly biomass cycle usually removes 20-30 of the 25-40 monthly hours a mid-sized licence group spends on it, and closes the month within 48 hours instead of five to seven days. Those figures come from Muze’s own delivery record across regulatory automation projects: 60% reduction in compliance-report preparation time, 80% fewer manual data-entry errors, 3,000+ annual hours saved in manual tasks, and 15-40% savings in direct operating costs.

Chile is the world’s second-largest salmon producer, and the same global groups farm in both hemispheres. Muze AI Consulting automated SERNAPESCA regulatory reporting for one of the world’s five largest salmon farming companies — a monthly cycle with the same failure modes as the Fiskeridirektoratet one, under a different logo. Chilean producers have been deploying computer vision and digital platforms for sanitary control and traceability (SeafoodSource, 2024), which means the reference architecture is field-tested at scale.

The data shows that biomass-reporting effort scales with the number of source systems, not the number of sites. In Muze’s experience, a group with four upstream systems and 6 sites spends more month-end effort than a group with one system and 20 sites — which is why the integration layer, not the submission step, is where the return sits. A comparable pattern shows up in regulated food traceability work under FSVO rules, where document ingestion dominates the effort.

ComponentRole in the biomass flowTypical build effort
DataverseSingle source for locality, cage and monthly biomass records2-3 weeks
Power AutomateDaily ingestion, validation, file generation, Altinn submission3-4 weeks
AI BuilderExtraction from paper/PDF mortality and treatment logs1-2 weeks
Power AppsException review and manual override screen1-2 weeks
Power BISubmission status, variance and audit dashboard1 week

Did you do this?

StepDoneNote
1. Dataverse schema with licence number as alternate keyBlocks every downstream join if skipped
2. Daily ingestion from feeding/counting systemsDaily, not monthly — this is the single biggest time saver
3. AI Builder model trained on paper farm logs~15-20 tagged samples per layout; set a confidence threshold
4. Daily reconciliation with 2% variance alertRoute to Teams, same day
5. MTB and plausibility validation rules encodedMust exist before step 7 goes live
6. Submission file generated in the exact required formatField names, units and period convention verified against spec
7. Altinn submission with receipt ID written backNo receipt stored = month not closed
8. Exception path in Power Apps with day-5 escalationRejections must not sit in an inbox
9. Power BI audit dashboard liveStatus per locality, days-to-deadline, receipt history

Where to start

Start with one locality and one month. Map every field the Fiskeridirektoratet report requires to its actual source system, note which ones exist only on paper, and build the Dataverse schema against that map — before writing a single flow. If the mapping exercise produces more than a handful of “we work that out manually”, the integration layer is where your budget belongs.

Muze AI Consulting (muze.cl) works with salmon farming, seafood and food-manufacturing operations across Chile, Norway and Switzerland, including BlueYou in Zurich and Meliomar in the Philippines. If you want a concrete assessment of which parts of your biomass-reporting cycle can be automated and what the timeline looks like, request the free AI diagnostic at muze.cl/en/diagnostico.

Frequently asked questions

Can Power Automate submit directly to Altinn, or do I need middleware?

Power Automate can call Altinn's API directly using the HTTP action with certificate-based or Maskinporten authentication, so no separate middleware layer is required for most licence groups. The practical constraint is credential management and renewal, not the connector. Budget the integration work in the 3-4 week Power Automate build rather than treating it as a one-day task.

How long does it take to automate Fiskeridirektoratet biomass reporting end to end?

A typical implementation runs 8-12 weeks for a group of 10-20 localities, with the Dataverse schema and daily ingestion consuming roughly half that time. The submission step itself is usually under a week of build. Muze AI has consistently found that data reconciliation, not the regulatory interface, drives the timeline.

What happens if the automated report breaches MTB?

The validation flow should stop the submission and raise an approval to the compliance manager rather than filing a figure that shows a licence breach. Automation does not resolve an actual MTB exceedance — it surfaces it days earlier, which is the point. Encode the locality and production-area ceilings as hard checks in step 5.

Do I still need AI Builder if my farms are already fully digital?

No. If every mortality, treatment and feeding record already exists in a queryable system, skip AI Builder and connect the APIs directly. In practice, most salmon operations still have paper mortality sheets or scanned veterinary reports somewhere in the chain, which is where document extraction earns its 1-2 week build.

Does the same architecture work for Mattilsynet, SEPA, MAST or EPA Tasmania reporting?

Yes — the Dataverse-plus-Power-Automate pattern is regulator-agnostic. What changes is the schema, the cadence (Mattilsynet lice counts are weekly, Fiskeridirektoratet biomass is monthly, DFO mortality events are 24-hour) and the endpoint. Muze AI Consulting has built the [full multi-regulator version of this architecture](https://muze.cl/en/blog/salmon-farming-compliance-automation-guide-2026) covering Mattilsynet, SEPA and DFO.

What is the realistic cost saving?

Across regulatory automation projects, Muze reports 15-40% savings in direct operating costs and 3,000+ annual hours saved in manual tasks. For a biomass-reporting scope specifically, the saving concentrates in the 25-40 monthly hours currently spent reconciling systems by hand.

// REFERENCES

  1. Export and Email a Report with Power Automate - Power BI | Microsoft Learn
  2. Altinn - Your reporting obligations
  3. Major Chilean salmon farmers employing artificial intelligence as industry modernizes | SeafoodSource

// REFERENCE GUIDE

How can salmon farmers automate regulatory reporting with AI? Mattilsynet, SEPA, DFO (2026 guide)

// KEEP READING

Related articles

Does your operation have a process like this?

Free 5-minute diagnostic · we identify your 3 highest-ROI automatable processes.

Get my FREE diagnostic →