Multi-desk debate and self-falsification gate on every covered name.
AtlasVector runs a multi-desk debate — an equity desk, a risk desk, a sell-side MD and an adversarial RED-TEAM — that resolves to a calibration-weighted verdict. A self-falsification gate then re-derives each figure and checks each claim in the consolidated verdict, returning ship, repair or block. The transcript, gate findings and verdict are sealed to a tamper-evident audit chain that can be re-derived.
How hard the agent attacks its OWN verdicts: ship/repair/block distribution + falsifications it caught in itself, over the sealed (audit-chained) house-verdict corpus — a self-attacked track record that cannot be retroactively fabricated. Real and labelled-synthetic boards seal to SEPARATE chains, published beside this; the rates above are computed over real boards only.
Rates are shares of the 395 REAL sealed boards the gate graded. 0 synthetic boards (offline council — its degenerate gate emits one outcome by construction) are excluded, as are 0 real boards nothing could grade.
Ship-rate 0% — 0 of 395 real graded boards; all verdicts in this sample had the same outcome.
Every verdict to date was revised before publication; a repair records a mismatch found by the gate.
All 395 sealed verdicts were graded by gate revision 3.
395 sealed boards carry a gate outcome, 0 sealed before the gate recorded one, and 0 are real boards this read drops for a desk stance the transcript does not back. Every sealed board falls in exactly one of the three; the rates published here divide by the real graded boards alone — which, on this corpus, are exactly the boards carrying a gate outcome.
SEPARATE CHAINS Sealed house-verdict boards by chain. 395 real boards on the main chain; 0 labelled-synthetic boards on the separate synthetic chain, which links to its own tail and never lengthens the main one. 395 + 0 + 0 = 395 boards, the whole sealed corpus. A board is counted only where a sealed board row backs the seal event (its audit root is that event's chain hash), so this breakdown adds up to the population it breaks down and to nothing else. main chain tip 7fa84a3ccec1…
How these numbers are computed — the grading gate, and the two conviction scales
Revision 3 refuses to SHIP a board nothing could grade: with no desk sentence bound to a recorded evidence channel the verdict is UNGRADED, and faithfulness is null rather than a 1.00 scored off the board's own summary sentence. It keeps revision 2's probes — a desk sentence graded against the evidence channel the transcript actually recorded (absent channel = unverified, never a catch), each desk's transcript stance cross-checked against its scored row (a turn that spoke without a comparable stance says so), and a board whose transcript carries no desk turns refused. Rows sealed before this stamp existed carry no revision and are reported as unstamped.
Agreement was divided by the whole panel, which charged abstention a second time after the net score had already priced it. Retired 2026-08; the house no longer stands behind figures on this scale, and they are not comparable to current ones.
Agreement is computed among the desks that took a direction; how much of the panel took one at all ships separately as participation. This is the rule the house currently stands behind. AUTHORED 2026-08-13, before every board in the graded record; it has itself priced all 38 graded boards forward, and none was sealed under the retired rule.
The conviction-scale split covers all 395 real-labelled sealed boards — the same population the published rates run on.
Forward record of sealed calls
marked AS OF 2026-10-16ACCUMULATING Accumulating — 25 independent calls graded (38 sealed boards) across 7 entry sessions, worth 5.63 effective observations once same-session calls are discounted for sharing a tape. A hit rate needs 20 of each, so it is withheld; the per-call returns below are real.
20 of 25 graded calls landed inside one standard deviation of their own excess series over their own window — an outcome that size is a direction that landed, not a magnitude that distinguishes skill from the tape.
POLICY CHOICE The breadth multiplier is LINEAR BY POLICY CHOICE. The exponent was set to 1 because that reproduces a prior number — the 0.5% caps the superseded denominator happened to produce for the thin boards — and NO evidence supports linearity over a square, a square root or a step. It was authored 2026-08-14, 46 days after the 2026-06-29 session on which every call then graded had been entered — with those outcomes already visible to the author.
- 8 of 15 long calls right, mean excess return +0.01% — WITHHELD as a rate: the corpus rate is withheld, and a slice may not publish the rate the headline withheld.
- 7 of 10 short calls right, mean excess return +2.00% — WITHHELD as a rate: this slice carries 4.17 effective observations of the 5 required — 10 calls spread over 5 entry sessions.
- Highest-conviction call in the record, on the current rule — TSLA short at 74/100 — wrong, −0.27% to the call.
- The 31 names the desks declined and did not call moved 3.68% mean absolute excess; the 25 names they did call moved 3.17% on the same basis. Both are unsigned magnitudes: reading either as a gain won or forgone would assume the direction was called right, and the rate that would license that assumption is withheld below the sample floor. The largest single move among them was AVGO at −8.51%. Abstentions are counted, not graded, and are not scored as misses.
- 24 names (TSLA, META, GOOGL, NVDA, TSLA, AMZN, MSFT, GOOGL, AAPL, AVGO, TSLA, GOOGL, AMZN, MSFT, AMZN, MSFT, GOOGL, NVDA, MSFT, AVGO, TSLA, META, GOOGL, NVDA) had boards take no direction while OTHER boards called the same name on the same session. The house called those names, so they are graded in the call ledger and excluded from the abstentions — one market move may carry one label, not two.
- +0.80% is the arithmetic mean of 25 realized call returns, not an expected return: they disperse 4.02pp about it, the median call is +0.46%, and dropping NVDA alone moves it to +1.14%. On 5.63 effective observations no interval can be placed around it, so reading it as an expected return is withheld on the same floor that withholds the hit rate.
- Conviction versus outcome: not yet measurable — the corpus carries 5.63 effective observations of the 20 required — 25 calls spread over 7 entry sessions; every call so far landed in conviction buckets 0-24, 25-49, 50-74 — monotonicity is UNMEASURED, which is not the same as absent. Below the floor this is a NOT-MEASURABLE state, not a negative finding: no claim is made in either direction.
LOOK-AHEAD The rule the house stands behind was authored on 2026-08-13, before every board in the graded record: all 38 graded boards were sealed on or after that day, on 7 entry sessions, and priced by this rule before their outcomes existed. No conviction in this record was produced by a rule that could see the outcomes it is being judged on.
How this is graded, and what is excluded
Every sealed board with a directional stance, graded on the realized EXCESS return of its name vs the benchmark (a long call in a rising market is beta, not a call). The entry is a close printed AFTER the seal — never one that already existed when the board was sealed — and both legs are read on the same entry and mark sessions. Boards on the same name entered on the same session are ONE call, and calls entered on the same session are discounted for sharing one tape: a rate needs both enough independent calls and enough EFFECTIVE observations, and it ships with a Wilson interval computed on the effective count and only as many decimals as that sample supports. Conviction buckets are cut on the figure re-derived from each row's own sealed desk stances under the rule the house stands behind today, with the sealed figure published beside it. Synthetic boards never enter and are counted as a stated exclusion, as is any name with no usable price history. This measures the desks' calls — it is separate from the self-falsification record, and it is published whichever way it comes out.
Independence. 38 sealed directional boards resolve to 25 independent calls (boards on the same name entered on the same session are ONE call), spread over 7 entry sessions and worth 5.63 effective observations. Calls entered on one session share one tape, so every rate below is floored on the EFFECTIVE count, not the call count. Calls entered on the same session are treated as perfectly correlated (they share one tape). That is the worst case, so the true effective count lies between this figure and the nominal call count: the discount can only under-claim. Computed as effective observations = 1 / Σ(share of calls per entry session)² — the Kish count for a size-weighted rate.
Conviction basis. Calibration is graded on the conviction RE-DERIVED from each sealed row's own desk stances under the rule the house stands behind today, not on the figure the row was sealed under — grading a rule the house has superseded would measure nothing anyone is standing behind. The sealed figure ships beside it, and the record counts how many rows moved (superseded), already agreed (current), or reconcile to neither rule (unreconciled). Sealed bytes are re-read and re-labeled, never rewritten.
The conviction scale. Revision 2 divides agreement by the desks ELIGIBLE to agree, not by the whole panel — abstention is priced once, in the net score, instead of twice — and publishes participation beside the figure instead of folding it in. Revision 1 figures are not comparable to revision 2 figures and are never mixed into one rate. A board whose revision cannot be determined from its stamp or its own sealed desk stances is reported unreconciled, not assigned one. Revision 2 was AUTHORED 2026-08-13, before every board in the graded record; it has itself priced all 38 graded boards forward, and 0 of 38 graded boards are superseded rows re-derived at the read. Computed as |net score| x (desks on side / desks eligible to agree) x mean on-side calibration weight.
Board and call. A call is every sealed board on this name entered on the same session, counted once. Its conviction is the arithmetic mean of those boards' current-rule figures — and so is the sealed figure printed beside it — so neither will equal any single board's number. The boards themselves are published unchanged. A call over a single board carries that A call built on a single board carries that board's figure unchanged and no aggregation label.
Names not called. Boards that took no direction on names the house did not otherwise call that session. Counted, never graded — an abstention is not a miss. The ledger is DISJOINT from the calls on the same (name, entry session) key: a neutral board on a name other boards called is booked to the call ledger only, so one market move never carries two labels; those names are listed as also-called rather than dropped. The mean is over INDEPENDENT abstentions (one name, one session = one abstention), the same denominator the hit rate uses, and the per-board figure ships beside it. It is a mean ABSOLUTE move — a magnitude, not a forgone gain — over a handful of correlated names, so it carries no interval and is never set against a signed return.
Basis of comparison. how far the names moved against the benchmark, unsigned — a magnitude, not a gain. Both sides are computed on ONE measure — mean absolute excess return vs the same benchmark over the same window. This record previously set the abstentions' mean ABSOLUTE move against the calls' mean SIGNED return and called the difference a cost; that comparison implies a direction accuracy of 1.0, which is precisely the figure this panel withholds. No cost is claimed here, and no gain is attributed to a move nobody positioned for.
Size-weighted record. Each call is sized through the SAME capital gate the enforcement path runs: the conviction-band cap scaled by the board's panel participation, averaged across the boards in the call. No falsification escalation and no calibration trim is applied — those need live state this record does not re-create, so the permitted size here is an UPPER bound on what the gate would have allowed. The breadth multiplier is a POLICY CHOICE, stated in full beside this figure; a different curve would move the weighted figure and nothing in this record can say which curve is right.
Breadth multiplier (policy choice). The breadth multiplier is LINEAR BY POLICY CHOICE. A 1-of-4 board is permitted exactly a quarter of what a 4-of-4 board is permitted at the same conviction because the rate is applied to the first power — not because anything measured that a quarter is right. A square, a square root or a step would all be defensible; calibrating between them needs realized outcomes bucketed by participation, and the graded record stands at 25 independent calls on 7 entry sessions. Treat the curve as policy, not as a finding. Applied as permitted = the conviction band cap x the share of the panel that took a direction.
Exponent selection and calibration. Chosen for continuity — it returns the thin boards to the caps they carried under the superseded conviction denominator. Calibrated to reproduce the caps the superseded whole-panel conviction denominator produced for the three 1-of-4 boards (0.5% of book).
Sample mean, not expected return. A rate is an inference and is withheld below the floor. The mean of the realized returns is an OBSERVATION, and every return it averages is published per call in this same record — so withholding the average would not take it out of circulation, it would hand a reader an unqualified figure computed in their own head with none of this beside it. What is withheld is the EXPECTATION reading: no interval is printed until the effective observation count clears the floor the hit rate clears, and until it does, the dispersion, the median and the leave-one-out mean ARE the qualification the figure ships with. Dispersion here is across the calls; the noise scale measures each call against its own window, and the two answer different questions.
Sigma scale. the standard deviation of this call's daily excess return over its own graded window, scaled up to the length of that window. Sigma is measured on the SAME bars the return is measured on — realized, not modelled, not annualized from elsewhere. It is a scale for reading one return, never a significance test: 25 calls on 7 entry sessions cannot support one.
Publication floor (minimum sample). At the observed accrual (0.8621 independent calls and 0.2414 entry sessions per day) the floor is at least 54 days away — a LOWER bound, because effective observations can sit below the entry-session count.Effective observations can never exceed entry sessions, so clearing the 20-effective floor requires at least 20 distinct entry sessions. Any projection here is therefore a LOWER bound on the time to a publishable rate.
- conviction 0-24 — 5 of 11 right, mean excess −0.07%, rate withheld — the corpus rate is withheld, and a slice may not publish the rate the headline withheld
- conviction 25-49 — 10 of 13 right, mean excess +1.63%, rate withheld — this slice carries 4.83 effective observations of the 5 required — 13 calls spread over 6 entry sessions
- conviction 50-74 — 0 of 1 right, mean excess −0.27%, rate withheld — this slice carries 1 independent call of the 5 required and 1 effective observation of the 5 required — 1 call spread over 1 entry session
marked 2026-10-16 · benchmark SPY · first close printed strictly after the seal instant — never a price that existed when the board was sealed
- Mark Rule
- the latest session BOTH the name and the benchmark have finished — finished meaning the tape has stopped printing for it (20:00 New York), not merely that the bell has rung, because a day print keeps absorbing late trades after the close. A session still trading is never marked, so two reads inside one session return the same figures: a close does not move
- Return Rule
- excess = name return − benchmark return over the same sessions; a short is right when the excess is negative
- Sample Rule
- rates are computed over independent calls, keyed by (name, entry session)
- Abstention Rule
- the abstention ledger is DISJOINT from the call ledger on that same key — a neutral board on a name other boards called that session belongs to the calls, and is listed as also-called rather than counted twice
- Comparison Rule
- abstained and called names are compared only on ONE basis (mean ABSOLUTE excess). A magnitude is never set against a signed return and never called a cost: that would assert a direction accuracy this record withholds
- Independence Rule
- a rate needs 20 independent calls AND 20 effective observations — calls entered on one session share one tape and are discounted for it, so twenty names on one day never clear the floor
- Interval Rule
- every published rate carries a 95% Wilson score interval computed on the effective observation count; computing it on the nominal count would narrow the band by exactly the design effect
- Precision Rule
- a rate is printed to the decimals its sample supports (a 20-observation rate resolves to 5 percentage points, so it prints to whole percent) — hits and n always ship, so the exact ratio is recoverable
- Conviction Rule
- conviction buckets are cut on the figure RE-DERIVED from each row's own sealed desk stances under the rule the house stands behind today, never on a superseded sealed figure; the sealed figure ships beside it
- Sizing Rule
- the weighted return sizes each call through the capital gate — conviction-band cap x panel participation — and the equal-weight figure it is set against is recomputed over the SAME sized calls, never over a larger set
- Noise Rule
- every call carries the realized sigma of its own daily excess series over its own window; a return inside one sigma is a direction that landed, and is reported as such rather than as a magnitude
- Mean Rule
- the mean call return carries the same discipline as a rate: its cross-sectional dispersion, its median and the mean without the single call that moves it most all ship beside it, and reading it as an EXPECTED return is withheld until the effective observation count clears the same 20 floor the hit rate clears
- Split guard
- a session move above 1.8x or below 0.55x inside the window excludes the name — unadjusted bars would read a split as a return
VERDICT: constructive-but-rich (neutral-to-long)
- Quality remains best-in-class: AAPL ROIC 70.25%, ROE 137.2%, op margin 33.17%, FCF margin 23.7% (TTM, compare_with_peers, as-of 2026-09-29) — dominates the compute/storage peer set on capital efficiency.
- Valuation is the hair on the trade: P/E TTM 38.5, P/S 10.6, EV/EBITDA 34.4, EV/FCF 50.7, P/B 51.0 — priced for continued Services + ecosystem compounding, not for a hardware cycle miss.
- Earnings execution intact: 4 consecutive beats (Q4'25 1.85 vs 1.81, Q1'26 2.84 vs 2.73, Q2'26 2.01 vs 1.99, Q3'26 1.91 vs 1.93 miss on last) — next print 2026-10-29 amc, est EPS 2.02, rev $115.3B. Binary catalyst inside 30d.
- Rev growth only +14.2% TTM YoY vs SNDK +175%, DELL +49% — AAPL is the quality, not the growth, name in the group.
- Gap: get_fundamentals_history returned no periods for AAPL — margin-trend/FCF-trajectory confirmation not available for this name right now.
What breaks it: iPhone unit miss or Services deceleration on the Oct-29 print; adverse China ruling; DOJ/EU remedy that hits App Store take-rate; multiple compression toward peer median would imply meaningful downside from ~$337.
I'll pull the core data before opening.
VERDICT: reconsider (house long bias into a 30-day earnings runway looks stretched)
- Price extended, YTD leader: AAPL $336.89 as of 2026-09-29T08:30Z, +25% YTD per Motley Fool 2026-09-28 — best Mag-7 performer. 120d candles show +10.5% run to $341.07 range high. Chasing strength here is late-cycle, not a fresh entry.
- Earnings 30 calendar days out (2026-10-29 amc, get_earnings): not within K1 kill zone, but IV will build and last four prints only modestly beat (Q3'26 actually missed: $1.91 vs $1.92e). Adding directional length now means carrying vol into a print with mediocre beat magnitude.
- Concentration risk in the tape itself: top-10 S&P names = ~38% of index (news 2026-09-27). AAPL long is a levered bet on the same crowded Mag-7 trade already at MAGS ATH ($72.20).
- What breaks the house view: daily close < $325 (below 20d base), any China/tariff headline, or a soft services print on 10/29. Sub-$310 = trend fail.
- Lower-variance alt: pair long AAPL vs short an equal-weight-lagging Mag-7 name, or wait for post-print vol crush.
Public scope: no account, book or venue behind this consult — assessing AAPL's own risk profile only.
VERDICT: neutral — carry with tight risk budget
- AAPL 336.89, −0.45% vs SPY −0.04% / QQQ +0.13% as of 2026-09-29T08:30Z: mild single-name underperformance today, not a break.
- Concentration risk framing: at ~$337, a single AAPL lot sized >30% of a book would violate desk concentration guardrail — size discipline matters more than direction here.
- Account-level positioning is withheld from the public transcript.
- Gap/event risk: mega-cap with earnings, China demand headlines, and regulatory (DOJ/EU) tail — realized vol is contained but headline gap risk is asymmetric to the downside.
- What breaks a constructive stance: (a) close below the prior swing / 50d that trips trend-followers, (b) services revenue growth print decelerating, (c) iPhone unit guide cut, (d) escalation of App Store remedies.
I'll pull the positioning, flow, and catalyst picture on AAPL before rendering a view.
VERDICT: hold (leaning crowded)
- Tape: AAPL $336.89, -0.45% vs prev close $338.40, sitting ~2.4% off the 52w high $345.34. 52w return +32.8% — extended but not vertical.
- Positioning read: crowded on fundamentals — P/E 38.5 vs peer median ~28, P/B 50.98 (worst in comp set), EV/EBITDA 34.4 vs SNDK 19.6 / NTAP 20.0. Fund-level 13F detail not available for this name right now.
- Insider flow: unambiguously distributive. 365d net -$173.8M across 8 sellers, zero buys; Levinson -$86.7M, Cook -$49.9M, O'Brien -$18.7M; Newstead still trimming into Sept ($340 tape, filed 2026-09-24). No cluster buys anywhere on the tape.
- Sector: XLK leading quadrant, momentum +359bps vs SPY, flow_score +1.77 — the wrapper is helping, not the name.
- Catalyst clock: FQ4 print 2026-10-29 amc, EPS est $2.02. Last two quarters were narrow beats then a miss — setup is not a lay-up.
- What breaks the view: a clean iPhone cycle beat + Services acceleration on 10/29, or XLK leadership rotating out (would remove the passive bid holding the multiple up).
I'll pull the fundamentals picture directly before cross-examining peers.
VERDICT: neutral — quality is real, price already reflects it, and the print risk is 30 days out
Cross-examination of peers:
- SELL-SIDE-MD's peer set is misleading — the compare_with_peers universe is DELL/SNDK/WDC/HPE/NTAP/HPQ/SMCI (hardware/storage), not Mag-7. AAPL's P/E 38.5, P/B 50.98, EV/EBITDA 34.4 do look rich there, but the real comps are MSFT/GOOGL/META — the "expensive vs peers" framing is overstated.
- RED-TEAM correctly flags the earnings tape: last 4 prints beat by only ~$0.02-$0.11 with Q3'26 a $0.01 miss ($1.91 vs $1.9271e, get_earnings). Next print 2026-10-29 amc, EPS est $2.02, 30 days out — IV build into a low-beat-magnitude setup is a real headwind.
- RISK understates the quality anchor: ROE 137%, ROIC 70.3%, op margin 33.2%, FCF margin 23.7% — best-in-class cash generation supports the multiple even if it doesn't expand it.
- Growth is the weak link: rev +14.2% YoY, EPS +32.6% YoY — decent, not enough to justify multiple expansion from here.
- What breaks the desk view: (a) Services decel or iPhone unit guide cut on 10/29, (b) daily close <$325 trend fail, (c) multiple re-rate if XLK leadership rotates. Upside break: clean Services accel + AI monetization narrative.
I'll verify the earnings date and price claims before ruling.
VERDICT: reconsider (no kill trigger — peers converged on neutral, which is defensible; but they under-weighted insider distribution and multiple risk)
- Earnings check (K1 clear): 2026-10-29 amc is ~21 trading days out — outside the 1-day K1 window. Estimate $2.02 EPS confirmed. No hard kill.
- Fact checks: AAPL $337.08 −0.39% (get_quote 2026-09-29T08:31Z) — peers' $336.89/−0.45% was stale by minutes, materially accurate. XLK +0.28% today, not the "+359bps vs SPY" — that was a longer-window rotation number, not intraday; peer should have labeled the window.
- Where peers are soft: all three landed neutral/conf ~58-62 while the insider tape shows −$173.8M net, zero buys, Cook + Levinson trimming — that is a stronger *negative* signal than "neutral" implies. EQUITY peer buried it; MD peer flagged it but still said hold.
- Multiple risk understated: P/E 38.5, EV/EBITDA 34.4, P/B 51 into a binary print in 21 trading days with a Q3 miss already on the tape — asymmetry skews down.
- What breaks the house view: (a) AAPL close < ~$325 (50d trend break) pre-print; (b) Services growth <11% YoY on 10/29; (c) iPhone unit guide cut; (d) XLK flow_score rolling negative.
- Lower-variance alternative: express caution via XLK relative trim or defined-risk downside structure into 10/29 rather than outright short a compounder.
Public scope — no account behind this consult; account tools withheld. I'll assess AAPL's own risk profile (vol, drawdown, gap risk, concentration a position *would* carry).
VERDICT: neutral — peers converge correctly, but all three under-weight the standalone gap risk into 10/29.
Cross-examination:
- Equity peer cites quality metrics but glosses over that a 38.5x P/E name carrying a binary print in 30d has asymmetric downside — a 5–10% gap on a Services miss is a normal AAPL earnings move, not a tail.
- Sell-side correctly flags insider distribution (-$173.8M/365d, get_insider_transactions cited) but calls it "hold" — persistent C-suite selling with zero buys is a *risk* signal, not neutral.
- Red-team is closest to right on the "chasing strength" framing but the pair-trade suggestion is a structure recommendation the desk can't make in public scope.
Risk-desk additions peers missed:
- AAPL $337.08, -0.39% — sitting 2.4% off 52w high $345.34 with IV building into 10/29 print.
- A full-weight AAPL position *would* concentrate into the same Mag-7/XLK factor already ~38% of S&P — factor-doubling, not diversifying.
- 52w +32.8% run means realized-vol-adjusted entry here is late-cycle; drawdown-to-$310 = ~8%, to $290 = ~14%.
What breaks the house view: clean iPhone + Services beat 10/29 (breaks bear), or close <$325 / China headline / Services miss (breaks bull).
I'll pull the positioning data before cross-examining.
VERDICT: hold — house view survives cross-examination but the flow tape argues against adding here.
Cross-examination of peers:
- Equity desk underweights insider tape. 180d insider net −$115.2M across 6 sellers, zero buys; cluster sells 2025-10 and 2026-04. Cook −$49.9M, Levinson −$86.7M. Not a sell signal on its own — most is programmatic 10b5-1 — but it removes any "insiders confirming" leg from a long thesis.
- Red-team's "chasing strength" call is corroborated by sector data, not refuted. XLK is the leading quadrant (RS 103.8, momentum +359bp, flow_score +1.77, get_sector_rotation) — AAPL long is the crowded expression of a crowded sector. Underowned it is not.
- Risk desk missed the 8-K/A 5.02 exec-change filing 2026-09-01 — minor, but a governance data point ahead of the 10-29 print worth flagging.
- Fund ownership not available for this name right now — cannot confirm 13F accumulation/distribution directly.
What breaks it: iPhone/Services miss 10-29, App Store remedy escalation, close < $325, or XLK rolling out of leading quadrant.
Positioning read: crowded-long, insider-distributing.
Flow read: sector leadership intact, single-name flow neutral-to-heavy.
Desk stance: hold; the desk would be a better buyer into post-print vol crush than into strength here.