Proactivity

Proactivity/Evening (Cafeteria), Sep 20, 2026
Transcript

Runs

This run
v2 · prompt card_prompt_en.txt · rich schema: observation, prediction, reasoning, alternatives, options, risk
Previous run
proactivity_v1.json · German prompt, one-sentence reason, latency 2 to 4 s p50. Not comparable on latency: the rich schema makes every model write 5 to 10 times more output.

Wall clock

Transcript lag
15 s
Gate tick
every 30 s on the last 90 s
Gate model
jev-latest (TypeSafe.ai)
Threshold
0.6 on min(trigger, substance), debounce 60 s
Push
5 s
Visible at
tick + model latency + push
Built
2026-09-20 08:38

Gate questions

Paired questions are combined as min(trigger, substance). "macht_selbst" is a suppressor and shown, not used in the score.
ank_triggerKuendigt jemand an, etwas spaeter zu tun, zu besprechen oder zu klaeren?
ank_substanzGeht es bei dem, was angekuendigt oder vertagt wird, um Arbeit, Firma, Geld, Zahlen, Termine, Buchungen oder Organisation, nicht um Essen, Trinken oder Witze?
auf_triggerDeutet das Gespraech darauf hin, dass die Gruppe in den naechsten Minuten aufbricht oder den Ort wechselt?
auf_substanzIst noch ungeklaert, wie oder womit die Gruppe weiterkommt, oder wohin genau sie geht?
info_triggerFehlt der Gruppe eine konkrete Information oder Zahl, die keiner der Anwesenden kennt?
info_substanzHaengt an dieser fehlenden Information eine Entscheidung, die die Gruppe jetzt oder gleich treffen will?
task_triggerWird eine Aufgabe erwaehnt, die jemand spaeter noch erledigen muss?
task_substanzIst diese Aufgabe eine Arbeits- oder Organisationsaufgabe mit Nachverfolgung, zum Beispiel jemandem schreiben, etwas nachschlagen, etwas buchen oder berechnen?
aufnahme_sorgeAeussert jemand Unbehagen darueber, dass das Gespraech aufgezeichnet wird?
macht_selbstIst die Gruppe gerade aktiv dabei, genau die Sache selbst zu erledigen, bei der Hilfe nuetzlich waere, zum Beispiel bestellen, bezahlen, eine App bedienen?

Card model prompt

You are a silent assistant accompanying four German founders (Niclas, Alex S, Iman, Alex E) on a Saturday evening in Los Angeles, recording started 21:44. You have access to web, apps, bookings, company data, notes and messages. You may show at most one silent card on the phone. You never speak.

TIME: It is now {NOW} on the recording. The transcript lags {ASR_DELAY} seconds behind, so you only see up to {SEEN}. Your card becomes visible roughly 10 to 30 seconds AFTER now, depending on how long you take.

A pre-filter has just fired: signal "{SIGNAL}" at {CONF}. The pre-filter is often wrong. You decide.

RULES:
- Show a card only if the need still exists at the moment the card becomes visible. Anything a person finishes in under 30 seconds (typing a code, opening an app, asking the table) is not worth a card.
- Announced things, cleanup work and capturing ideas last long and make good cards.
- Never invent numbers, prices, addresses or codes. Use placeholders in square brackets.
- The transcript is machine generated and noisy. Lines like "It's fifty-eight please" are the counter announcements in the restaurant.
- All free text (beobachtung, vorhersage, reasoning, alternativen, titel, zeile, aktion, optionen, risiko, grund) in German, the language of the group.

Think it through explicitly. Answer ONLY with JSON, no markdown:
{
 "beobachtung": "what in the transcript made you consider a card: quote with timestamp",
 "vorhersage": "what the group will need when the card is visible, and for how long",
 "reasoning": "3 to 5 sentences: why now, why not later, what the latency does to this, what you know from earlier in the evening",
 "alternativen": [{"karte": "another card you considered", "verworfen_weil": "why you rejected it"}],
 "karte": true,
 "kategorie": "<one of: transport, code, menu, unit_economics, followup, idee_notieren, aufnahme_schnitt, uber, sonstiges>",
 "titel": "max 6 words", "zeile": "max 15 words",
 "aktion": "what a single tap does",
 "optionen": ["up to 3 choices the card offers, each max 6 words"],
 "haltbar_s": <seconds the need will still exist>,
 "konfidenz": <0.0 to 1.0>,
 "risiko": "when this card would be annoying or wrong",
 "grund": "one sentence"
}
or, when you stay silent:
{"beobachtung": "...", "reasoning": "...", "alternativen": [{"karte": "...", "verworfen_weil": "..."}], "karte": false, "grund": "one sentence"}

