I find where a process actually breaks, and build the tool that closes the gap.

Credit origination and customer mapping inside a regulated bank, filings research held to a bar set in advance, and the reasoning written down, wrong decisions included and learned from.

Jacob Eickhoff Finance & Accounting, UW–Eau Claire · AI certificate, MIT · seeking consulting roles, May 2027

Exhibit 1 Six Engagements: three assigned, three self-directed. Four ended in a working tool.

Tap, hover or tab to an Engagement; select one to open it.

View the data
The six Engagements by who set the scope and what the work produced
No.EngagementScopeOutputQuadrantDescribed asIn one line
01Customer IntelligenceAssigned by a SponsorBuilt a working toolTools under someone else’s rulesAssigned · working toolMapping and profitability tools that gave leadership its first map of a customer base it had only seen as rows.
02Credit Process RebuildAssigned by a SponsorBuilt a working toolTools under someone else’s rulesAssigned · working tool · ongoingLoan origination rebuilt as local-only tools, with the approval presentation split into three stages: fill, analyze, review.
03Hedge Fund Case CompetitionAssigned by a SponsorProduced analysisAnalysis to a briefAssigned · analysisA team thesis that the market underprices companies putting AI to work, next to the ones selling it, tested through an intake pipeline we built with Python and LLMs.
04ResearchSelf-directedProduced analysisResearch I can be wrong inSelf-directed, faculty-advised · analysisWhether AI-edited language in SEC filings predicts stock returns. The project where I learned to build results I can defend, and to rebuild from ones I can’t.
05Investment Decision ToolsSelf-directedBuilt a working toolSystems I own end to endSelf-directed · product design and architectureA decision-discipline system for active investors. It measures how closely each trade followed a plan set in advance, using the broker’s own record, and a built-in language model reviews every decision: was it the right call, and was it carried out as planned.
06Regime & Sentiment AllocatorSelf-directedBuilt a working toolSystems I own end to endSelf-directed · systemA two-layer allocation system, built and run end to end: a macro regime call, then sentiment scoring from public commentary. Published as working architecture.
Source: published; each Engagement’s scope and output as its Case Study states them. Placement is by category, not by score: where a mark sits inside its quadrant means nothing.

What two years of it has added up to.

  • 3,923 assertions

    Automated checks over one credit-origination toolset. None of them failing.
  • 13 tools shipped

    Browser tools across two Engagements. No server, no account, no install.
  • 9 decisions recorded

    Architecture decisions written down with the alternative each was chosen over.

Three of the six, working, below.

Each exhibit recreates one piece of the real tool, not the whole of it. Any figure not published elsewhere on the site is synthetic and labeled so.

Engagement 01Customer Intelligence

A map of dots gets looked at. A number for the spot somebody pointed at gets argued with

Leadership had only ever seen its customer base as rows in an export. The tool I built turned those rows into a story they had never been able to see: point at an area, and see what it actually earns.

Why hovering shows the math. A color gives you the answer without the work. Hovering a location shows loan income minus deposit cost, so a disagreement lands on a specific number that can be checked.

Read the Case Study

Exhibit 2 What sits inside the circle, and what it earns

Click or drag the map to place the circle; size it with the slider.

