Inspiration

A cancelled class creates a second job for the person who was supposed to teach it.

Bookwhen’s cancellation and refund instructions describe contacting guests, handling tickets, refunding through the payment gateway, and recording those refunds back in the booking system. Mark H Rooney Taiko’s public policy makes the stakes concrete: full PayPal payment reserves a limited place; a weather or teacher cancellation earns a full refund.

We designed around a simple two-person booking: “My sister can come Sunday. Please move her ticket and refund mine.” That is one payment, two people, and two promises the studio needs to keep. Across a cancelled class, several families can also ask for the same last place.

What it does

Raincheck gives a small workshop operator one desk for a cancelled class: guest replies, available replacement places, questions to resolve, and settled outcomes.

In our fictional pottery workshop, a broken kiln cancels Saturday’s class. Mina paid $136 for two $68 tickets. Her sister takes Sunday’s last place; Mina receives her full ticket value back. The original payment receives a $68 partial refund because the two guests chose different outcomes.

AI reads the reply and proposes the split. The application checks ticket counts, the saved price, and available capacity. The teacher reviews the proposal and runs it. A completed PayPal receipt closes the refund and confirms the new seat together. The outcome includes a receipt and a customer-message draft.

The AG Studio batch preflight brings those competing plans together. Mina and Elliot each request Sunday’s final place. A native class filter and family grid reveal both households; a custom seat-pressure widget keeps whole-class demand and availability visible. The operator opens a family in the same confirmation desk, settles its outcome, and refreshes the batch to see the remaining capacity and refund state.

The public browser preview covers individual cases, an open question, and interrupted-response recovery with fictional bookings, simulated payments, and recorded AI outputs. The AG Studio module runs locally with a valid Studio licence.

How we built it

The application core uses Node.js’s built-in HTTP server, SQLite, and fetch, with native HTML, CSS, and JavaScript. A shared execution core powers the browser preview and the durable SQLite workspace.

PayPal anchors the original transaction. A three-step sandbox checkout creates the order, takes virtual-buyer approval, and captures payment. Raincheck reads the order and capture, matches the booking reference, amount, and currency, then saves that verified binding.

Live NVIDIA Nemotron 3 Super 120B A12B on Nebius interprets a newly worded reply into structured ticket counts, a destination class, and an exact supporting quote. The application derives the action and calculates money in integer cents.

Execution saves the original capture, exact refund body, and unique PayPal-Request-Id while holding the replacement seat. That local transaction commits before the HTTP request. Recovery uses the saved operation and PayPal GET receipts; a known refund ID leads straight to its existing resource. A completed, matched receipt converts held seats into confirmed places.

The optional module uses AG Studio 3.0.0, with a workshop-themed layout, native filters and grid, and our custom widget. Studio’s Agent Framework connects to the same live model. Its analyst reads a saved batch snapshot, identifies the conflicting class, and calls a validated session-filter tool to focus the actual family grid. The household desk handles operator confirmation, seat holds, payments, and recovery.

Challenges we ran into

The difficult boundary was a payment response arriving late or disappearing while the last replacement seat was at stake. Raincheck preserves an unresolved operation and its seat hold, then reconciles the receipt against the original capture, operation reference, amount, and currency.

Early model runs also exposed conflicting action labels and ticket counts. We simplified the model’s job to explicit intent fields and moved action selection into the shared policy. Execution accounts for every original ticket; ambiguous replies become a specific question for the guest.

During Studio integration, a general filter call failed on its argument shape. We added filter_makeup_session, which validates the session ID and supplies Studio’s native filter object. The live analyst then selected the correct two households.

Accomplishments that we’re proud of

Our film combines actual PayPal sandbox calls and live reply interpretation with the working local Studio module. The sandbox run completed a $136 capture, a $68 refund, one rebooked seat, a workspace reload, and an independent refund lookup. A separate account-connected verification restarted the server and retained eight booked places with zero holds. Sandbox funds are virtual and participants are fictional.

The Studio segment uses five fictional households, scripted plans, simulated payments, and a live AI analyst. It follows the last-seat conflict through the existing desk and saved-operation recovery, then refreshes the batch. Proposed, in-progress, and settled refunds stay distinct.

The MIT source, runnable setup guide, accessible preview, captioned film, free planning workbook, and $29 assisted planning offer are all published.

What we learned

The useful unit of work is a guest’s complete next plan. Language, seats, money, and the message back to the guest belong in the same reviewable outcome. Giving uncertainty a visible place in the desk keeps the operator’s next action clear.

What’s next

We have invited three independent studios to review the workflow. Our next milestone is an operator-led cancellation: measure handling time, accepted replacement places, settled refunds, and repeated questions. The published $29 service covers a plan for up to 30 bookings; operators approve and execute changes in their own tools. Those first cases will guide booking-system integration and refinement of the batch review. Independent use, accepted quotes, orders, and revenue currently stand at zero.

AI tools and original work

Raincheck began on October 12, 2026 for this hackathon. Its workflow, interface, PayPal adapter, shared execution core, and Studio batch integration are new work. A small MIT-licensed model-request budget module was adapted from DockProof. OpenAI Codex / GPT-6 Astra handled agent-led research, design, implementation, focused testing, documentation, and submission preparation; a human owner manages accounts and payments. Amazon Polly synthesized the English demo narration. Runtime reply interpretation and the Studio analyst use the live Nemotron model described above.

Built With

Share this project:

Updates

Submission history