MARRINN

Simple · Powerful

Marrinn · The architecture · The Lens

The Lens.

Where the records become an answer. Dashboards, scheduled board packs, and plain-English querying that respects row-level security — so the answer a person gets is bounded by what that person is allowed to see, not filtered afterwards.

Ask in plain EnglishDescribed, then translated into a real query
Bounded, not filteredThe answer is scoped before it is computed
One query languageThe same one behind saved views
Live on loadWidgets re-run rather than going stale
01A worked example

One question, asked by four different people.

Every reporting tool can answer a question. The interesting problem is that the same question has four correct answers in one company, depending on who is asking — and getting that wrong is not a reporting bug, it is a disclosure.

The question below is the most ordinary one a business asks. Four people ask it on the same morning, in the same words, and each one is entitled to a different answer.

Worked example · Reporting

“What is at risk this month?”

Nobody types a field name. Each person describes what they want, and what comes back is bounded by their own role and the projects they are on — computed that way, rather than computed in full and then trimmed on the way out.

Who is asking, and what they may see
  • The chief executiveEverythingEvery project, every client, every number in the workspace.
  • A project leadOne projectTheir own delivery, and the audit events scoped to that project.
  • FinanceThe ledger, not the peopleInvoices, expenses and journals. Not the HR file sitting beside them.
  • An external partnerThe one project they are onA guest, on a single engagement, with nothing either side of it.
What The Lens returns

Four answers, all of them correct

The plain-English question is translated into a real query, which you can read and edit before it runs. It then runs under the permissions of the person who asked. The partner does not receive a smaller version of the executive’s answer. They receive their own answer, and the rows they may not see are not in it.

Filtering afterwards is how numbers leak. A dashboard that computes the whole figure and then hides the rows it should not show has already assembled the thing it was hiding. Bounding the query is a different mechanism from bounding the display, and only one of them survives a screenshot.

The board pack stops being assembled by hand

The reason a pack takes days is that somebody rebuilds it every month. Widgets are backed by queries that re-run when the page loads, so a pack written against relative dates and open sprints reports the current state without anyone editing it.

Nobody has to learn the field names

Describe the query — high priority bugs assigned to me and untouched for two weeks — and it is translated into the real thing. The translation is best effort and stays editable, so you check it rather than trust it, particularly on dates and names.

The number on the board matches the team’s screen

Leadership and delivery disagree about a figure when they are looking at two systems. The filter behind a team’s saved view is the same query that powers the leadership widget, so there is one definition of open work rather than two.

You can hand a partner a dashboard

Giving an outside collaborator a view usually means exporting a slice and emailing it, which is a copy you no longer control. A guest role on one project means they open the live thing and see exactly their part of it.

02How it holds

A dashboard is a question you stopped re-asking.

A report is a thing somebody makes. A widget is a question somebody wrote down once. The difference matters at the end of the quarter, when the first one needs a person and a day and the second one needs a page load.

Language

A query language, not a filter box

Fields, operators and functions, so a query can say what a filter panel cannot — work in open sprints, blocked by something, untouched for fourteen days, above an estimate.

Translation

Plain English into that language

Describe it and the query is written for you, then left in an editable box. Date arithmetic is approximated and names are matched loosely, which is exactly why you get to read it first.

Widgets

Five ways to render an answer

A counter for a headline figure, bars for a comparison, a donut for composition, a line for a trend, and a table for the actual items behind the number.

Freshness

Re-run, not cached

Widgets run their query on load. A dashboard built on relative dates reports today without anyone opening it to change a date range.

Exactness

Server-side totals

A project summary is computed on the server against the whole project rather than a sampled page, so the count is exact even when the project is large.

Cadence

Reports that arrive

Progress reports and digests go out on a schedule to the people who own the goal, so the weekly read is something that turns up rather than something somebody remembers to send.

03The other six

Seven parts, one operating system.

Read the seven from the bottom and it is an operating system: a kernel, a data model, memory, a way to see, processes that do work, a place those processes meet people, and ports to everything outside.

The Lens is one of seven parts.

It sits above the memory: the kernel is the model you choose, the core is every module on one data model, The Memory is what they all agree on, and the ports are how it reaches the software you already run.

See all seven parts → Book a demo