Inspiration

Film producers working in the Dominican Republic can claim a transferable tax credit (Art. 39 of Law 108-10), but only if enough of their spending counts toward a USD 500,000 minimum. Which expenses count is the hard part, and producers tend to find out late.

The calculation engines behind this project come from an earlier personal project. Its interface had a single "Run Demo Scenario" button with hardcoded data, so a producer could not enter their own numbers. I wanted a producer to simply ask.

What it does

DR Film Tax Pre-Check lets a producer ask a simulated Alexa+ where their production stands, by voice or text, and answers with a live visual card.

  • Connected to budgeting software. The assistant reads the production's expenses from a simulated third-party budgeting app and explains, expense by expense, what is admitted toward the minimum, what is left out, and why. Add an expense in the app, ask again, and the answer changes.
  • Spoken interview. For productions not tracked in any software, the assistant interviews the producer about spend and crew.

The assistant never computes a number itself. Every figure and verdict comes from deterministic engines behind a self-hosted MCP server.

In our demo, 600,063 USD has been executed but only 492,052 USD is admitted. One more expense of DOP 708,000 brings the production over the minimum.

How I built it

  • MCP server: FastMCP over Streamable HTTP (protocol 2025-11-25) with nine tools, plus a status card served as an MCP Apps ui:// resource.
  • Agent: Strands on Amazon Bedrock (Claude Sonnet 4.6), calling the server's tools.
  • Engines: a threshold engine and a participation engine from prior work, plus a new eligibility engine covering NCF checks, ITBIS rules, the Art. 168 exclusions, the 6% producer-fee and 3% development caps, and the Art. 163 permit-date and stage test.
  • Simulated Alexa+ client: a FastAPI web client with chat, browser voice input and the live card. The budgeting app is also simulated, with synthetic data.
  • Verification: 175 automated tests and a model-free MCP smoke test over HTTP.

Prior work vs. built during the hackathon. Only the threshold and participation engines come from the earlier private project. The MCP server, the agent and web client, the project state, the status card, the simulated budgeting app and connectors, the eligibility engine and the tests were all built during the hackathon window. The repository's dated commit history shows this.

Challenges I ran into

  • Keeping the LLM out of the math. The agent can only relay what the tools return.
  • Modeling the rules honestly. Some rules are pre-check assumptions rather than citations of written law, and the tool says so instead of presenting them as law.
  • Fast-moving tooling. FastMCP's API changed between guides and the installed version, and Strands' streaming events had to be confirmed against the package source.
  • Bedrock setup. Claude Sonnet 4.6 needs an inference-profile ID, and a new AWS account needs an extra verification wait.
  • No access to the Alexa+ MCP Toolkit, so we built the simulated path the track allows.

Accomplishments that I'm proud of

  • A complete flow where the numbers come from the production's own records and change when the records change.
  • A deterministic engine whose output can be checked: 175 tests, plus a smoke test that needs no model.
  • An answer card that shows exclusions with their reasons, so a producer can act on them.

What I learned

  • Keeping tools as plain functions, with the MCP layer separate, makes them easy to test.
  • With newer Bedrock models, the callable ID is not the one shown in the console.
  • Saying what a tool does not verify is as important as what it does.

Limitations

  • Simulated Alexa+ experience, not tested on a real Alexa+ device or the Alexa+ MCP Toolkit.
  • Demo exchange rate of 1 USD = 58.5 DOP, not an official rate.
  • Some rules are pre-check assumptions and may be stricter than the written rules.
  • Art. 163 is partly checked: date and stage only, not documentation or inclusion in the permit budget.
  • Synthetic data. Independent prototype, not an official Dominican Republic Film Commission (DGCINE) determination.

What's next for DR Film Tax Pre-Check

Validate the open rules against official DGCINE guidance, add the exclusion rules not yet covered, and test against a real Alexa+ surface when available.

Built With

Share this project:

Updates

Submission history