View the data
Synthetic locations, one per row: the area it belongs to, where it sits in miles east and north of the map’s south-west corner, what its loans earn and its deposits cost in a year, in dollars, the net of the two, and its holder’s age and age band.
LocationAreaMiles eastMiles northLoan incomeDeposit expenseNetAgeAge band
L01Area A5.59.458,0002,90055,1004435–49
L02Area A5.312.229,00028,7003006565–79
L03Area A6.410.341,00038,2002,8002618–34
L04Area A2.69.538,00027,30010,7002518–34
L05Area A4.111.9040,000−40,0003318–34
L06Area A5.311.6024,600−24,6001818–34
L07Area A4.59.9021,500−21,5006665–79
L08Area A7.610.97,00041,000−34,0003118–34
L09Area A3.910.911,00023,900−12,9006665–79
L10Area A6.311.550,0008,30041,7005950–64
L11Area A4.711.202,400−2,4008980+
L12Area A6.310.4019,700−19,7005150–64
L13Area A7.811.263,00017,80045,2001918–34
L14Area A4.210.5025,300−25,3008780+
L15Area A4.311.269,00020,30048,7005350–64
L16Area A6.28.079,00025,90053,1003118–34
L17Area B14.57.525,00025,900−9005150–64
L18Area B13.24.651,0008,90042,1006765–79
L19Area B15.56.052,00020,40031,6007765–79
L20Area B12.23.912,00034,800−22,8008880+
L21Area B11.85.0024,500−24,5001818–34
L22Area B15.25.070,00015,40054,6005950–64
L23Area B12.46.164,00018,50045,5008080+
L24Area B12.69.704,700−4,7004535–49
L25Area B15.46.721,00035,200−14,2003418–34
L26Area B14.13.8022,500−22,5006050–64
L27Area B13.56.984,20031,60052,6005850–64
L28Area B10.75.131,00010,40020,6003218–34
L29Area B12.93.6030,200−30,2004335–49
L30Area B14.27.6015,400−15,4005450–64
L31Area C5.74.9010,300−10,3003535–49
L32Area C6.82.687,00040,90046,1008380+
L33Area C3.14.282,00022,70059,3006450–64
L34Area C6.34.656,00027,10028,9005150–64
L35Area C4.83.8024,800−24,8001818–34
L36Area C4.74.5016,400−16,4007265–79
L37Area C6.35.775,0004,00071,0004635–49
L38Area C6.63.729,0003,40025,6006765–79
L39Area C5.95.151,00017,80033,2006665–79
L40Area C5.33.3017,000−17,0005650–64
L41Area D15.011.183,00039,50043,5005950–64
L42Area D16.211.108,600−8,6002418–34
L43Area D15.611.482,00024,30057,7006450–64
L44Area D18.29.911,0001,6009,4004635–49
L45Area D15.713.583,0009,60073,4002218–34
L46Area D16.111.765,00036,00029,0007465–79
L47Area D15.99.8029,300−29,3005550–64
L48Area D19.415.3014,900−14,9006050–64
Source: synthetic geography and synthetic accounts, invented for this site; the real tool’s figures are the Sponsor’s business and are not published. Each location carries its dollar figures directly, not the balances and rates the real tool multiplies. Dot color: net annual income, rose (loss) to blue (gain). The full Exhibit, where the circle can also be centered on an area, is in the Case Study.

Engagement 04ResearchFaculty-advised

The standard for success was set before any testing began, and finding nothing counts as an answer.

Whether AI-edited language in SEC filings predicts stock returns. The first question is whether that editing can be detected at all, so every detection method has to pass a fixed accuracy test before it’s used on a real filing.

Why it was rebuilt. I withdrew my own published first result after finding three defects in it. If no detector clears the bar, that is the finding, and the standard doesn’t move.

Read the Case Study

Exhibit 3 The test every detection method must pass: AUC ≥ 0.70 on moderately edited text, with false positives at 5% or under

AUC is how often a method ranks an edited passage above an untouched one. Drag the points, or try a detection method.

View the data
Four hypothetical detector profiles, each an AUC at every rung of edit intensity and a false-positive rate; at the foot, the Gate they are judged against
Hypothetical detectorAUC at the light rungAUC at the moderate rungAUC at the heavy rungFalse-positive rate on genuine pre-2020 footnotes
Sees only heavy edits0.560.630.902.5%
Blind0.510.530.563.0%
Noisy0.660.860.908.0%
Clears the bar0.670.760.903.5%
The GateWhat a detector must show before it may score a real filing
AUC at the moderate rungAt least 0.70
False-positive rate on genuine pre-2020 footnotesAt most 5%
Source: illustrative; the Gate as pre-registered in the Case Study. Every detector shown is hypothetical; no detector’s result is plotted here, because none has been judged against the Gate yet. Each profile carries its own false-positive rate. The full Exhibit, where the false-positive rate can also be moved, is in the Case Study.

Engagement 06Regime & Sentiment AllocatorSelf-directed

