# miara — price the next job from your own evidenced deliveries

> Price the next job from the last four.

Agent leverage broke every estimate you had. miara rebuilds your unit of
estimation out of the only honest material available — your own recent,
evidenced, shipped work. Ranges only, never point estimates. Your history
only — never pooled.

- Canonical page: https://dirahq.sh/miara
- Part of: letopis — https://dirahq.sh/letopis
- Status: after dira and zavet in the suite roadmap

## The centrepiece: the refusal

Below three confirmed comparables, miara returns **no number at all** — not
a lower-confidence answer, not a wider band, nothing. That is the brand, not
an error state.

Example, a new client with a payments deliverable:

```
No range available
n         2 confirmed comparables (need 3)
dropped   2 at 750 · 2 unhallmarked
missing   no 999 payments work in history

Quote this one on judgement. Deliver it with zavet in the repo, and the
next payments job has its first 999 comparable.
```

fixed price: `€ —` · margin: `quoted on judgement`

Every other estimation tool answers whatever you ask it — that's why nobody
trusts the answer. With fewer than three confirmed comparables, miara
returns no number at all, just the shortest path to being able to answer
next time.

- **Always with n and spread** — a range from three jobs is not a range from
  twelve, and it says so.
- **A refusal is actionable** — it names the missing history, not an
  apology.

Silence is a feature, not a gap.

## The problem

Software estimation lost its unit. Leverage varies tenfold by work type, and
gut feel calibrated on pre-agent velocity is dead. You are mispricing in both
directions and can't tell which.

- **Hourly — shrinking base.** Honest engaged hours fall as leverage rises.
  Accurate tracking alone makes you provably cheaper — the insurance-product
  trap. `2024 40h × €75 = €3,000` → `2026 12h × €75 = €900`.
- **Fixed-price — guesswork.** The right model for the agent era, and
  nobody can size it. Leverage on a CRUD screen is nothing like leverage on
  a migration. Same €4k quote → 3h of work, or 34h.
- **The replacement — your history.** The only honest unit left is what
  *you* recently shipped, with evidence attached — exactly and only what
  dira already holds. Last 4 similar → 2.1 – 4.8h engaged.

## Three objects

You pick the comparables. Miara does the arithmetic.

1. **Deliverable — declared up front.** The quotable unit, named at quote
   time and bound to evidence by repo, branch and PR. Your invoice lines
   already group work after the fact; a deliverable is the same grouping,
   declared before. `"CSV import w/ column mapping"` · `acme/api ·
   feat/csv-import`.
2. **Comparable — you confirm.** A past deliverable you confirm as similar.
   miara suggests candidates from anchored commit messages, diff shape,
   repo and client — and never auto-selects a single one. e.g. accepted:
   XLSX import (3.4h), Bulk contact upload (2.2h); rejected: Stripe
   webhooks.
3. **Evidenced range — n ≥ 3 or nothing.** Computed only from confirmed
   comparables, always shown with n and spread. Below three, miara refuses
   to speak, and tells you precisely which history is missing. Last 4
   similar: 2.1 – 4.8h engaged · 19 – 31h agent · ~€6 compute.

## Sample quote — the widget

A live quote for "CSV import with column mapping" (Northwind Ltd), gated by
an evidence floor toggle (`any` / `750+` / `999`):

| Evidence floor | engaged | agent | compute | n | spread | fixed price | margin |
| --- | --- | --- | --- | --- | --- | --- | --- |
| any | 1.6 – 7.4h | 14 – 46h | ~€9 | 6 confirmed comparables | 3.1× | €1,800 | 34 – 88% |
| 750+ | 2.1 – 4.8h | 19 – 31h | ~€6 | 4 confirmed comparables | 2.3× | €1,800 | 62 – 81% |
| 999 | — | — | — | 2 confirmed (need 3) | — | € — | quoted on judgement |

Tightening the evidence floor narrows the comparable set and the spread —
picking `999` on this quote drops below three confirmed comparables and
returns the refusal card above instead of a number.

