Mintos • ESTO AS
P2P marketplace
ESTO AS
ESTO AS lets people in Estonia pay for purchases in instalments, online and in shops. Mintos investors lend it money and earn interest. Our memo scores it 70 out of 100, a B, and puts the chance it fails to pay within a year at about 2%.
Key project data
Average Rate
6.94%
Outstanding Investments
28.8M EUR
Would AI invest?
70/100
1
100
AI-Generated Overview
AI project overview
Condensed summary based on project data
<style>
/* All styles are scoped to .ci-memo so the block can be pasted into any page without clashing with the site’s CSS. */
.ci-memo{
--ink:#16252b; --ink-2:#4a5a60; --ink-3:#6f7d82; --line:#dfe7e9; --soft:#f3f7f8; --paper:#ffffff; --brand:#12505f; --brand-2:#0f7ea0;
--ok:#2e8b57; --ok-bg:#e6f4ec; --wt:#b7791f; --wt-bg:#fdf3e1; --bd:#c0392b; --bd-bg:#fbe9e7;
--gA:#2e8b57; --gB:#7cb342; --gC:#d9a21b; --gD:#e0773c; --gE:#c0392b;
font-family: system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
color:var(--ink); background:var(--paper); line-height:1.55; font-size:16px;
max-width:1040px; margin:0 auto; padding:24px 20px 48px; box-sizing:border-box;
-webkit-text-size-adjust:100%;
}
.ci-memo *,.ci-memo *::before,.ci-memo *::after{box-sizing:inherit}
.ci-memo h1,.ci-memo h2,.ci-memo h3{line-height:1.2;margin:0;color:var(--ink);font-weight:700;letter-spacing:-.01em}
.ci-memo h1{font-size:clamp(1.6rem,4.2vw,2.35rem)}
.ci-memo h2{font-size:clamp(1.25rem,3vw,1.55rem)}
.ci-memo h3{font-size:1.05rem}
.ci-memo p{margin:.6em 0}
.ci-memo a{color:var(--brand-2);text-underline-offset:2px}
.ci-memo .kicker{font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--brand);font-weight:700}
.ci-memo .muted{color:var(--ink-2)}
.ci-memo .small{font-size:.86rem;color:var(--ink-3)}
.ci-memo .tabnum{font-variant-numeric:tabular-nums}
/* header */
.ci-memo .hero{border-bottom:3px solid var(--brand);padding-bottom:18px;margin-bottom:18px}
.ci-memo .hero h1{margin:.3em 0 .35em}
.ci-memo .meta{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:.85rem;color:var(--ink-3)}
.ci-memo .chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;padding:3px 10px;font-size:.8rem;background:var(--soft);color:var(--ink-2);max-width:100%}
/* disclaimer */
.ci-memo .nfa{border:2px solid var(--bd);background:var(--bd-bg);border-radius:12px;padding:12px 16px;margin:16px 0;font-size:.9rem}
.ci-memo .nfa strong{color:var(--bd);letter-spacing:.04em}
/* answer card */
.ci-memo .answer{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1.6fr);gap:18px;background:var(--soft);border:1px solid var(--line);border-radius:18px;padding:20px;margin:20px 0}
.ci-memo .score{background:var(--paper);border-radius:14px;padding:18px;border:1px solid var(--line);display:flex;flex-direction:column;gap:12px}
.ci-memo .score .big{display:flex;align-items:baseline;gap:8px}
.ci-memo .score .big b{font-size:3.4rem;line-height:1;color:var(--ink)}
.ci-memo .score .big span{color:var(--ink-3)}
.ci-memo .grade{display:inline-flex;align-items:center;gap:8px;font-weight:700;border-radius:8px;padding:4px 10px;background:#fbf1d6;color:#7a5a00;width:max-content;max-width:100%}
.ci-memo .grade i{flex:0 0 auto;width:22px;height:22px;border-radius:6px;background:var(--gC);color:#fff;font-style:normal;display:grid;place-items:center;font-size:.85rem}
/* Per-grade badge colours. Until 9 October 2026 `.grade i` hard-coded var(--gC), so a
non-C memo rendered its badge in C's gold unless its body carried an inline override.
Four published memos were wrong that way (EIZ D, MK Kredit D, Imagina D, ESTO B) and
seven carried ad-hoc overrides in five different palettes for three grades. The
template owns it now; bodies carry only `class="grade gX"`. Values are the plurality
of what was already published (D from creditstar/jetfinance, E from idfinance/luma/
solva, C the long-standing default); A and B are new and were contrast-checked.
Every pair clears WCAG AA for body text: A 7.02, B 6.01, C 5.67, D 6.01, E 6.45. */
.ci-memo .grade.gA{background:#e8f4ed;color:#1e5c3a}
.ci-memo .grade.gB{background:#f0f6e6;color:#44661f}
.ci-memo .grade.gC{background:#fbf1d6;color:#7a5a00}
.ci-memo .grade.gD{background:#fdeee4;color:#8a4a22}
.ci-memo .grade.gE{background:#fbe9e7;color:#9b2c20}
.ci-memo .grade.gA i{background:var(--gA)}
.ci-memo .grade.gB i{background:var(--gB)}
.ci-memo .grade.gC i{background:var(--gC)}
.ci-memo .grade.gD i{background:var(--gD)}
.ci-memo .grade.gE i{background:var(--gE)}
.ci-memo .scale{display:grid;grid-template-columns:repeat(5,1fr);gap:3px;margin-top:6px}
.ci-memo .scale div{height:10px;border-radius:3px}
.ci-memo .scale-l{display:grid;grid-template-columns:repeat(5,1fr);font-size:.72rem;color:var(--ink-3);text-align:center;margin-top:2px}
.ci-memo .scale .on{outline:3px solid var(--ink);outline-offset:1px}
.ci-memo .odds{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ci-memo .odd{border-radius:12px;padding:12px;background:var(--soft)}
.ci-memo .odd b{display:block;font-size:1.55rem;line-height:1.1}
.ci-memo .odd span{font-size:.8rem;color:var(--ink-2)}
.ci-memo .odd.main{background:#e3f0f4;border:1px solid #bcd9e2}
.ci-memo .limit{font-size:.85rem;color:var(--ink-2);border-top:1px dashed var(--line);padding-top:10px}
.ci-memo .answer h2{font-size:clamp(1.15rem,2.6vw,1.45rem);margin-bottom:10px}
.ci-memo .subs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}
.ci-memo .sub{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:12px}
.ci-memo .sub .top{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:.82rem;color:var(--ink-2);font-weight:600}
.ci-memo .sub .top em{font-style:normal;font-weight:700;border-radius:6px;padding:1px 7px;color:#fff;font-size:.75rem}
.ci-memo .sub b{display:block;font-size:1.25rem;margin:4px 0 2px}
.ci-memo .sub p{margin:0;font-size:.84rem;color:var(--ink-2)}
.ci-memo .flags{display:grid;gap:10px;margin-top:4px}
.ci-memo .flag{border-radius:12px;padding:12px 14px;font-size:.92rem;border-left:5px solid}
.ci-memo .flag.ok{background:var(--ok-bg);border-color:var(--ok)}
.ci-memo .flag.wt{background:var(--wt-bg);border-color:var(--wt)}
.ci-memo .flag.bd{background:var(--bd-bg);border-color:var(--bd)}
.ci-memo .flag strong{display:block;margin-bottom:2px}
/* status pill */
.ci-memo .st{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;font-weight:700;border-radius:999px;padding:2px 10px;white-space:nowrap}
.ci-memo .st::before{content:"";width:8px;height:8px;border-radius:50%}
.ci-memo .st.ok{background:var(--ok-bg);color:#1f6b40}.ci-memo .st.ok::before{background:var(--ok)}
.ci-memo .st.wt{background:var(--wt-bg);color:#8a5a0c}.ci-memo .st.wt::before{background:var(--wt)}
.ci-memo .st.bd{background:var(--bd-bg);color:#9b2c20}.ci-memo .st.bd::before{background:var(--bd)}
/* glance */
.ci-memo .glance{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin:12px 0 6px}
.ci-memo .tile{border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--paper)}
.ci-memo .tile .k{font-size:.76rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);font-weight:700}
.ci-memo .tile>b{display:block;font-size:1.15rem;margin:3px 0}
.ci-memo .tile p{margin:0;font-size:.84rem;color:var(--ink-2)}
.ci-memo .band{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--brand);margin:18px 0 4px}
/* sections */
.ci-memo section{margin-top:34px}
.ci-memo .sec-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding-top:22px}
.ci-memo .sec-head .odds-chip{font-size:.85rem;font-weight:700;border-radius:10px;padding:6px 12px;color:#fff}
.ci-memo .lead{font-size:1.08rem;font-weight:600;margin:10px 0 4px}
.ci-memo .grid2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:start}
.ci-memo .card{border:1px solid var(--line);border-radius:14px;padding:16px;background:var(--paper)}
.ci-memo .card h3{margin-bottom:8px}
.ci-memo .events{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:14px 0}
.ci-memo .ev{border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--soft);display:flex;flex-direction:column;gap:6px}
.ci-memo .ev .when{font-size:.75rem;font-weight:700;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em}
.ci-memo .ev b{font-size:.98rem}
.ci-memo .ev p{margin:0;font-size:.86rem;color:var(--ink-2)}
.ci-memo .ev .st{margin-top:auto}
/* charts */
.ci-memo figure{margin:14px 0;background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:14px 14px 10px}
.ci-memo figcaption{font-weight:700;margin-bottom:8px;font-size:.98rem}
.ci-memo figcaption span{display:block;font-weight:400;font-size:.82rem;color:var(--ink-3)}
.ci-memo svg.viz{width:100%;height:auto;display:block;overflow:visible;font-family:inherit}
.ci-memo svg .lbl{font-size:13px;fill:var(--ink);font-weight:600}
.ci-memo svg .in{font-size:12px;fill:#fff;font-weight:700}
.ci-memo svg .in.dark{fill:var(--ink)}
.ci-memo svg .val{font-size:12px;fill:var(--ink);font-weight:600}
.ci-memo svg .neg{font-size:12px;fill:var(--bd);font-weight:700}
.ci-memo svg .axis{font-size:11px;fill:var(--ink-3)}
.ci-memo svg .side{font-size:12px;fill:var(--ink-2)}
.ci-memo svg .grid{stroke:#eef2f3;stroke-width:1}
.ci-memo svg .zero{stroke:#9fb0b5;stroke-width:1}
.ci-memo svg .ref{stroke:var(--ink);stroke-width:1.5;stroke-dasharray:4 3}
.ci-memo svg .s1{fill:var(--brand-2)}
.ci-memo svg .s2{fill:#9ccfdd}
.ci-memo .legend{list-style:none;padding:0;margin:8px 0 2px;display:flex;flex-wrap:wrap;gap:6px 16px;font-size:.82rem;color:var(--ink-2)}
.ci-memo .legend i{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.ci-memo details.tbl{margin-top:8px;font-size:.85rem}
.ci-memo details.tbl summary{cursor:pointer;color:var(--brand-2)}
.ci-memo table{border-collapse:collapse;width:100%;margin-top:8px;font-variant-numeric:tabular-nums}
.ci-memo th,.ci-memo td{border-bottom:1px solid var(--line);padding:6px 8px;text-align:right}
.ci-memo th:first-child,.ci-memo td:first-child{text-align:left}
.ci-memo .tscroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
/* html charts */
.ci-memo .hb{display:flex;flex-direction:column;gap:12px}
.ci-memo .hb-l{font-size:.82rem;font-weight:700;margin-bottom:4px}
.ci-memo .hb-track{position:relative;display:flex;height:30px;gap:0}
/* The 2px separator between bands used to be a flex `gap`, which is added ON TOP of
the percentage widths. So every band boundary sat 2px further right than its value,
and the dashed `hb-ref` -- positioned at a plain percentage -- fell SHORT of the
true 100 by 2px for every boundary before it: 10px on a six-band row at 390px, where
it printed straight through the last band's label. Found 13 Oct by measuring the
IuteMK chart in the browser after seeing the line cross a `10`. A border inside the
band draws the same 2px of paper without taking any width, so a band's position is
exactly its value and one line serves every row. */
.ci-memo .sg{box-sizing:border-box}
.ci-memo .sg + .sg{border-left:2px solid var(--paper)}
.ci-memo .hb-track.tall{height:40px}
.ci-memo .sg{display:flex;align-items:center;justify-content:center;border-radius:4px;color:#fff;font-size:.78rem;font-weight:700;min-width:3px;cursor:pointer;font-variant-numeric:tabular-nums}
.ci-memo .sg em{font-style:normal;overflow:hidden;white-space:nowrap;text-overflow:clip;position:relative;z-index:2}
.ci-memo .sg.dk{color:var(--ink)}
.ci-memo .hb-row.has-neg .hb-track{margin-top:16px}
.ci-memo .hb-negs{position:absolute;right:0;top:-18px;display:flex;gap:10px;white-space:nowrap}
.ci-memo .hb-neg{position:absolute;right:0;top:-18px;font-size:.74rem;font-weight:700;color:var(--bd)}
.ci-memo .hb-negs .hb-neg{position:static;right:auto;top:auto}
.ci-memo .hb-neg.pos{color:var(--ok)}
.ci-memo .hb-ref{position:absolute;top:-4px;bottom:-4px;border-left:2px dashed var(--ink);pointer-events:none}
.ci-memo .hb-axis{position:relative;height:16px;font-size:.72rem;color:var(--ink-3)}
.ci-memo .hb-axis span{position:absolute;transform:translateX(-100%);padding-right:4px;white-space:nowrap}
.ci-memo .vb{padding:0 14px}
.ci-memo .vb-plot{position:relative;height:210px;display:grid;grid-template-columns:repeat(3,1fr);margin:18px 0 0;background:repeating-linear-gradient(to bottom,transparent 0,transparent 41px,#eef2f3 41px,#eef2f3 42px)}
.ci-memo .vb-zero{position:absolute;left:0;right:0;border-top:1.5px solid #9fb0b5}
.ci-memo .vb-g{position:relative}
.ci-memo .vb-bar{position:absolute;width:30%;border-radius:4px;cursor:pointer}
.ci-memo .vb-bar.s1{left:18%;background:#0f7ea0}
.ci-memo .vb-bar.s2{left:52%;background:#9ccfdd}
.ci-memo .vb-bar em{position:absolute;left:50%;transform:translateX(-50%);font-style:normal;font-size:.76rem;font-weight:700;color:var(--ink);white-space:nowrap;font-variant-numeric:tabular-nums}
.ci-memo .vb-bar em.up{top:-18px}.ci-memo .vb-bar em.dn{bottom:-18px;color:var(--bd)}
.ci-memo .vb-x{display:grid;grid-template-columns:repeat(3,1fr);text-align:center;font-size:.85rem;font-weight:700;margin-top:22px}
.ci-memo .bs{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.ci-memo .bs-h{font-weight:700;margin-bottom:6px;display:flex;justify-content:space-between}
.ci-memo .bs-h span{color:var(--ink-3);font-weight:600}
.ci-memo .bs-list{list-style:none;padding:0;margin:10px 0 0;font-size:.86rem}
.ci-memo .bs-list li{display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:8px;align-items:baseline;padding:4px 0;border-bottom:1px solid var(--line)}
.ci-memo .bs-list i{width:11px;height:11px;border-radius:3px;align-self:center}
.ci-memo .bs-list b{font-variant-numeric:tabular-nums}
.ci-memo .bs-list li.hl{background:#fdf1e8;font-weight:700}
@media (max-width:640px){.ci-memo .bs{grid-template-columns:1fr}}
/* country meters */
.ci-memo .qrow{display:grid;grid-template-columns:minmax(0,1fr) 110px 18px;gap:10px;align-items:center;padding:7px 0;border-bottom:1px solid var(--line);font-size:.9rem}
.ci-memo .qrow em{font-style:normal;color:var(--ink-3);font-size:.78rem}
.ci-memo .meter{height:10px;background:#eef2f3;border-radius:6px;overflow:hidden}
.ci-memo .meter i{display:block;height:100%;border-radius:6px}
.ci-memo .meter i.bd{background:var(--gD)}.ci-memo .meter i.wt{background:var(--gC)}.ci-memo .meter i.ok{background:var(--gA)}
/* group diagram */
.ci-memo .flow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:8px;align-items:center;margin:14px 0}
.ci-memo .flow.f4{grid-template-columns:1.1fr auto 1fr auto 1.2fr auto 1.1fr;gap:6px}
.ci-memo .flow.f4 .arrow{max-width:135px;font-size:.72rem}
.ci-memo .flow.f4 .node{font-size:.8rem}
.ci-memo .flow.f4 .node b{font-size:.88rem}
.ci-memo .node{border:1px solid var(--line);border-radius:12px;padding:10px;text-align:center;background:var(--soft);font-size:.86rem}
.ci-memo .node b{display:block;font-size:.95rem}
.ci-memo .arrow{font-size:.78rem;color:var(--ink-2);text-align:center;line-height:1.2}
.ci-memo .arrow::before{content:"⟶";display:block;font-size:1.4rem;color:var(--brand-2)}
.ci-memo .arrow.back::before{content:"⟵"}
.ci-memo .arrow.red::before{color:var(--bd)}
/* risks */
.ci-memo .risks{display:grid;gap:10px;margin-top:12px}
.ci-memo .risk{display:grid;grid-template-columns:170px minmax(0,1fr);gap:12px;border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.ci-memo .risk h3{font-size:.95rem;display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.ci-memo .risk p{margin:0;font-size:.9rem;color:var(--ink-2)}
.ci-memo .bwc{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}
.ci-memo .bwc .card h3{display:flex;gap:8px;align-items:center}
.ci-memo .bwc p{font-size:.9rem;color:var(--ink-2);margin:0}
.ci-memo details.more{border:1px solid var(--line);border-radius:12px;padding:10px 14px;margin-top:10px;background:var(--paper)}
.ci-memo details.more summary{cursor:pointer;font-weight:700}
.ci-memo details.more p,.ci-memo details.more li{font-size:.88rem;color:var(--ink-2)}
.ci-memo .foot{margin-top:28px;font-size:.8rem;color:var(--ink-3);text-align:center}
/* tooltips: pure CSS, anchored INSIDE the chart box so they can never spill outside the memo */
.ci-memo{overflow-x:clip}
.ci-memo figure{position:relative}
.ci-memo .sg,.ci-memo .bs-list li{position:static}
.ci-memo [data-tip]::after{
content:attr(data-tip);position:absolute;left:0;right:0;bottom:calc(100% + 7px);
background:#16252b;color:#fff;font-size:.82rem;font-weight:600;line-height:1.35;text-align:left;
padding:8px 11px;border-radius:8px;z-index:5;font-variant-numeric:normal;
opacity:0;visibility:hidden;transition:opacity .12s;pointer-events:none}
.ci-memo [data-tip]:hover::after,.ci-memo [data-tip]:focus::after,.ci-memo [data-tip]:active::after{opacity:1;visibility:visible}
.ci-memo [data-tip]:hover,.ci-memo [data-tip]:focus{outline:2px solid var(--ink);outline-offset:1px}
.ci-memo .tip-note{font-size:.8rem;color:var(--ink-3);margin:8px 0 0;min-height:2.9em}
.ci-memo .warn-lbl{display:inline-block;font-weight:600;font-size:.76rem;color:#8a5a0c;background:var(--wt-bg);border-radius:5px;padding:1px 7px;margin-left:6px}
.ci-memo .blk{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--brand);margin:20px 0 2px}
.ci-memo .blkq{border-left:3px solid var(--line);padding-left:14px;margin:14px 0}
.ci-memo .bands{margin-top:10px}
.ci-memo .bandbar{display:grid;grid-template-columns:repeat(5,1fr);gap:3px;margin-top:4px;font-size:.68rem;text-align:center}
.ci-memo .bandbar span{background:var(--soft);border:1px solid var(--line);border-radius:5px;padding:3px 2px;color:var(--ink-3);font-weight:600;font-variant-numeric:tabular-nums}
.ci-memo .bandbar span.on{background:var(--ink);border-color:var(--ink);color:#fff}
.ci-memo .why .wlead{font-size:1.02rem}
.ci-memo .why .wbox{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);border-left:4px solid #6fd0a8;border-radius:12px;padding:14px 16px;margin-top:12px;font-size:1.02rem}
.ci-memo .why .wbox p{color:#eef6f8}
.ci-memo details.wmore{margin-top:14px}
.ci-memo details.wmore > summary{cursor:pointer;display:inline-block;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);color:#fff;font-weight:700;font-size:.9rem;border-radius:999px;padding:8px 18px;list-style:none}
.ci-memo details.wmore > summary::-webkit-details-marker{display:none}
.ci-memo details.wmore > summary::after{content:" \203A";font-size:1.1rem}
.ci-memo details.wmore[open] > summary::after{content:" \2039"}
.ci-memo details.wmore > summary:hover{background:rgba(255,255,255,.2)}
/* why-it-matters block */
.ci-memo .why{background:#0f2f38;color:#eef6f8;border-radius:18px;padding:22px;margin:26px 0}
.ci-memo .why h2{color:#fff;font-size:clamp(1.2rem,2.8vw,1.5rem)}
.ci-memo .why p{color:#d6e6ea}
.ci-memo .why b,.ci-memo .why strong{color:#fff}
.ci-memo .why .wgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin-top:14px}
.ci-memo .why .wcard{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:14px}
.ci-memo .why .wcard h3{color:#fff;font-size:.98rem;margin-bottom:6px}
.ci-memo .why .wcard p{margin:0;font-size:.88rem}
.ci-memo .why .sum{background:#fff;color:var(--ink);border-radius:12px;padding:14px 16px;margin-top:14px;font-size:.92rem}
.ci-memo .why .sum b,.ci-memo .why .sum strong{color:var(--ink)}
.ci-memo .why .sum p{color:var(--ink-2)}
.ci-memo .why .sum th{color:var(--ink-2);font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}
.ci-memo .why .sum table{margin-top:6px}
.ci-memo .why .sum th,.ci-memo .why .sum td{border-bottom:1px solid var(--line);font-size:.88rem}
.ci-memo .why .fine{font-size:.82rem;color:#b9d2d8;margin-top:12px}
/* responsive */
@media (max-width:820px){
.ci-memo .answer{grid-template-columns:1fr;padding:14px}
.ci-memo .grid2{grid-template-columns:minmax(0,1fr)}
.ci-memo .bwc{grid-template-columns:1fr}
}
@media (max-width:560px){
/* The badge carried width:max-content, so during intrinsic sizing it contributed the
FULL one-line phrase to .score's min-content - and .answer's 1fr track has an auto
minimum it cannot shrink below. The French grade-E phrase "Catégorie de risque
maximale" then pushed the track to 341.5px inside a 332px content box on three
published pages. max-width:100% does not help: against an indefinite size it is
treated as none. Releasing the width on narrow screens does. */
.ci-memo .grade{width:auto}
/* REMOVED 9 Oct 2026: .ci-memo .sg.sm em{display:none}
It hid the figure inside every narrow chart segment below 560px - on all twenty
memos, 216 segments in total - including the largest cost category in the "where
every EUR100 went" chart. Readers on a phone saw a bar with no number on it.
Checked before removing: every <em> in a .sg.sm is numeric, longest six characters
("11,6 %"), so width is bounded in every language; vall.py finds no overflow at
390px with the labels shown; and a rendered screenshot confirms they sit inside
their segments rather than being clipped. */
.ci-memo .why .sum th,.ci-memo .why .sum td{padding:6px 4px;font-size:.82rem}
.ci-memo .why{padding:16px}
.ci-memo{padding:16px 14px 36px;font-size:15px}
.ci-memo .subs{grid-template-columns:1fr}
.ci-memo .risk{grid-template-columns:1fr;gap:6px}
.ci-memo .flow,.ci-memo .flow.f4{grid-template-columns:1fr}
.ci-memo .flow.f4 .arrow{max-width:none}
.ci-memo .arrow::before{content:"↓"}
.ci-memo .arrow.back::before{content:"↑"}
.ci-memo .qrow{grid-template-columns:minmax(0,1fr) 70px 14px;font-size:.84rem}
.ci-memo .score .big b{font-size:2.8rem}
/* ADDED 10 Oct 2026. At 390px the padding accumulates — .ci-memo 14px, .answer
14px, .score 18px on each side — and .score's own min-content then needs
334.8px inside a 332px box on the German page and 339.2px on the Dutch one.
Both overflowed horizontally; English and the other six fit only because
their headings are shorter. Trimming .score's padding to 12px below 560px
returns 12px, which covers both with room to spare. Found by rebuilding the
adopted ten and running vall.py over all 160 pages; verified pre-existing in
the 9 October package, so it is a standing defect rather than a regression. */
.ci-memo .score{padding:12px}
.ci-memo svg .lbl{font-size:16px}.ci-memo svg .in,.ci-memo svg .val,.ci-memo svg .neg,.ci-memo svg .side{font-size:15px}.ci-memo svg .axis{font-size:14px}
}
@media print{.ci-memo figure,.ci-memo .card,.ci-memo .answer{break-inside:avoid}}
</style>
<div class="ci-memo" data-ai-score="70" id="esto-memo">
<header class="hero">
<div class="kicker">Lender memo · ESTO · Estonia</div>
<h1>ESTO: how likely is it to fail to pay its lenders?</h1>
<p class="muted">ESTO AS lets Estonians pay for things in instalments at the checkout — online and in shops. Mintos investors lend it money. This memo asks one question: what is the chance it fails to pay its lenders back in the next 12 months, and why.</p>
<div class="meta">
<span class="chip">Written 21 September 2026</span>
<span class="chip">Based on the group’s 2025 accounts — the pre-audit filing, plus the audited year-end figures — and its first-half 2026 report</span>
<span class="chip">Checked line by line by a separate reviewer</span>
</div>
</header>
<div class="nfa" role="note"><strong>THIS IS NOT FINANCIAL ADVICE.</strong> This memo was prepared with the help of AI from publicly available documents. It is general information for education only — not a recommendation to buy, sell or hold anything, and it does not take account of your circumstances. Figures may contain errors; check them against the original documents. Investing through P2P platforms can result in the loss of all money invested.</div>
<!-- ANSWER -->
<div aria-labelledby="ans-h" class="answer">
<div class="score">
<div class="kicker">Our score</div>
<div class="big tabnum"><b>70</b><span>/ 100</span></div>
<span class="grade gB"><i>B</i> Sound</span>
<div>
<div aria-hidden="true" class="scale"><div style="background:var(--gA)"></div><div class="on" style="background:var(--gB)"></div><div style="background:var(--gC)"></div><div style="background:var(--gD)"></div><div style="background:var(--gE)"></div></div>
<div class="scale-l"><span>A</span><span>B</span><span>C</span><span>D</span><span>E</span></div>
</div>
<div class="odds">
<div class="odd main"><b class="tabnum">2%</b><span>chance it fails to pay in the next 12 months</span></div>
<div class="odd"><b class="tabnum">12%</b><span>the most of a portfolio our framework would put here</span></div>
</div>
<div aria-label="Where 2% sits on our scale of failure chances" class="bands">
<div class="kicker" style="font-size:.7rem">Where that sits on our scale</div>
<div class="bandbar"><span>0–2%</span><span class="on">2–5%</span><span>5–10%</span><span>10–20%</span><span>20%+</span></div>
</div>
<div class="limit"><b>Our framework caps this lender at 12% of a portfolio.</b> That is the cap for a B on our scale. Estonia’s country limit is 25%, so it does not limit this lender. No parent guarantee improves the odds: ESTO AS is the group’s profit engine, and nothing in the group stands behind it. These caps are a convention of our scale, applied to every lender we cover. They are not advice about your money.</div>
</div>
<div>
<h2 id="ans-h">A very profitable lender in a safe country — whose arrears nobody outside the company can see</h2>
<p class="muted" style="margin:0 0 4px">ESTO keeps €31 of every €100 it earns, its profit grew 48% in 2025, and Estonia is among the safest places we cover to lend. The one thing missing is the most basic: it publishes no figure for how many of its loans are late. It sells bad loans quickly and books the loss on the sale, which keeps the usual warning signs quiet. Each figure below shows the odds as if that were the only risk the company faced.</p>
<div class="subs">
<div class="sub"><div class="top">💶 Earnings and safety cushion <em style="background:var(--gA)">A</em></div><b class="tabnum">about 1%</b><p>€31 of every €100 of income is left over, up from €26 — and the owners’ money more than doubled in a year.</p></div>
<div class="sub"><div class="top">📉 Are its loans repaid? <em style="background:var(--gD)">D</em></div><b class="tabnum">about 12%</b><p>We can see what bad loans cost — about €4.4m a year — but not how many are going bad.</p></div>
<div class="sub"><div class="top">🇪🇪 How risky is Estonia? <em style="background:var(--gA)">A</em></div><b class="tabnum">about 1%</b><p>The euro, strong courts, and a government that pays its debts. New credit rules arrive in November.</p></div>
<div class="sub"><div class="top">⚖️ Anything else? <em style="background:var(--gC)">C</em></div><b class="tabnum">about 5%</b><p>Two loss-making sister companies, a board replaced last year, and a one-person management board at the holding company.</p></div>
</div>
</div>
</div>
<div class="flags">
<div class="flag ok"><strong>Good news: it makes a lot of money, and it is audited.</strong>Income rose from €26.5m to €32.2m in 2025 and profit from €6.8m to €10.1m. Out of every €100 of income, €31.40 was left over after everything — bad loans, interest, running the business. Both columns of the chart below add to exactly €100, and what is left over is the reported profit. KPMG audited the 2025 accounts of both the group and ESTO AS, and the first-half 2026 report says there were no material findings; the income split below comes from the annual report the group filed before that audit was finished. The owners’ money in the business more than doubled, from €11.7m to €25.3m — from 14.8% of everything the group owns to about 25%.</div>
<div class="flag wt"><strong>Careful: for 2025, nobody outside the company can see how many loans are late.</strong>Most lenders publish how much of the book is thirty, sixty or ninety days overdue. For 2025 ESTO publishes one headline figure — a net bad-loan ratio of 0.1% — with no ageing table, no stage split and no cover ratio behind it. Its own report for 2024 gave 5%, on a basis that is not the same as the years before it. A figure that moves from 5% to 0.1% in a year, with the definition changing in between, tells a reader very little — particularly for a lender that sells or writes off problem loans early and books the cost as a loss on the sale rather than as an impairment. The cost itself is visible and steady, about €4.4m a year, but for a book growing 29% in a year the number that matters is how many of this year’s loans go bad, and it is not published.</div>
</div>
<!-- WHY IT MATTERS -->
<div class="why">
<h2>Why this number matters</h2>
<p class="wlead">Every investment carries risk, and risk is not really a letter or a mark out of ten. It is two plain questions: <b>how likely is it that this company fails</b>, and <b>how much of your money would you lose if it did</b>. Put those together and you can see whether the reward is worth it.</p>
<div class="wbox">
<p style="margin:0"><b>For ESTO:</b> about a <b>2% chance</b> of failing in the next 12 months. If we assume about 30% of the money comes back in that case, the risk costs roughly <b>1.5% a year</b> — against the <b>6.94%</b> the loans pay. That leaves about <b>5.5%</b> as the reward for taking the risk.</p>
</div>
<details class="wmore">
<summary>Show how this works</summary>
<div class="wgrid">
<div class="wcard"><h3>1. The rate is a promise, not a result</h3><p>An advertised 6.94% is what you are promised if everything goes well. What you keep is that rate minus what failures cost you. So the rate on its own tells you very little — and the highest rates on a platform are usually high for a reason.</p></div>
<div class="wcard"><h3>2. Put a price on the risk</h3><p><b>Risk cost = chance of failing × share of your money you would not get back.</b> Nobody knows the second number in advance. How much comes back has varied widely from case to case. We use 30% back, 70% lost, as our own working assumption so that memos can be compared with each other — it is not a measured figure, and the answer moves a lot if you choose differently.</p></div>
<div class="wcard"><h3>3. Compare like for like</h3><p>Take two imaginary lenders. One pays 14% but has a 17% chance of failing within the year: the risk costs about 11.9% a year, leaving roughly 2%. The other pays 9% with a 2.5% chance: the risk costs about 1.8%, leaving about 7%. The bigger number on the screen can easily be the worse one.</p></div>
</div>
<div class="sum">
<b>ESTO, worked through</b>
<div class="tscroll"><table>
<thead><tr><th> </th><th>On our numbers</th></tr></thead>
<tbody>
<tr><td>Chance of failing in a year</td><td>2.1%</td></tr>
<tr><td>Loss if it fails (70%)</td><td>× 0.7</td></tr>
<tr><td><b>Risk cost a year</b></td><td><b>1.5%</b></td></tr>
<tr><td>Rate offered on Mintos</td><td>6.94%</td></tr>
<tr><td><b>Left after the risk cost</b></td><td><b>about 5.5%</b></td></tr>
</tbody>
</table></div>
<p style="margin:8px 0 0">Two things this arithmetic leaves out. The 2% rests on figures the company chooses to publish, and the one figure it does not publish is how many of its loans are late — so the second section of this memo is the part to read before trusting the first. And a real failure does not arrive as a yearly cost; it arrives all at once, which is why how much you put in one place matters as much as the rate.</p>
<p style="margin:6px 0 0;font-size:.85rem;color:var(--ink-3)">The 6.94% is Mintos’s average rate across its outstanding ESTO notes.</p>
</div>
<p class="fine"><b>Where our number comes from:</b> we score six questions out of five, weight them into a score out of 100, and convert that score into a chance of failure using the long-run default rates that S&P publishes for companies of each credit quality. Small lenders fail more often than rated companies, so we treat every figure as a floor rather than a best guess. It is our own estimate from public documents — not a credit rating, not a market price, and not a promise about what will happen.</p>
</details>
</div>
<!-- GLANCE -->
<div class="band">The company at a glance</div>
<div class="glance">
<div class="tile"><div class="k">What it is</div><b>A licensed consumer lender</b><p>Licence from the Estonian Financial Supervision Authority since June 2017. Most of the business is in Estonia; sister companies operate in Latvia and Lithuania.</p></div>
<div class="tile"><div class="k">What it lends</div><b>€50 to €10,000</b><p>Paid back over 3 to 60 months, at rates from about 24% a year. It also offers a free "split into three" option at the checkout, which it funds itself.</p></div>
<div class="tile"><div class="k">How much it has lent</div><b class="tabnum">€94.0m</b><p>The group’s book at the end of 2025, after money set aside for bad debts. It grew 29% during the year. By June 2026 the book before that deduction was €107m.</p></div>
<div class="tile"><div class="k">Who owns it</div><b>ESTO Holdings OÜ</b><p>No single controlling owner: the largest holding is 14.35%, and about a quarter sits in two bank nominee accounts whose owners are not public.</p></div>
</div>
<div class="band">Where an investor can lend to it</div>
<div class="glance">
<div class="tile"><div class="k">Platform</div><b>Mintos</b><p>Listed there as "ESTO (EE)", since 2019. Its Latvian and Lithuanian sister companies are listed separately.</p></div>
<div class="tile"><div class="k">Borrowed from investors</div><b class="tabnum">€28.8m</b><p>13 September 2026 — Mintos’s own figure from our register capture. Mintos’s overview page showed €30.4m the same day; the two are captured differently.</p></div>
<div class="tile"><div class="k">Average rate</div><b class="tabnum">6.94%</b><p>13 September 2026 — Mintos’s own figure.</p></div>
<div class="tile"><div class="k">Protection offered</div><b>Buyback — terms vary</b><p>Our register records the buyback as varying by note series. Aggregator sites report 60 days and ESTO keeping 10% of each loan; that is their figure, not Mintos’s. We could not read Mintos’s own lending-company page, which needs a browser.</p></div>
<div class="tile"><div class="k">Mintos Risk Score</div><b class="tabnum">9.0</b><p>Updated 9 July 2026 — Mintos’s own score, not ours. One of the highest on the platform. The part covering how the arrangement is structured is its weakest, at 4.0.</p></div>
</div>
</div>
See full overview
Ask question
Ask AI about this project
Beta
Start a conversation
Send a message to begin chatting with the AI assistant
Like this project?
Platform offering this project
Mintos LV
Risk Level
Medium
Return Level
High
Risk Return Level
Medium
Min. Investment
EUR 50
Total Funded
EUR 12900.0M