Evaluate publicly
Open a synthetic letter, inspect exact reason quotes, prepare a request, and build a visibly incomplete packet.
Run the public demoA working demonstration · Live on Google Cloud
When disaster aid is refused, the letter saying no also starts a 60-day clock. Sixty Days reads that letter, works out which documents are needed and who holds each one, and keeps track of the time left.
The problem. A letter arrives saying some help was refused. It explains why, in formal language, and gives you 60 days to challenge it. The papers you need are held by other people: an insurer, a contractor, a records office. Meanwhile your home is damaged.
What this does. It reads the letter and pulls out the exact reasons, in the letter's own words. It lists what you need and who to ask. It writes the request letters for you to check and send. It watches the calendar and comes back on its own to tell you what is still missing.
What it will not do. It never sends anything for you, and never contacts your insurer or any agency. This is not legal advice: it cannot tell you whether you will win. Every message leaves your hands only when you decide to send it.
Everything on this page is made up for the demonstration. No real person's letter, photo, or details are used.
The human problem
A decision letter can ask for records held by several different people while the applicant is still recovering from the disaster.
These describe the documented population and process, not a predicted outcome for any applicant. This product does not estimate eligibility, appeal success, or how many people would benefit.
The reason, the documents asked for, and the date are all buried in formal wording. Read the reason wrong and you gather the wrong papers.
Proof of ownership, of living there, of insurance, of damage: each may sit with a different office. You still have to ask for every one of them, and send them yourself.
Sixty Days sets every reminder the moment the case opens, then keeps saying plainly what is still missing rather than pretending a half-finished draft is finished.
Who this is for: a disaster survivor managing a dense decision letter while rebuilding daily life. No real survivor story or private data is used; every person, letter, and image in this demonstration is synthetic.
Before you use the console
It does the organising. You keep every decision. Writing a letter for you is not the same as being allowed to send it.
Strip out personal details, then keep only the reasons that appear in the letter itself. Anything it cannot quote, it drops.
Sort what you already have from what someone else must send you. For photos, it only checks whether the picture is clear enough to read.
It drafts the letter. You read it and send it. If no reply comes, it checks back before the deadline.
Produce a PDF you can read and check. It quotes the letter and lists every gap. Nothing is filed anywhere.
Google image and video models preview the workflow: understand the letter, register the clock, organize evidence, and stop for applicant review. The media is never treated as case evidence, placed in a packet, or used to infer eligibility.
Interactive proof
Pick one of the made-up letters and work through the four steps in order. A button stays greyed out until the step before it is done, so you cannot get lost.
Clockloading
Checking the real scheduler…Loading measured Gemini fixture catalogues…
Guided preset: damage and insurance letter, failed close photo, wider comparison, insurer request, packet, then the deadline reminders. Starting anchors the simulated clock to the selected letter date without deleting stored audit records.
The clock is simulated for demonstration so five weeks fit in one sitting. The reminders themselves are not simulated: the same code runs on the real calendar, woken once a minute by a Cloud Scheduler job. The badge beside this clock is that job reporting in.
Anchors the labelled simulation clock to this letter’s date. No stored case or audit record is deleted.
Observable framing and legibility only. Never authenticity, damage value, or agency acceptance.
Prepared for the applicant to review and send. The service has no send route.
The packet stays visibly partial. Missing items are listed, never converted into confidence.
Nothing on this page runs it. Cloud Scheduler claims it — close the tab and it still fires.
The demo replays a recorded call so judging is repeatable. This one goes to Gemini 3.5 Flash live, scored against the same truth file.
Checking today’s allowance…
No letter selected yet.
Select a letter to preview it.
No photo selected yet.
Select a photo to preview it.
Every letter, photograph, name, address, and case reference in this demonstration is synthetic. No real applicant data is used.
A live audit trail: which role acted, and why.
Quoted reasons and routed evidence, from the letter itself.
Use it beyond the demo
The public case needs no key at all. Building an integration? Create your own seven-day API key or inspect the API docs.
The public synthetic case is the fastest evaluation path. The API is an optional deidentified beta that anyone evaluating this project can open for themselves.
Open a synthetic letter, inspect exact reason quotes, prepare a request, and build a visibly incomplete packet.
Run the public demoName a workspace and mint your own key. No invitation, no account, and no approval step; the key sets the tenant and scope.
Open Developer quickstartUse the interactive schema to authorize with X-API-Key and inspect case, request, packet, and deadline operations.
Browse API docsAPI boundary: synthetic or deliberately deidentified letters only. It prepares and tracks drafts but never contacts, sends, files, or submits.
It organizes quoted reasons and evidence tasks. It does not determine eligibility, predict acceptance, or replace legal advice.
Requests are prepared with blanks for the you to read and send. It has no way to contact anyone, send anything, or file anything: there is no submission endpoint anywhere in the service.
Photo checks cover observable framing only. Ready for your review never means genuine, sufficient, approved, or accepted.
The PDF is a draft. It is optional, not an agency form, not submitted, and intentionally keeps every missing item visible.
A reason is discarded unless its exact words occur in the transcription. Four recorded Gemini calls scored 20/20 extraction fields.
Two recorded image calls scored 6/6 observable checks. The only outcomes are ready for applicant review, retake, or manual review-never “FEMA will accept this.”
A utility or insurer request is drafted with blanks and tracked against the deadline. The applicant reviews and sends it; the service has no send route.
Every system-authored decision statement reproduces an exact letter quote. Missing evidence remains visibly listed in a partial packet.
Raw letters, photo bytes, transcriptions, and the applicant’s free-text statement are not persisted in the case record.
Day 3 through day 58 reminders are set the moment the case opens. A shorter printed deadline moves the draft and final alert safeguards earlier.
As-built architecture
One Cloud Run service coordinates modular roles. Firestore stores structured cases and reminders. Raw letters, photo files, and anything you type are deliberately not kept.
Cloud Run scales to zero, so with nobody on this page there is no process running. A Cloud Scheduler job, sixty-days-wake-scan, is the only reason a sleeping agent ever wakes. Once a minute, on the real calendar, it calls one internal route on this service with a Google-signed token scoped to this service alone; an anonymous caller cannot drive it.
Each scan asks Firestore for reminders whose time has arrived and claims each one in a transaction, so two overlapping scans cannot fire the same reminder twice and a reminder left behind by a worker that died is picked up by the next one. A claimed reminder becomes a case action — follow up, change the approach, build a partial packet, stop — recorded once, and signed with the revision that ran it. It never contacts anyone, sends, or submits.
It also records a heartbeat on scans that find nothing to do, which is what makes the scheduler status honest rather than only visible on the days something happened.
Gemini 3.5 Flash and Gemma 4 MaaS are served from Vertex AI's
global endpoint. Real direct identifiers from the transcribed letter are removed before
structured downstream persistence. The API accepts only explicit DEMO-* and
DR-DEMO* packet references. Storage and compute are pinned to us-central1;
model inference is not described as regional.
FEMA’s current Individual Assistance quick reference says appeals must be submitted within 60 days of the decision-letter date and lists supporting documents such as receipts, bills, estimates, titles, and deeds.
FEMA advises applicants to read the decision letter for the reason and requested documentation. Examples include insurance records, occupancy documents, and ownership records.
GAO reported that common historical ineligibility reasons included insufficient damage and failure to provide supporting evidence. This motivates the workflow; it does not predict any applicant’s outcome.
FEMA lists multiple ownership and occupancy records, while its insurance guide distinguishes settlement, denial, and proof of excluded or absent coverage. Sixty Days now routes those alternatives explicitly and treats photos as optional context, not proof of sufficiency.
Source:
FEMA ownership and occupancy fact sheet
Source:
FEMA insurance quick reference
Important: FEMA says supporting documents may be sent without a separate appeal letter or form. The generated PDF is therefore an optional organizing draft for applicant review, not a required agency form. A current FEMA IHP explainer also instructs applicants to put their application and disaster numbers on every submitted page, so this PDF repeats synthetic references in every footer for the applicant to verify. Source: FEMA IHP application, eligibility, registration, and appeals.
No. It has no way to file anything with anyone. It prepares a reviewable draft and the applicant controls every external action.
No. It means only that requested observable features are visible. Authenticity, sufficiency, and agency acceptance are outside this system's scope.
The demonstration compresses weeks into minutes. The same reminder code runs on the real calendar in production; the page labels every simulated advance.
Gemini transcribes synthetic documents and reports observable image features. Deterministic code verifies exact quotes, works out which documents are needed, sets the reminders, and keeps every gap visible.
No. The fixtures are synthetic and unbranded. The persistence layer omits raw text, image bytes, real names, addresses, registration references, and applicant narrative; the API accepts only explicit demo-prefixed packet references.
The conformance report maps each public rule to an official source, implementation path, and passing test.