## The flow

Quote, deliver, grade yourself. A quoting surface that sits next to your
invoices, sharing the same clients — because the evidence it needs is
already there.

1. **Describe** — name the deliverable and the client. One sentence.
2. **Confirm** — accept or reject each suggested comparable yourself.
3. **Range** — engaged, agent and compute, with n and spread attached.
4. **Price** — set a number and watch live margin against evidenced cost.
5. **Calibrate** — sessions attach automatically. Quoted vs actual, forever.

## Calibration — the moat

miara grades itself, visibly. Every delivered quote is scored against what
actually happened. Hit-rate over time, drift by client and by work type —
self-grading estimation tools simply do not exist in this market. Ten
calibrated quotes in, your pricing history is an asset that exists nowhere
else.

- **Hit-rate** — how often the actual landed inside the quoted range.
- **Drift** — which clients and which work types you consistently misjudge.
- **Why capture stays on** — switch dira off and your next quote gets
  worse.

Last 10 delivered quotes: **80% inside the quoted range**.

| Deliverable | Quoted band | Actual | Hit |
| --- | --- | --- | --- |
| CSV import | on band | 3.9h | yes |
| Auth rework | on band | 6.2h | yes |
| Schema migration | missed band | 11.4h | no |
| Admin table UI | on band | 2.8h | yes |
| Webhook retries | on band | 7.1h | yes |

drift: migrations under-quoted 2 of 2. Below ~70% after ten quotes, the
model is wrong — and we'd rather you knew.

## What miara never does

No product in the suite ever states an opinion — only records that can be
checked. Three refusals, permanently:

- **No point estimates** — a single number implies a confidence nobody has.
  Ranges only, with n and spread.
- **No estimate below three comparables** — not a lower-confidence answer.
  No answer.
- **No cross-tenant pooling** — your leverage isn't their leverage. Pooling
  is both a privacy problem and a lie.

## Interlock with proba

Where hallmarks exist, fineness becomes a comparability filter: two engaged
hours at 585 with inferred authorship is not the same commodity as two
hours at 750 under heavy supervision. Optional, purely additive — miara
works without it. Example: comparables filtered to 750+ takes n from 6 to
4 and spread from 3.1× to 2.3×.

See also [/proba.md](https://dirahq.sh/proba.md).

## The European AI Act

miara has no compliance obligation of its own — it prices work. But
governed work costs more hours than ungoverned work, and somebody is
currently absorbing that difference as lost margin. Two real connections,
and no more than two:

- **Fineness floor** — filter comparables to 750+ and you are quoting only
  from deliveries whose oversight was actually evidenced. Fewer
  comparables, tighter spread — and the price of properly governed work
  stops being a guess.
- **Governance is billable** — the engaged hours that review, decision
  records and supervision add are in the range, itemised, next to the agent
  hours. A regulated client sees what the diligence costs instead of you
  quietly eating it.

And what miara will not do is price a compliance programme it has no
comparables for. Below three confirmed similar deliveries it returns no
number at all — which, for a category this new, will be the honest answer
for a while yet. Full article-by-article mapping:
[/letopis-ai-act.md](https://dirahq.sh/letopis-ai-act.md).

## Where it lives

Inside dira cloud, next to the invoices. Not a separate product to buy,
learn, and reconcile — the same clients, the same evidence, one tab over.

- **Personal · free** — local tracking and offline reports stay free
  forever. No quoting, no calibration.
- **Workspace — miara lives here.** Quoting, evidenced ranges and
  calibration — the honest answer to "why would I upgrade from free."
- **Already accruing** — invoice lines record their deliverable grouping
  today, so miara ships with calibrated history, not a cold start.

---

Every hour dira captures today is a comparable miara prices from tomorrow.
See also [/index.md](https://dirahq.sh/index.md),
[/zavet.md](https://dirahq.sh/zavet.md),
[/proba.md](https://dirahq.sh/proba.md).
