{
 "site": "https://lisbontechfringe.com/",
 "built_at": "2026-11-12T06:50:24.368Z",
 "about": "Lisbon Tech Fringe model experiments and the model router. Counts only: no prompts, page text or model output.",
 "experiments": [
  {
   "id": "E1",
   "at": "2026-11-11T12:40Z",
   "task": "Second opinion: does the event's public page agree with our entry (status, start, end, place)?",
   "tier": "check",
   "model": "meta-llama/llama-3.1-8b-instruct",
   "open_weight": true,
   "approach": "the model judges match / mismatch itself",
   "events_checked": 170,
   "calls": 176,
   "cost_usd": 0.00604,
   "cost_per_100_events_usd": 0.0035,
   "tokens_in": 141379,
   "tokens_out": 5477,
   "result": "125 events flagged, almost all noise (time formats such as 6:30 PM vs 18:30, place wording). Status: 163 match, 3 mismatch, 4 unparsed.",
   "verdict": "too noisy to use",
   "mismatches": 125,
   "note": "Read the organisers' public event pages. These runs predate the Luma terms hold (work/49, 16:23 UTC): since then the check never fetches luma.com, lu.ma or meetup.com pages, and Luma events are to be compared against the calendars' public iCal data instead."
  },
  {
   "id": "E2",
   "at": "2026-11-11T12:49Z",
   "task": "Same task, new design: the model only extracts what the page says; the comparison is done in code on times normalised to UTC minutes",
   "tier": "check",
   "model": "meta-llama/llama-3.3-70b-instruct",
   "open_weight": true,
   "approach": "extract, then compare in code",
   "events_checked": 170,
   "calls": 174,
   "cost_usd": 0.052,
   "cost_per_100_events_usd": 0.031,
   "result": "14 flagged, of which 3 worth a person's look (yorkseed salon, ai-engineers lunch, elevon night). Most others were model slips (wrong year, room names read as places).",
   "verdict": "useful as evidence",
   "mismatches": 14,
   "worth_a_look": 3,
   "note": "Read the organisers' public event pages. These runs predate the Luma terms hold (work/49, 16:23 UTC): since then the check never fetches luma.com, lu.ma or meetup.com pages, and Luma events are to be compared against the calendars' public iCal data instead."
  },
  {
   "id": "E3",
   "at": "2026-11-11T13:24Z",
   "task": "Same check, the hourly run with researcher.2's re-reads",
   "tier": "check",
   "model": "meta-llama/llama-3.3-70b-instruct",
   "open_weight": true,
   "approach": "extract, then compare in code",
   "events_checked": 171,
   "calls": 171,
   "cost_usd": 0.074,
   "cost_per_100_events_usd": 0.043,
   "result": "17 flagged; the 3 earlier ones still among them.",
   "verdict": "hourly run, about 0.07 USD",
   "mismatches": 17,
   "note": "Read the organisers' public event pages. These runs predate the Luma terms hold (work/49, 16:23 UTC): since then the check never fetches luma.com, lu.ma or meetup.com pages, and Luma events are to be compared against the calendars' public iCal data instead."
  },
  {
   "id": "E4",
   "at": "2026-11-11T12:01Z",
   "task": "First calls through the router (cheap tier) and the credit guard",
   "tier": "cheap",
   "model": "deepseek/deepseek-v4-flash",
   "open_weight": true,
   "approach": "a hello call, then the credit check",
   "events_checked": 0,
   "calls": 3,
   "cost_usd": 0,
   "cost_per_100_events_usd": null,
   "result": "The OpenRouter account was out of credit (402); the router recorded it and then refused calls below its minimum credit. A mock call (no network) also passed.",
   "verdict": "the guard works",
   "mismatches": null
  }
 ],
 "comparison": {
  "title": "8B against 70B on the same 170 events",
  "a": {
   "model": "meta-llama/llama-3.1-8b-instruct",
   "params": "8B",
   "flagged": 125,
   "cost_per_100_events_usd": 0.0035
  },
  "b": {
   "model": "meta-llama/llama-3.3-70b-instruct",
   "params": "70B",
   "flagged": 14,
   "worth_a_look": 3,
   "cost_per_100_events_usd": 0.031
  },
  "lesson": "The extra cost is about 9 times and still under a tenth of a cent per event. Most of the gain came from the design (extract, then compare in code), not only from the bigger model."
 },
 "router": {
  "tiers": {
   "cheap": {
    "model": "deepseek/deepseek-v4-flash",
    "fallback": "anthropic/claude-haiku-5.5",
    "usd_per_million_tokens": "0.09/0.18",
    "open_weight": true,
    "for": "classify, extract, summarise, dedupe, check, draft first passes (open weights)"
   },
   "strong": {
    "model": "anthropic/claude-sonnet-5.5",
    "fallback": "deepseek/deepseek-v4-pro",
    "usd_per_million_tokens": "2/10",
    "open_weight": false,
    "for": "writing that is published, reviews, anything a person will read as ours"
   },
   "hard": {
    "model": "anthropic/claude-opus-5.5",
    "fallback": "anthropic/claude-sonnet-5.5",
    "usd_per_million_tokens": "4/20",
    "open_weight": false,
    "for": "hard reasoning, the lead's decisions; use sparingly"
   },
   "long": {
    "model": "deepseek/deepseek-v4-flash",
    "fallback": "google/gemini-3.6-flash",
    "usd_per_million_tokens": "0.09/0.18",
    "open_weight": true,
    "for": "a whole page set or repository in one prompt (1M context)"
   },
   "check": {
    "model": "meta-llama/llama-3.3-70b-instruct",
    "fallback": "meta-llama/llama-3.1-8b-instruct",
    "usd_per_million_tokens": "0.71/0.71",
    "open_weight": true,
    "for": "second-opinion checks: extracts what a public page says; the comparison is done in code; its word is evidence, never fact (the 8B model was too noisy, the lead 12:49 UTC)"
   }
  },
  "daily_cap_usd": 5,
  "min_credit_usd": 5
 },
 "ledger": {
  "day": "2026-11-11",
  "updated": "2026-11-12T00:20:54Z",
  "calls": 1019,
  "cost_usd": 0.33697,
  "by_model": {
   "deepseek/deepseek-v4-flash": {
    "calls": 4,
    "ok": 2,
    "cost_usd": 0,
    "tokens_in": 24,
    "tokens_out": 16
   },
   "meta-llama/llama-3.1-8b-instruct": {
    "calls": 176,
    "ok": 176,
    "cost_usd": 0.006035,
    "tokens_in": 141379,
    "tokens_out": 5477
   },
   "meta-llama/llama-3.3-70b-instruct": {
    "calls": 838,
    "ok": 838,
    "cost_usd": 0.33093,
    "tokens_in": 629733,
    "tokens_out": 32587
   },
   "?": {
    "calls": 1,
    "ok": 0,
    "cost_usd": 0,
    "tokens_in": 0,
    "tokens_out": 0
   }
  },
  "by_tier": {
   "cheap": {
    "calls": 4,
    "ok": 2,
    "cost_usd": 0,
    "tokens_in": 24,
    "tokens_out": 16
   },
   "check": {
    "calls": 1014,
    "ok": 1014,
    "cost_usd": 0.336965,
    "tokens_in": 771112,
    "tokens_out": 38064
   },
   "?": {
    "calls": 1,
    "ok": 0,
    "cost_usd": 0,
    "tokens_in": 0,
    "tokens_out": 0
   }
  },
  "by_agent": {
   "dev.2.fringe@PrompTugal.dinis": {
    "calls": 1015,
    "ok": 1014,
    "cost_usd": 0.336965,
    "tokens_in": 771112,
    "tokens_out": 38064
   },
   "a": {
    "calls": 4,
    "ok": 2,
    "cost_usd": 0,
    "tokens_in": 24,
    "tokens_out": 16
   }
  },
  "by_task": {
   "WS-215/test": {
    "calls": 1,
    "ok": 0,
    "cost_usd": 0,
    "tokens_in": 0,
    "tokens_out": 0
   },
   "t": {
    "calls": 2,
    "ok": 1,
    "cost_usd": 0,
    "tokens_in": 12,
    "tokens_out": 8
   },
   "WS-215/second-opinion": {
    "calls": 1015,
    "ok": 1015,
    "cost_usd": 0.336965,
    "tokens_in": 771124,
    "tokens_out": 38072
   },
   "WS-215/tip-classify": {
    "calls": 1,
    "ok": 0,
    "cost_usd": 0,
    "tokens_in": 0,
    "tokens_out": 0
   }
  },
  "by_status": {
   "account_out_of_credit": {
    "calls": 1,
    "ok": 0,
    "cost_usd": 0,
    "tokens_in": 0,
    "tokens_out": 0
   },
   "ok": {
    "calls": 1016,
    "ok": 1016,
    "cost_usd": 0.336965,
    "tokens_in": 771136,
    "tokens_out": 38080
   },
   "refused_low_credit": {
    "calls": 1,
    "ok": 0,
    "cost_usd": 0,
    "tokens_in": 0,
    "tokens_out": 0
   },
   "refused_tip_text": {
    "calls": 1,
    "ok": 0,
    "cost_usd": 0,
    "tokens_in": 0,
    "tokens_out": 0
   }
  },
  "credit": {
   "key_remaining_usd": 70.03,
   "account_remaining_usd": 94.39
  }
 }
}
