GUILDACADEMYPartner API Β· Insiders deskALFREDJared Fletcher and Nancy Cole, licensed to Guild Academy as content inside its own site and community: every decision with the sentence written the day it was made, the book, the live record, and an independent backtest. One key, read-only, covering these two managers only. Nothing about any Alfred customer is reachable through it, and no order can be placed.
The live record is Alfred's own engine after each US close. The backtest is the same published rules run on QuantConnect's LEAN engine, which Alfred does not own, on the index as it stood each day β not today's members.
| Manager | Window | A year | Deepest fall | Sharpe |
|---|---|---|---|---|
Jared FletcherThe Capitol Tracker Β· slug congress | Last three years6 Nov 2023 β 6 Nov 2026See QuantConnect's report β | +34.1% | β21.5% | 1.58 |
Nancy ColeThe House Watcher Β· slug house | Last three years7 Nov 2023 β 7 Nov 2026See QuantConnect's report β | +26.8% | β24.4% | 1.21 |
Jared Fletcher against SPY, whole run: +14.5% a year against +14.6% on the same days, 3 Oct 2016 to 6 Nov 2026 β level with the index.
Guild's licence covers the Insiders desk: two managers who follow the stocks members of the US Congress disclose buying, acting on the public filing date and never with hindsight. The film is the pair in their own words; each summary below is the profile's.
Jared and Nancy explain the desk in turn, about a minute and a half. Two AI managers that follow written rules, not people; the film is drawn and the voices are computer-made. A licensee receives it as a file for its own library.
Jared Fletcher Β· The Capitol Tracker
Buys what US senators disclose buying Β· Washington DC Β· risk 4 of 5 Β· trades monthly Β· measured against SPY
Every keyed request carries Authorization: Bearer <key>. A key is issued per licence, shown once, and stored only as a hash; it covers the managers the licence names and answers 403 for any other. A revoked key answers 401 from the next call; a trial key answers 401 Key expired from its end date.
What to replace. YOUR_KEY below is the whole key you were sent. It already begins alf_, so paste it exactly as it is: nothing added in front, nothing taken off.
# No key: discovery β the resources, the auth scheme, the disclosure
curl https://alfredinvestments.ai/api/partner/v1
# Your key: the managers it covers
curl -H "Authorization: Bearer YOUR_KEY" \
https://alfredinvestments.ai/api/partner/v1/managers
# Your key: Nancy's decisions since 1 November, newest first
curl -H "Authorization: Bearer YOUR_KEY" \
"https://alfredinvestments.ai/api/partner/v1/managers/house/decisions?since=2026-11-01&limit=50"https://alfredinvestments.ai/api/partner/v1 in a browser or in Postman. The JSON that comes back lists every resource, the auth scheme and the disclosure. Nothing else is needed for this step.key. Every request in it is already set to Authorization: Bearer Token with that variable. Doing it by hand instead: on any request choose Authorization β Type Bearer Token β paste the key; Postman adds the header for you.GET /managers. A 200 with two managers and a X-RateLimit-Remaining header means the key works. A 401 means the key was pasted short or has ended; a 403 means a manager outside the licence was asked for./managers for the facts, the live-record figure and the backtest headline; /managers/{slug}/holdings for the book table; /managers/{slug}/record for the live chart (NAV beside the benchmark, same days); /managers/{slug}/backtest for the ten-year curve, fetched once a day at most and cached by run_date. The slugs are congress (Jared) and house (Nancy)./managers/{slug}/decisions?since=<newest ts you have seen>&limit=100. Keep the newest ts per manager; de-duplicate on id. Route on kind: filings_watch is the daily post, weekly_check the Friday post, trade and review the monthly moves, paused a note. Post reason word for word; it is written to be read as it is.disclosure string that ends every answer wherever the content is shown, and present the daily rows as reports: Jared and Nancy trade once a month, by rule.Base URL https://alfredinvestments.ai/api/partner/v1. All answers are JSON; every keyed answer ends with a disclosure string to print under the content.
| Call | Key | Answer |
|---|---|---|
GET / | no | Discovery: the resources, the auth scheme, the rate limit, this page, the disclosure. |
GET /managers | yes | The managers your key covers: the public facts of each profile, how many names it holds, the live record to date, and the independent backtest's headline. |
GET /managers/{slug}/decisions?since=&limit= | yes | Decisions, newest first, each with the public sentence written the day it was made. since is an ISO date or timestamp (rows strictly after it); limit is 1 to 500, 100 by default. |
GET /managers/{slug}/holdings | yes | The book as the engine holds it today: symbol and weight, $CASH included; weights sum to 1. |
GET /managers/{slug}/record | yes | The live record: the daily NAV series and the benchmark's over the same days. |
GET /managers/{slug}/backtest | yes | The independent backtest: both windows' figures, the data and universe it read, the run date and reference, and the daily curve. |
Each decision row carries a kind the connector can route on, and the public sentence under reason, safe to post verbatim. The sentence names what was done and why in plain English; it never carries a rule's parameters.
tradeweekly_checkfilings_watchreviewpausedSaid plainly: Jared and Nancy trade monthly. The daily rows are reports on what the public record disclosed, and should be presented as reports, never as trades. Rows the engine writes before a close is in are housekeeping and are not served.
One answer of each kind, abridged, as the key returned them on 10 Nov 2026 (the live figures will have moved). A correct answer is HTTP 200, a body ending with the disclosure string, and two headers: X-RateLimit-Limit and X-RateLimit-Remaining.
GET /managers/congress/decisions?since=2026-11-01&limit=100
{
"manager": "congress",
"decisions": [
{ "id": 4753, "ts": "2026-11-06T21:30:00+00:00", "kind": "weekly_check", "action": "hold",
"symbol": null, "qty": null, "price": null,
"reason": "Weekly check: 14 positions and 0% cash, each priced at today's close and still in the universe; the book is down 8.3% on the week; strongest holding FSLR (+15.3%), weakest PARA (-96.4%). The rules call for no change this week." },
{ "id": 4509, "ts": "2026-11-02T14:30:00+00:00", "kind": "trade", "action": "sell",
"symbol": "BRK-B", "qty": 0.030564, "price": 544.455,
"reason": "Sold BRK-B: Senate buying in it has fallen behind other companies." }
],
"disclosure": "Alfred Investments is an educational and software service. β¦"
}GET /managers/house/holdings
{
"manager": "house",
"as_of": "2026-11-10T00:35:10+00:00",
"holdings": [
{ "symbol": "ACN", "weight": 0.08072 },
{ "symbol": "PG", "weight": 0.079808 },
{ "symbol": "AAPL", "weight": 0.076704 },
{ "symbol": "BRK-B", "weight": 0.075797 },
β¦
],
"disclosure": "β¦"
}GET /managers/congress/record
{
"manager": "congress",
"benchmark": "SPY",
"nav": [ { "d": "2026-10-16", "nav": 236.63001 }, β¦, { "d": "2026-11-09", "nav": 215.619892 } ],
"benchmark_nav": [ { "d": "2026-10-16", "nav": 185.80 }, β¦, { "d": "2026-11-09", "nav": 178.999421 } ],
"disclosure": "β¦"
}GET /managers/house/backtest
{
"manager": "house",
"engine": "quantconnect_lean", "engine_name": "QuantConnect LEAN",
"data": "QuantConnect prices; Quiver Quantitative US Congress Trading filings",
"universe": "Representatives' disclosed purchases by filing date",
"run_date": "2026-11-09", "tier": "Researcher seat",
"run_ref": "QuantConnect project 39026813 backtest e058d8adβ¦",
"windows": [
{ "label": "10y", "start": "2016-10-03", "end": "2026-11-07", "cagr": 0.268376, "sharpe": 1.1889,
"max_fall": -0.298901, "worst_month": -0.131246, "orders": 1635 },
{ "label": "3y", "start": "2023-11-07", "end": "2026-11-07", "cagr": 0.267679, "sharpe": 1.2094,
"max_fall": -0.243834, "worst_month": -0.081762, "orders": null }
],
"nav": [ { "d": "2016-10-03", "nav": 0.9678 }, β¦, { "d": "2026-11-07", "nav": 10.78 } ],
"disclosure": "β¦"
}X-RateLimit-Limit and X-RateLimit-Remaining on every keyed answer, 429 with Retry-After when spent.decisions?since= hourly is ample.run_date says when. Fetch it daily at most and cache it by run_date.A licence is agreed in writing before a key is issued. To ask about one, write to ijaz529@gmail.com.
Alfred Investments is an educational and software service. Each manager is a fictional persona running a written, rules-based strategy; none is a person or a licensed adviser. Nothing here is investment advice or a recommendation. Past performance, live or simulated, does not predict future results. See also how we stay honest.
Nancy Cole against SPY, whole run: +26.8% a year against +14.7% on the same days, 3 Oct 2016 to 7 Nov 2026 β ahead of the index, with a shallower fall (β29.9% against β33.7%).
Data: QuantConnect prices and Quiver Quantitative's US Congress Trading filings, read by filing date; a broker's fee model. Each run's project and backtest reference is on the report page.
Jared Fletcher β year by year, whole run
| Year | Jared | Deepest fall | SPY | Gap | Months |
|---|---|---|---|---|---|
| 2016* | +3.8% | β1.7% | +4.0% | β0.1 pp | month by monthOct +0.0%Nov +0.0%Dec +3.8% SPYOct β1.7%Nov +3.7%Dec +2.0% |
| 2017 | +21.2% | β5.8% | +21.7% | β0.5 pp | month by monthJan +4.8%Feb +3.0%Mar +0.3%Apr +1.4%May β0.0%Jun +2.6%Jul +2.2%Aug β2.5%Sep +4.3%Oct +0.0%Nov +0.7%Dec +2.8% SPYJan +1.8%Feb +3.9%Mar +0.1%Apr +1.0%May +1.4%Jun +0.6%Jul +2.1%Aug +0.3%Sep +2.0%Oct +2.4%Nov +3.1%Dec +1.2% |
| 2018 | β6.1% | β24.8% | β4.6% | β1.6 pp | month by monthJan +3.9%Feb β4.6%Mar β2.7%Apr +2.3%May +2.5%Jun +1.8%Jul +5.8%Aug +2.1%Sep +2.2%Oct β7.8%Nov β1.3%Dec β9.3% SPYJan +5.6%Feb β3.6%Mar β2.7%Apr +0.5%May +2.4% |
| 2019 | +43.7% | β10.8% | +31.2% | +12.5 pp | month by monthJan +14.4%Feb +4.7%Mar +3.2%Apr +4.0%May β8.9%Jun +8.2%Jul +2.4%Aug β3.0%Sep +2.0%Oct +2.1%Nov +3.0%Dec +6.4% SPYJan +8.0%Feb +3.2%Mar +1.8%Apr +4.1%May β6.4% |
| 2020 | β2.2% | β48.3% | +18.3% | β20.5 pp | month by monthJan β1.1%Feb β9.4%Mar β30.3%Apr +33.0%May +0.6%Jun +1.5%Jul +5.2%Aug +6.7%Sep β6.5%Oct β4.4%Nov +12.9%Dec +1.7% SPYJan β0.0%Feb β7.9%Mar β12.5%Apr +12.7%May +4.8% |
| 2021 | +13.6% | β9.2% | +28.7% | β15.1 pp | month by monthJan β0.5%Feb +0.0%Mar +3.5%Apr +0.0%May +4.3%Jun β1.6%Jul +0.2%Aug +4.3%Sep β4.3%Oct +6.9%Nov β2.3%Dec +2.8% SPYJan β1.0%Feb +2.8%Mar +4.5%Apr +5.3%May +0.7% |
| 2022 | β20.3% | β23.0% | β18.2% | β2.2 pp | month by monthJan β8.8%Feb β0.4%Mar +5.2%Apr β11.2%May +1.6%Jun β8.4%Jul +10.0%Aug β2.1%Sep β8.5%Oct +4.6%Nov +4.7%Dec β6.6% SPYJan β5.3%Feb β3.0%Mar +3.8%Apr β8.8%May +0.2% |
| 2023 | +21.0% | β15.6% | +26.2% | β5.1 pp | month by monthJan +8.2%Feb β3.1%Mar +4.8%Apr +0.0%May β3.3%Jun +9.0%Jul +4.6%Aug β5.7%Sep β5.1%Oct β3.0%Nov +9.9%Dec +4.7% SPYJan +6.3%Feb β2.5%Mar +3.7%Apr +1.6%May +0.5% |
| 2024 | +26.2% | β9.9% | +24.9% | +1.3 pp | month by monthJan +2.4%Feb +5.3%Mar +3.6%Apr β4.0%May +6.4%Jun β6.5%Jul +10.8%Aug β4.2%Sep +1.8%Oct +0.5%Nov +4.9%Dec +3.7% SPYJan +1.6%Feb +5.2%Mar +3.3%Apr β4.0%May +5.1% |
| 2025 | +51.1% | β21.5% | +17.7% | +33.4 pp | month by monthJan +15.9%Feb β2.9%Mar β7.6%Apr +3.3%May +10.9%Jun +7.5%Jul +2.4%Aug +0.4%Sep +4.8%Oct +8.7%Nov +0.7%Dec +0.0% SPYJan +2.7%Feb β1.3%Mar β5.6%Apr β0.9%May +6.3% |
| 2026* | +13.3% | β15.3% | +8.3% | +4.9 pp | month by monthJan β1.7%Feb β4.0%Mar β6.6%Apr +14.8%May +1.9%Jun +1.5%Jul +7.3%Aug +6.4%Sep β1.4%Oct β0.8%Nov β3.0% SPYJan +1.5%Feb β0.9%Mar β4.9%Apr +10.5%May +5.3%Jun β1.0% |
* partial: the run's first year from its start, or the current year to 6 Nov 2026. A year's return is the last point of the year over the last point of the year before; the fall is measured from that year's own high. SPY is the engine's own price series over the same days; the gap is Jared minus SPY, in percentage points.
Nancy Cole β year by year, whole run
| Year | Nancy | Deepest fall | SPY | Gap | Months |
|---|---|---|---|---|---|
| 2016* | +8.5% | β3.2% | +4.0% | +4.6 pp | month by monthOct +0.0%Nov +1.8%Dec +6.5% SPYOct β1.7%Nov +3.7%Dec +2.0% |
| 2017 | +22.0% | β3.1% | +21.7% | +0.3 pp | month by monthJan β0.9%Feb +3.6%Mar +0.6%Apr +2.4%May β0.6%Jun +1.9%Jul +0.4%Aug +2.0%Sep β0.9%Oct +7.0%Nov +3.1%Dec +1.8% SPYJan +1.8%Feb +3.9%Mar +0.1%Apr +1.0%May +1.4%Jun +0.6%Jul +2.1%Aug +0.3%Sep +2.0%Oct +2.4%Nov +3.1%Dec +1.2% |
| 2018 | +1.4% | β19.9% | β4.6% | +6.0 pp | month by monthJan +8.1%Feb β2.6%Mar β2.4%Apr +1.1%May +3.8%Jun +0.4%Jul +6.4%Aug +1.9%Sep β1.2%Oct β4.1%Nov +1.0%Dec β9.7% SPYJan +5.6%Feb β3.6%Mar β2.7%Apr +0.5%May +2.4% |
| 2019 | +33.8% | β11.0% | +31.2% | +2.6 pp | month by monthJan +13.3%Feb +0.0%Mar +3.3%Apr +5.8%May β9.6%Jun +8.4%Jul +1.5%Aug β1.6%Sep +2.1%Oct +5.6%Nov +0.3%Dec +1.9% SPYJan +8.0%Feb +3.2%Mar +1.8%Apr +4.1%May β6.4% |
| 2020 | +43.1% | β29.9% | +18.3% | +24.8 pp | month by monthJan +1.6%Feb β5.7%Mar β11.9%Apr +19.4%May +3.7%Jun +5.4%Jul +5.1%Aug +9.1%Sep β0.4%Oct β4.5%Nov +14.8%Dec +3.8% SPYJan β0.0%Feb β7.9%Mar β12.5%Apr +12.7%May +4.8% |
| 2021 | +37.2% | β17.9% | +28.7% | +8.5 pp | month by monthJan +3.2%Feb +9.8%Mar β0.1%Apr +8.0%May +8.8%Jun +8.4%Jul β5.0%Aug β1.5%Sep +6.3%Oct +6.3%Nov β11.0%Dec +1.0% SPYJan β1.0%Feb +2.8%Mar +4.5%Apr +5.3%May +0.7% |
| 2022 | +28.6% | β19.3% | β18.2% | +46.7 pp | month by monthJan +5.5%Feb +7.4%Mar +6.6%Apr β1.5%May +4.1%Jun β13.0%Jul +10.9%Aug +3.3%Sep β5.5%Oct +11.8%Nov +2.1%Dec β3.3% SPYJan β5.3%Feb β3.0%Mar +3.8%Apr β8.8%May +0.2% |
| 2023 | +19.8% | β7.9% | +26.2% | β6.4 pp | month by monthJan +7.8%Feb β0.1%Mar β1.3%Apr +0.6%May β0.9%Jun +4.8%Jul +2.2%Aug +1.5%Sep +1.1%Oct β0.2%Nov +4.3%Dec β1.2% SPYJan +6.3%Feb β2.5%Mar +3.7%Apr +1.6%May +0.5% |
| 2024 | +21.8% | β7.6% | +24.9% | β3.1 pp | month by monthJan +4.9%Feb +4.8%Mar +0.1%Apr β5.3%May +1.3%Jun +2.4%Jul +2.6%Aug +2.1%Sep +3.8%Oct +0.7%Nov +4.8%Dec β1.8% SPYJan +1.6%Feb +5.2%Mar +3.3%Apr β4.0%May +5.1% |
| 2025 | +27.6% | β24.4% | +17.7% | +9.9 pp | month by monthJan +2.5%Feb β1.1%Mar β9.3%Apr +3.4%May +10.3%Jun +7.9%Jul +0.0%Aug +2.6%Sep +5.6%Oct +6.3%Nov β1.2%Dec β0.9% SPYJan +2.7%Feb β1.3%Mar β5.6%Apr β0.9%May +6.3% |
| 2026* | +30.4% | β13.4% | +8.7% | +21.8 pp | month by monthJan β0.5%Feb β0.9%Mar β4.4%Apr +19.3%May +12.4%Jun β6.9%Jul +4.9%Aug +5.8%Sep β1.5%Oct +2.4%Nov β1.0% SPYJan +1.5%Feb β0.9%Mar β4.9%Apr +10.5%May +5.3%Jun β1.0% |
* partial: the run's first year from its start, or the current year to 7 Nov 2026. A year's return is the last point of the year over the last point of the year before; the fall is measured from that year's own high. SPY is the engine's own price series over the same days; the gap is Nancy minus SPY, in percentage points.
QuantConnect's own Strategy Report for each run, statistics and charts as the engine produced them, is on its own page. Read from the same table the feed serves, so this page and the feed cannot disagree; the three-year row is cut from the same curve. QuantConnect is the engine the test ran on; it has not reviewed or endorsed Alfred, its managers or these results.
Hypothetical: these rules replayed over past prices, with no money at risk. The rules were written knowing this history, so read it as a ceiling rather than an expectation.
Nancy Cole Β· The House Watcher
Buys what members of the House disclose buying Β· Washington DC Β· risk 4 of 5 Β· trades monthly Β· measured against SPY
Key expiredThe hourly poll in a dozen lines of JavaScript (Node 18 or later; any language with an HTTP client does the same):
const BASE = "https://alfredinvestments.ai/api/partner/v1";
const KEY = process.env.ALFRED_KEY; // the whole key, begins alf_
const since = { congress: null, house: null }; // newest ts seen per manager
async function poll(slug) {
const url = new URL(`${BASE}/managers/${slug}/decisions`);
if (since[slug]) url.searchParams.set("since", since[slug]);
url.searchParams.set("limit", "100");
const res = await fetch(url, { headers: { Authorization: `Bearer ${KEY}` } });
if (res.status === 429) return; // allowance spent; the next hour is fine
if (!res.ok) throw new Error(`${slug}: ${res.status}`);
const { decisions, disclosure } = await res.json();
for (const d of decisions.slice().reverse()) { // oldest first for posting
postToCircle(slug, d.kind, d.reason, disclosure); // your side
since[slug] = d.ts;
}
}
setInterval(() => ["congress", "house"].forEach(poll), 60 * 60 * 1000);A manager from GET /managers, abridged:
{
"slug": "congress",
"name": "Jared Fletcher",
"title": "The Capitol Tracker",
"cadence": "monthly",
"benchmark": "SPY",
"profile_url": "https://alfredinvestments.ai/managers/congress",
"positions": 15,
"live_record": { "first_d": "2026-10-16", "last_d": "2026-11-06", "days": 16, "return": -0.1033, "benchmark_return": -0.0366 },
"backtest": { "engine": "quantconnect_lean", "engine_name": "QuantConnect LEAN",
"window_start": "2016-10-03", "window_end": "2026-11-06",
"cagr": 0.1452, "sharpe": 0.72, "max_fall": -0.4832, "run_date": "2026-11-07" }
}The backtest block is null for a manager with no independent run. The full run β both windows, the data and universe it read, the run reference and the daily curve rebased to 1 β is at /managers/{slug}/backtest.
And a refusal, which is always one line with the status in the HTTP code:
HTTP 401
{ "error": "Unknown key" }
HTTP 403
{ "error": "This key does not cover that manager" }
HTTP 429 X-RateLimit-Remaining: 0 Retry-After: 60
{ "error": "Rate limit reached" }