An allocation process that can be replayed, argued with, and shown to be wrong.

A two-layer system built and run end to end by one person: it fetches, classifies the macro regime, allocates across fifteen funds, and writes itself a plain-English briefing, on a timer.

Why there is no return figure here. The history it can be tested over is fifty-six trading days. A ratio annualized from that describes the window, not the system, so this is published as architecture.

Read the Case Study

Exhibit 4 The components that carry the loop, each with a fixed input and output

Select a component to see what goes in and what comes out.

View the data
Each component of the loop, with what it takes in and what it returns in the words of the paragraphs that state them, and the components its output goes to
ComponentInOutHands its output to
Data fetcherPublic macro series and public market prices — Treasury yields at two and ten years and the spread between them, high-yield and investment-grade credit spreads (the extra yield corporate bonds pay over Treasuries), the volatility index and its term structure (how expected volatility differs between the next month and the next three), and one- and three-month momentum (recent price return) for each of fifteen sector and credit exchange-traded funds.One dated row, fifty-eight columns wide.Regime classifier, Portfolio optimizer
Regime classifierA rolling window of at least twenty of those rows, plus sentiment signals for the energy and healthcare sectors.One of four regimes — Calm Growth, Turbulent Growth, Rate Stress, Risk Off — with a probability for each.Portfolio optimizer, Briefing, Dashboard
Portfolio optimizerThe regime and the current signal row.Weights across the same fifteen funds, summing to one.Briefing, Dashboard
Sentiment scorerEarnings-call transcripts and 10-K and 10-Q filings from the SEC’s public archive, collected by a companion updater that waits between requests to stay under the SEC’s rate limit.A score for each company on four dimensions — revenue tone, cost and margin direction, confident versus hedged language, newly disclosed risk — a weighted composite of the four, and a sector roll-up that goes back to the classifier as one of its features (the inputs a model learns from).Regime classifier, Briefing, Dashboard
SchedulerThe clock and the exchange calendar.A completed cycle, logged.No other component
BriefingThe regime name, the probability vector, the previous weights, the new weights, the sentiment signals.A few sentences of plain English saying what changed and why.Dashboard
DashboardThe regime and its four probabilities, the weights, the sentiment scores, and every past rebalance, which is saved to a local database.One page showing where the market stands, what the portfolio holds and why, and how both have changed over time.No other component
Source: published; the components’ inputs and outputs as the Case Study states them. It plays one cycle when it comes into view. A ring from the Scheduler starts it, and packets carry the data from component to component. Then it rests, and the arrows keep showing which way data travels. No performance figure is shown, because this system is published as architecture. The full Exhibit, where the flow keeps running and can be paused, is in the Case Study.

All six Engagements

All six Case Studies are published; the work index is the same six with a little more of each. An Engagement is listed here from the moment it exists, and its card is linked only once its page does — a link to a page that is not there yet is worse than no link.

Case StudyEngagement 02Ongoing

Rebuilding loan origination as tools that never touch a server

Nine browser tools, 3,923 checks, a review process split into three stages to spend less of the lender’s attention, and six defects the green suite never saw.

Read the full Case Study

“Saving the analyst an hour is no win if it costs the lender two.”

From What I Did, on why the approval presentation was separated into fill, analyze, then review.

Jacob Eickhoff, photographed against a plain background in a navy jacket.

A finance student who builds the software, and knows the business it has to run in.

For two years I’ve worked past the usual undergraduate track. A community bank in the Upper Midwest gave me the opportunity to work inside its operation and take processes nobody had written down somewhere better. I do the credit analysis, and I build the tools that change how it gets done. Every Case Study carries a What I Learned section, from a defect I found or an assumption that proved wrong. Those are the lessons I carry forward, and the reason the rest is worth reading.

Studying
BBA Finance, Accounting minor · May 2027
AI certificate, MIT Sloan & CSAIL
Working on
Credit analysis and AI implementation
Also
D-III track and field captain

Happy to walk through any of it.

Seeking consulting and finance roles for May 2027. Email is the fastest way to reach me.