=== TRANSCRIPT UP TO {SEEN} ===

Gate sweep, all 149 checks

ttopscoreank_triggank_substauf_triggauf_substinfo_triginfo_substask_trigtask_subsaufnahme_macht_selms
01:00Departure0.790.700.680.790.850.560.710.270.420.120.56389
01:30Departure0.770.710.730.770.840.530.730.270.500.100.62384
02:00Announcement0.670.670.830.580.830.630.640.300.540.040.73424
02:30Missing info0.610.600.860.260.780.680.610.460.650.030.78370
03:00Announcement0.810.810.850.240.790.590.500.440.530.040.74385
03:30Announcement0.760.790.760.360.800.590.580.570.710.030.78421
04:00Announcement0.620.790.620.530.750.470.490.390.360.040.82245
04:30Departure0.530.130.500.530.760.470.500.410.220.050.80507
05:00Recording concern0.580.190.550.440.770.430.470.230.180.580.70349
05:30Recording concern0.590.160.270.360.780.440.330.150.100.590.51377
06:00Departure0.700.260.420.820.700.410.460.190.140.690.48345
06:30Departure0.680.210.230.810.680.410.390.110.110.040.35316
07:00Departure0.620.180.600.770.620.370.490.070.140.030.38252
10:00Departure0.460.150.360.460.820.400.400.090.080.090.36248
10:30Departure0.470.160.380.470.820.390.340.080.090.090.30261
11:00Departure0.420.160.390.420.800.410.360.080.090.090.33369
12:30Missing info0.360.050.330.290.740.520.360.050.100.090.30228
13:00Missing info0.340.050.360.250.750.520.340.050.100.080.30293
13:30Missing info0.330.060.340.260.750.520.330.050.100.090.30271
14:30Missing info0.350.070.350.290.820.420.350.060.090.100.39330
15:00Missing info0.360.060.380.290.810.430.360.060.090.090.42308
15:30Missing info0.330.070.360.290.810.440.330.070.090.080.43363
16:30Departure0.740.120.490.740.800.420.670.060.100.030.29269
17:00Departure0.700.130.490.700.790.420.700.060.100.030.28280
17:30Departure0.790.170.430.790.820.450.590.100.120.050.27265
18:00Departure0.690.910.460.690.830.470.490.330.120.070.30350
18:30Departure0.760.910.380.780.760.470.550.380.140.050.31235
19:00Departure0.720.830.450.720.730.470.430.220.150.050.37292
19:30Departure0.590.120.290.590.760.490.410.090.120.080.31252
20:00Departure0.380.110.310.380.810.470.320.080.110.110.34231
20:30Departure0.610.210.330.610.820.480.410.100.090.070.28256
21:00Departure0.640.150.270.640.820.400.400.120.100.040.31274
21:30Departure0.580.150.270.580.830.450.390.110.100.050.31239
22:00Announcement0.440.560.440.370.850.530.440.260.190.220.34245
22:30Announcement0.460.790.460.380.840.520.410.300.400.270.33240
23:00Announcement0.440.790.440.340.810.500.430.350.380.410.37345
23:30Announcement0.470.760.470.350.820.550.400.520.410.110.30223
24:00Missing info0.350.220.350.240.830.480.350.050.070.070.29384
24:30Missing info0.480.210.140.310.840.510.480.060.060.030.26291
25:00Departure0.780.270.230.780.820.770.330.130.100.040.23499
25:30Departure0.740.310.350.740.810.740.250.130.120.040.24440
26:00Departure0.730.400.750.730.820.690.260.570.140.030.15325
26:30Announcement0.390.390.910.110.810.600.220.560.110.020.08414
27:00Departure0.510.270.810.510.810.530.250.390.120.060.15280
27:30Departure0.320.220.620.320.800.560.320.260.180.070.36245
28:00Departure0.660.270.370.660.810.540.480.260.140.070.48298
28:30Missing info0.650.350.340.550.840.650.710.160.200.040.73254
29:00Missing info0.630.380.140.470.850.630.710.100.160.050.75311
29:30Missing info0.620.340.080.260.830.620.620.130.410.050.78298
30:00Missing info0.610.230.060.380.810.610.650.130.170.070.83261
30:30Missing info0.430.250.110.330.770.620.430.380.140.030.80245
31:00Missing info0.380.180.130.290.800.530.380.270.090.040.60276
31:30Departure0.570.170.330.570.800.470.350.540.090.290.26351
32:00Departure0.480.220.420.480.830.500.360.310.100.160.41273
32:30Missing info0.550.250.380.400.830.550.570.240.150.120.63317
33:00Missing info0.530.270.140.270.780.530.690.130.160.080.86229
33:30Missing info0.480.280.060.240.760.480.670.080.120.040.88248
34:00Missing info0.360.540.060.190.730.360.640.070.110.050.90231
34:30Missing info0.410.100.050.190.680.410.700.150.120.030.92294
35:00Missing info0.330.070.080.200.530.330.650.110.200.040.93293
35:30Missing info0.310.070.080.210.570.310.630.090.220.030.92272
36:00Missing info0.340.060.070.200.600.340.490.060.110.020.87281
37:30Departure0.290.080.670.290.730.340.280.070.170.040.64375
38:00Missing info0.360.110.430.290.780.410.360.080.130.090.52398
38:30Missing info0.580.360.730.280.840.580.650.230.260.070.69247
39:00Announcement0.640.640.730.250.820.660.570.400.330.080.61298
39:30Missing info0.440.430.710.200.840.690.440.240.190.040.53268
40:00Missing info0.350.210.540.230.830.670.350.140.120.060.35306
40:30Missing info0.390.380.600.280.840.650.390.220.170.050.51231
41:00Departure0.390.310.580.390.840.540.340.220.170.040.37294
41:30Departure0.540.400.760.540.840.680.510.310.440.060.42274
42:00Departure0.400.270.590.400.850.710.380.160.270.040.40313
42:30Announcement0.570.570.640.390.840.750.460.140.270.040.55228
43:00Announcement0.570.920.570.180.830.700.410.800.160.120.36299
43:30Announcement0.860.910.860.170.810.680.360.780.170.060.30261
44:00Announcement0.930.960.930.730.780.570.330.870.280.040.18250
44:30Announcement0.940.940.950.650.820.810.760.680.390.040.20276
45:00Announcement0.900.900.950.270.850.810.770.420.600.040.15217
45:30Task0.820.650.930.160.860.850.750.820.870.040.23272
46:00Task0.810.590.850.210.830.760.410.840.810.030.21222
46:30Task0.720.550.580.300.810.550.340.720.730.040.41259
47:00Departure0.660.280.340.660.800.450.430.120.110.540.77292
47:30Missing info0.510.720.190.320.790.550.510.430.100.450.75282
48:00Missing info0.410.660.210.310.830.540.410.200.100.300.74241
48:30Missing info0.420.580.120.300.790.510.420.200.090.120.47357
49:00Missing info0.340.160.140.250.810.560.340.120.080.100.36316
49:30Missing info0.410.270.150.280.810.580.410.660.120.080.65305
50:00Missing info0.320.240.140.230.800.510.320.690.130.040.51290
50:30Missing info0.340.370.150.230.760.450.340.520.100.050.53270
51:00Missing info0.320.400.140.200.670.320.330.250.080.050.59247
51:30Missing info0.280.380.130.170.690.380.280.240.070.040.62273
52:00Missing info0.240.200.260.200.740.430.240.240.070.040.42222
52:30Missing info0.220.060.110.210.780.500.220.040.060.030.42331
53:00Missing info0.240.080.110.200.780.430.240.060.090.030.59269
53:30Missing info0.370.080.440.250.790.390.370.070.160.110.79250
54:00Missing info0.420.790.250.220.810.470.420.500.170.350.61230
54:30Missing info0.350.670.210.210.790.460.350.390.120.150.64325
55:00Missing info0.410.690.140.210.760.460.410.470.120.100.81288
55:30Missing info0.370.080.080.230.760.430.370.050.080.040.86528
56:00Missing info0.380.110.060.210.760.430.380.110.080.080.65263
56:30Missing info0.330.090.050.220.740.430.330.070.070.080.49280
57:00Missing info0.290.090.060.200.730.410.290.100.080.110.42281
57:30Missing info0.380.060.060.230.770.450.380.050.070.030.30216
58:00Departure0.460.140.280.460.760.510.260.080.080.030.19327
58:30Departure0.320.210.250.320.770.530.270.320.110.040.31262
59:00Departure0.360.210.220.360.800.530.340.190.140.100.53242
59:30Missing info0.290.220.330.230.800.540.290.210.140.040.58239
60:00Missing info0.410.530.240.260.830.540.410.130.150.070.74371
60:30Missing info0.340.560.130.240.820.500.340.100.080.080.54225
61:00Missing info0.450.570.140.380.830.510.450.850.120.120.57306
61:30Missing info0.380.370.130.260.800.530.380.810.070.130.46282
62:00Missing info0.350.450.230.240.780.520.350.800.090.220.35245
62:30Recording concern0.840.290.230.380.750.410.360.360.090.840.51223
63:00Recording concern0.870.370.380.320.770.440.330.330.120.870.31311
63:30Announcement0.320.320.450.260.830.520.260.340.140.240.19309
64:00Announcement0.410.520.410.120.840.640.180.140.150.130.11296
64:30Announcement0.460.460.480.130.820.620.160.110.100.050.12287
65:00Announcement0.370.520.370.140.790.550.180.120.080.070.13279
65:30Announcement0.250.250.510.150.820.550.250.130.090.030.18229
66:00Missing info0.210.090.510.150.840.610.210.100.100.040.38272
66:30Departure0.290.080.230.290.830.530.230.090.090.050.42257
67:00Departure0.740.490.270.800.740.500.530.350.210.070.62316
67:30Departure0.720.740.470.870.720.500.550.460.410.060.76238
68:00Departure0.790.580.340.860.790.470.540.290.180.080.57304
68:30Departure0.650.260.390.650.830.460.330.070.100.070.29319
69:00Departure0.290.100.440.290.790.440.230.130.120.040.17271
69:30Departure0.220.100.270.220.790.450.190.130.080.050.14252
70:00Departure0.190.100.200.190.780.370.150.130.070.040.10237
70:30Departure0.150.080.240.150.800.490.130.070.080.040.12275
71:00Departure0.230.170.230.230.800.430.160.080.070.040.21330
71:30Announcement0.220.220.280.190.840.570.160.090.110.030.18334
72:00Missing info0.440.240.540.290.830.610.440.520.190.060.46300
72:30Missing info0.390.180.590.320.830.620.390.470.230.060.51320
73:00Missing info0.450.180.560.290.830.550.450.490.180.070.53283
73:30Missing info0.210.070.280.200.770.380.210.060.080.190.35343
74:00Missing info0.430.080.300.250.800.450.430.060.090.190.52388
74:30Missing info0.420.320.540.200.810.460.420.100.100.110.27353
75:00Missing info0.450.270.640.190.810.450.490.110.110.080.25266
75:30Missing info0.420.200.730.180.810.490.420.120.110.180.23257
76:00Missing info0.250.100.400.160.730.400.250.100.090.170.26374
76:30Departure0.160.140.320.160.800.410.150.130.090.080.17332
77:00Missing info0.220.130.510.160.810.560.220.240.090.030.11208
77:30Missing info0.190.150.600.170.790.640.190.260.080.030.10224
78:00Missing info0.310.170.710.140.840.700.310.420.160.030.10230
78:30Missing info0.270.200.820.120.800.640.270.190.180.030.08223
79:00Missing info0.240.130.760.160.830.500.240.160.150.040.08234
79:30Missing info0.210.110.770.150.790.550.210.150.230.040.08313
80:00Missing info0.210.130.540.130.770.480.210.160.100.040.10386
80:30Departure0.630.180.580.630.770.450.490.200.170.090.44295

Raw data

JSON
Builder
tools/build_proactivity.py in the site repo