<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ahmadreza Samadi</title>
    <description>The latest articles on DEV Community by Ahmadreza Samadi (@ahmadreza_smdi).</description>
    <link>https://dev.to/ahmadreza_smdi</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4155538%2F702b1d9d-02ab-4a02-be37-4a550fb259b6.png</url>
      <title>DEV Community: Ahmadreza Samadi</title>
      <link>https://dev.to/ahmadreza_smdi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ahmadreza_smdi"/>
    <language>en</language>
    <item>
      <title>More AI agents do not remove a shared bottleneck</title>
      <dc:creator>Ahmadreza Samadi</dc:creator>
      <pubDate>Sun, 01 Nov 2026 18:00:00 +0000</pubDate>
      <link>https://dev.to/ahmadreza_smdi/more-ai-agents-do-not-remove-a-shared-bottleneck-2fh0</link>
      <guid>https://dev.to/ahmadreza_smdi/more-ai-agents-do-not-remove-a-shared-bottleneck-2fh0</guid>
      <description>&lt;h2&gt;
  
  
  The situation
&lt;/h2&gt;

&lt;p&gt;In a fictional dispatch library, adding more helpers does not shorten the queue: every independent task waits for the same key. The illustration asks where work must be coordinated and where it can proceed independently.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the source supports
&lt;/h2&gt;

&lt;p&gt;GitHub’s 21 October 2026 engineering article describes adapting its Git infrastructure for agent-scale workloads. It describes changing the scope of write ordering from the whole repository to individual references, so that writes to different references can be in flight at the same time. The post says each write still experiences the cross-region latency. Work on the same reference still requires coordination; independent references need not share every wait. &lt;/p&gt;

&lt;h2&gt;
  
  
  Practical questions
&lt;/h2&gt;

&lt;p&gt;Our practical question is: what resource do these tasks share? Map the dependency before adding more agents. Separate independent work where the system supports it, retain ordering where writes can conflict, and measure the actual end-to-end result rather than counting assistants.&lt;/p&gt;

&lt;h2&gt;
  
  
  Limits and disclosure
&lt;/h2&gt;

&lt;p&gt;The library, keys and workers are fictional analogies. GitHub describes its own architecture; this is not a benchmark or a promise that adding agents, parallelism or infrastructure changes will speed up another business. No performance figures or customer outcomes are claimed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Source and animated example
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.blog/engineering/architecture-optimization/the-bridge-to-agent-scale-git-infrastructure/" rel="noopener noreferrer"&gt;https://github.blog/engineering/architecture-optimization/the-bridge-to-agent-scale-git-infrastructure/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=yRJ4Y6vJmKA" rel="noopener noreferrer"&gt;Watch the fictional animated example&lt;/a&gt;. Original animation and music with synthetic English narration; it is not Ahmadreza’s recorded voice.&lt;/p&gt;

&lt;p&gt;This companion article was generated and checked with AI tools; no human or native-speaker certification is claimed.&lt;/p&gt;

&lt;p&gt;Ahmadreza Samadi · &lt;a href="https://a-samadi.com" rel="noopener noreferrer"&gt;https://a-samadi.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>git</category>
      <category>infrastructure</category>
      <category>performance</category>
    </item>
    <item>
      <title>Structured AI output: correct shape is not truth</title>
      <dc:creator>Ahmadreza Samadi</dc:creator>
      <pubDate>Fri, 30 Oct 2026 18:00:00 +0000</pubDate>
      <link>https://dev.to/ahmadreza_smdi/structured-ai-output-correct-shape-is-not-truth-5fom</link>
      <guid>https://dev.to/ahmadreza_smdi/structured-ai-output-correct-shape-is-not-truth-5fom</guid>
      <description>&lt;h2&gt;
  
  
  The situation
&lt;/h2&gt;

&lt;p&gt;Noor, a fictional business owner, receives a neatly organised extraction from a document. Every field fits the form. One value has no support in the source. A tidy shape and a true statement are different checks.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the source supports
&lt;/h2&gt;

&lt;p&gt;OpenAI documents Structured Outputs as a feature that makes model responses adhere to a supplied JSON Schema, using a supported subset of JSON Schema. It also states that outputs can still contain mistakes and that refusals or incomplete responses need handling. Support and schema constraints vary. &lt;/p&gt;

&lt;h2&gt;
  
  
  Practical questions
&lt;/h2&gt;

&lt;p&gt;Our original three gates are format → source → business rule. First check that the response completed in the expected form. Then match each important value to the actual document. Finally check the business requirement separately. Make room for unknown or missing data instead of forcing a guess into a required answer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Limits and disclosure
&lt;/h2&gt;

&lt;p&gt;Noor pauses the unsupported value for review. This fictional resolution illustrates a control; it is not a tested application or a claim that schema enforcement certifies facts. No actual document, benchmark or accuracy result is represented. This explainer was prepared with machine assistance and source checks.&lt;/p&gt;

&lt;h2&gt;
  
  
  Source and animated example
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://developers.openai.com/api/docs/guides/structured-outputs" rel="noopener noreferrer"&gt;https://developers.openai.com/api/docs/guides/structured-outputs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=GFdPMu8C5GI" rel="noopener noreferrer"&gt;Watch the fictional animated example&lt;/a&gt;. Original animation and music with synthetic English narration; it is not Ahmadreza’s recorded voice.&lt;/p&gt;

&lt;p&gt;This companion article was generated and checked with AI tools; no human or native-speaker certification is claimed.&lt;/p&gt;

&lt;p&gt;Ahmadreza Samadi · &lt;a href="https://a-samadi.com" rel="noopener noreferrer"&gt;https://a-samadi.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>openai</category>
    </item>
    <item>
      <title>Before combining property records, separate identity from dates</title>
      <dc:creator>Ahmadreza Samadi</dc:creator>
      <pubDate>Thu, 29 Oct 2026 05:00:00 +0000</pubDate>
      <link>https://dev.to/ahmadreza_smdi/before-combining-property-records-separate-identity-from-dates-23ml</link>
      <guid>https://dev.to/ahmadreza_smdi/before-combining-property-records-separate-identity-from-dates-23ml</guid>
      <description>&lt;p&gt;Combining an image with a property record creates a new question before it creates a useful answer: do both sources actually describe the same property?&lt;/p&gt;

&lt;p&gt;A model can produce a convincing combined story while leaving that relationship unresolved. I would keep the identity question, each source and its relevant dates visible before presenting the result as a property history.&lt;/p&gt;

&lt;h2&gt;
  
  
  A fictional pair of records
&lt;/h2&gt;

&lt;p&gt;Every identifier, observation and date below is invented for teaching. These are not customer records or a performed company test.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Image A&lt;/th&gt;
&lt;th&gt;Record B&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Identifier&lt;/td&gt;
&lt;td&gt;P-17&lt;/td&gt;
&lt;td&gt;P-17B; relationship not supplied&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Evidence date&lt;/td&gt;
&lt;td&gt;Captured 5 March 2024&lt;/td&gt;
&lt;td&gt;A note describes roof work on 7 April 2025&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Update date&lt;/td&gt;
&lt;td&gt;Not supplied&lt;/td&gt;
&lt;td&gt;Record updated 12 September 2026&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Limited claim&lt;/td&gt;
&lt;td&gt;A dark area appears on the roof&lt;/td&gt;
&lt;td&gt;The record says roof work was completed&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Similar identifiers are not proof of a match in this example. Until supporting information establishes their relationship, keep the records separate and mark the proposed match unresolved.&lt;/p&gt;

&lt;p&gt;The dark area is an image observation, not a diagnosis of damage. The note is a recorded statement, not independent confirmation that the work happened.&lt;/p&gt;

&lt;h2&gt;
  
  
  Separate the three clocks
&lt;/h2&gt;

&lt;p&gt;Suppose later evidence confirms that both sources describe the same property. Their dates still answer different questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Capture date: when was the image taken?&lt;/li&gt;
&lt;li&gt;Event date: when does the note say the work happened?&lt;/li&gt;
&lt;li&gt;Update date: when was the record changed?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The September update does not establish that somebody inspected the roof in September. The image predates the work described in the note, so the two sources need not be conflicting accounts of the same moment. Neither establishes the roof's present condition.&lt;/p&gt;

&lt;p&gt;For an interface, I would display the relevant date beside its claim rather than collapse all three into one "last updated" badge. This is a design proposal, not a reported product feature.&lt;/p&gt;

&lt;h2&gt;
  
  
  Preserve the unresolved link in the output
&lt;/h2&gt;

&lt;p&gt;A useful research note could say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Proposed match: unresolved. Image A is labelled P-17 and was captured on 5 March 2024; a dark area appears on the roof. Record B is labelled P-17B and contains a statement about roof work on 7 April 2025. Its update date is 12 September 2026. Confirm the relationship between the identifiers and inspect the evidence behind the work statement before combining these into one property history.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That note records a next check instead of substituting an explanation for the missing evidence. It is a suggested format, not an evaluated matching algorithm.&lt;/p&gt;

&lt;h2&gt;
  
  
  Make the next action explicit
&lt;/h2&gt;

&lt;p&gt;For this fictional workflow, the next task is to resolve identity and inspect support for the recorded statement. It is not to publish a condition diagnosis or conclude that a property is an investment opportunity.&lt;/p&gt;

&lt;p&gt;Adding more fields can help organize a review, but field count is not an accuracy measure. A reviewer should be able to follow a claim back to its source, see what time it describes and identify what is still unknown.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://a-samadi.com/writing/property-data-enrichment.html" rel="noopener noreferrer"&gt;full property data enrichment guide&lt;/a&gt; develops the fictional example. For the broader workflow, &lt;a href="https://a-samadi.com/writing/start-with-the-decision.html" rel="noopener noreferrer"&gt;Start with the decision&lt;/a&gt; connects the intended action with the evidence it needs.&lt;/p&gt;

&lt;p&gt;AI assisted this adaptation. Fictional records and proposed checks are teaching material; no customer outcome, current property assessment or performed company evaluation is claimed.&lt;/p&gt;

</description>
      <category>ai</category>
    </item>
    <item>
      <title>Which Dubai property source should your AI answer use?</title>
      <dc:creator>Ahmadreza Samadi</dc:creator>
      <pubDate>Mon, 26 Oct 2026 05:00:00 +0000</pubDate>
      <link>https://dev.to/ahmadreza_smdi/which-dubai-property-source-should-your-ai-answer-use-85h</link>
      <guid>https://dev.to/ahmadreza_smdi/which-dubai-property-source-should-your-ai-answer-use-85h</guid>
      <description>&lt;p&gt;A fluent AI answer can still use the wrong kind of property evidence. Before asking a model to summarize a Dubai property source, define the question: are you describing a sales-price series, comparing a rental benchmark, or asking about one particular property?&lt;/p&gt;

&lt;p&gt;Those outputs are different. Putting them into the same dashboard does not make their meanings interchangeable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Keep the measure attached to the claim
&lt;/h2&gt;

&lt;p&gt;Dubai Land Department's &lt;a href="https://dubailand.gov.ae/en/open-data/residential-properties-price-index-rppi/" rel="noopener noreferrer"&gt;Residential Sales Price Index page&lt;/a&gt; separates property segments and reporting periods. Its historical reference periods should stay historical: the date a website was updated is not necessarily the period the observations describe.&lt;/p&gt;

&lt;p&gt;The linked &lt;a href="https://dubailand.gov.ae/media/qnslugbi/the-dubai-house-price-index-methodology.pdf" rel="noopener noreferrer"&gt;2020 methodology&lt;/a&gt; explains why the mix of properties sold matters and describes a hedonic approach using recorded characteristics. This is a description of that published methodology, not a claim that every present-day index uses an unchanged model.&lt;/p&gt;

&lt;p&gt;The same index page includes restrictions on commercial use, including pricing, investment decisions and performance measurement. I am linking to the explanation and notice here, not reproducing its series or deriving a property's price from it. Public visibility alone does not establish permission to redistribute data or build a commercial feature around it.&lt;/p&gt;

&lt;h2&gt;
  
  
  A rental benchmark is another input
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://dubailand.gov.ae/media/thwlcxn4/smart_rental_index_en.pdf" rel="noopener noreferrer"&gt;Smart Rental Index FAQ&lt;/a&gt; describes building-related characteristics and registered rental contracts among its inputs, and specifies coverage limits, including an exclusion for DIFC.&lt;/p&gt;

&lt;p&gt;A rental benchmark does not, by itself, supply an acquisition price, operating costs, financing or realized occupancy for a particular property. My conclusion is limited: that source alone cannot establish the property's investment return. This is not a determination of anyone's permitted rent increase.&lt;/p&gt;

&lt;p&gt;DLD also has a separate &lt;a href="https://dubailand.gov.ae/en/eservices/property-valuation" rel="noopener noreferrer"&gt;Property Valuation service&lt;/a&gt;, with an application, supporting documents and review before a valuation certificate is issued. A model-generated paragraph linking to the service is not such a certificate.&lt;/p&gt;

&lt;h2&gt;
  
  
  Give the summarizer an evidence card
&lt;/h2&gt;

&lt;p&gt;This is my proposed record format, not an official DLD form:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"question"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"What claim am I trying to support?"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"source_and_purpose"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Which document or service addresses it?"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"observation_period"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"coverage_and_exclusions"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"measure_and_units"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"method_and_use_limits"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"access_date"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2026-10-17"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"unresolved"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The nulls are intentional. Missing fields should remain missing until evidence fills them. An instruction to produce a confident summary should not turn an unknown period into a current observation or a market segment into an inspected apartment.&lt;/p&gt;

&lt;p&gt;For a product, the useful first output may be a source-selection note with the gaps visible. That gives the next reviewer something to inspect before a number becomes a recommendation.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://a-samadi.com/writing/which-dubai-property-source.html" rel="noopener noreferrer"&gt;full source-selection guide&lt;/a&gt; includes the distinctions, limits and proposed evidence card. Source review: 17 October 2026. This educational article is not a current market report, property valuation, rent-dispute decision or investment recommendation.&lt;/p&gt;

&lt;p&gt;AI assisted drafting and source comparison. No personal transaction, customer outcome or tested company system is claimed.&lt;/p&gt;

</description>
      <category>ai</category>
    </item>
    <item>
      <title>AI cost per accepted result: beyond token prices</title>
      <dc:creator>Ahmadreza Samadi</dc:creator>
      <pubDate>Thu, 22 Oct 2026 05:00:00 +0000</pubDate>
      <link>https://dev.to/ahmadreza_smdi/ai-cost-per-verified-result-beyond-token-prices-55dd</link>
      <guid>https://dev.to/ahmadreza_smdi/ai-cost-per-verified-result-beyond-token-prices-55dd</guid>
      <description>&lt;p&gt;The price of a model call matters. The cost of getting a useful result through a complete workflow matters more.&lt;/p&gt;

&lt;h2&gt;
  
  
  At a glance
&lt;/h2&gt;

&lt;p&gt;Divide the full workflow cost, including model calls, tools, retries and human review, by the number of results that pass a defined review standard. Cheaper requests do not automatically mean cheaper accepted results. The property-research example below is a proposed test, not a reported company result.&lt;/p&gt;

&lt;p&gt;When an AI provider lowers its price, a team can afford to test more ideas. But a cheaper call does not automatically make a product cheaper to operate. The workflow may still need repeated calls, other tools, and a person to check the output.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do you calculate cost per accepted result?
&lt;/h2&gt;

&lt;p&gt;I would start with a simple measure:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cost per accepted result = total workflow cost ÷ results that pass review.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The numerator includes model input and output, cached context, tool calls, retries, failed runs, and human review time. The denominator counts outputs that meet a defined standard for the task. A low price per request can still produce an expensive result when many requests fail or need extensive correction.&lt;/p&gt;

&lt;p&gt;If no output passes review, report the experiment’s total spend and zero accepted outputs separately. Cost per accepted result is undefined for that run; do not report it as zero or infinity.&lt;/p&gt;

&lt;p&gt;Compare workflows only for the same defined task and acceptance criterion, and include the relevant cost categories consistently. Read cost per accepted result alongside precision, recall and time to a decision; a lower cost figure alone does not show that the workflow is more useful.&lt;/p&gt;

&lt;p&gt;This is a measurement framework, not a universal benchmark. Teams need to define what “accepted” means for their own workflow and record the assumptions behind any cost comparison.&lt;/p&gt;

&lt;h2&gt;
  
  
  How does this connect to my work?
&lt;/h2&gt;

&lt;p&gt;At &lt;a href="https://a-samadi.com/work/appraiva.html" rel="noopener noreferrer"&gt;Appraiva&lt;/a&gt;, I work on connecting property imagery analysis with property identity, data enrichment and search. The property-research test in this article is a proposed experiment, not a description of an Appraiva feature or a reported company result.&lt;/p&gt;

&lt;h2&gt;
  
  
  How would you test a property-research workflow?
&lt;/h2&gt;

&lt;p&gt;Imagine testing a tool that flags property records for further investigation. Start with a human-labeled set of records. Ask the system to surface candidates with supporting evidence. Have a reviewer accept or reject each suggestion, then measure precision, recall, total cost, and time to a decision.&lt;/p&gt;

&lt;p&gt;That is a proposed experiment, not a description of an Appraiva feature or a reported company result. It illustrates why a model that is cheaper to call might still cost more per accepted candidate if it sends too many false leads to a reviewer.&lt;/p&gt;

&lt;h2&gt;
  
  
  What would I test first?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Choose one repetitive task and write down the current human process.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Define a clear acceptance rule before running the AI test.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Track model, tool, retry and review costs for every attempt.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Compare accepted results and time to decision against the current process.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The useful question is whether the workflow helps someone reach a reliable decision at a cost that makes sense. Lower model prices make that test easier to run; they do not answer it by themselves.&lt;/p&gt;

&lt;p&gt;This is an evergreen excerpt of my &lt;a href="https://a-samadi.com/writing/ai-cost-per-verified-result.html" rel="noopener noreferrer"&gt;published article&lt;/a&gt;. The dated provider-price announcement is omitted. AI prepared this syndication from the published text; no new company result or measured experiment is claimed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Measure cost per accepted result
&lt;/h2&gt;

&lt;p&gt;Divide all recorded workflow costs by the number of distinct results accepted under a rule fixed before the test. Include retries and rejected attempts in cost; do not count repeated attempts as new accepted results.&lt;/p&gt;

&lt;p&gt;All attempt costs → Acceptance rule → Cost per accepted result&lt;/p&gt;

&lt;p&gt;Total recorded cost ÷ distinct accepted results. With none accepted, unit cost is undefined.&lt;/p&gt;

&lt;p&gt;This guide uses “accepted result” for an output that passes the recorded review rule. “Verified result” in the historical URL and earlier title refers to that same rule; neither term establishes independent certification. Keep unknown costs separate from explicit zero. Compare the same intended result batch and currency, and report acceptance counts alongside unit cost. A lower unit cost with a weaker acceptance rule is not a like-for-like improvement.&lt;/p&gt;

&lt;h3&gt;
  
  
  Decision checklist
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Freeze the task, intended result IDs and acceptance rule.&lt;/li&gt;
&lt;li&gt;Record model, tool, labor and other costs consistently for all attempts.&lt;/li&gt;
&lt;li&gt;Retain rejected attempts and retries in the numerator.&lt;/li&gt;
&lt;li&gt;Count each accepted result once; report unknown cost inputs as unknown.&lt;/li&gt;
&lt;li&gt;If no result is accepted, report total spend and zero accepted results, with unit cost undefined.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://a-samadi.com/writing/ai-cost-per-verified-result.html" rel="noopener noreferrer"&gt;Full guide&lt;/a&gt; · &lt;a href="https://a-samadi.com/ideas.html" rel="noopener noreferrer"&gt;Signature ideas&lt;/a&gt; · &lt;a href="https://github.com/ahmadreza-smdi/ai-workflow-cost" rel="noopener noreferrer"&gt;Related tool&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Further reading
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://arxiv.org/abs/2211.09110" rel="noopener noreferrer"&gt;Holistic Evaluation of Language Models (2022)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nist.gov/itl/ai-risk-management-framework" rel="noopener noreferrer"&gt;NIST AI RMF 1.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ahmadreza-smdi/ai-workflow-cost" rel="noopener noreferrer"&gt;AI workflow cost ledger: source and measurement limits&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These references inform the evaluation and interaction principles. The workflow above is an editorial synthesis, not an endorsed standard or a reported company outcome.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Why dividing metro rent by home value does not give property yield</title>
      <dc:creator>Ahmadreza Samadi</dc:creator>
      <pubDate>Mon, 19 Oct 2026 05:00:00 +0000</pubDate>
      <link>https://dev.to/ahmadreza_smdi/why-dividing-metro-rent-by-home-value-does-not-give-property-yield-2oh</link>
      <guid>https://dev.to/ahmadreza_smdi/why-dividing-metro-rent-by-home-value-does-not-give-property-yield-2oh</guid>
      <description>&lt;p&gt;A ratio can be arithmetically correct and answer the wrong question.&lt;/p&gt;

&lt;p&gt;Take a monthly rent estimate, multiply it by twelve, and divide it by a median home value. The result looks like a useful annual percentage. But before naming it “yield,” check whether the rent and value describe comparable properties, places and periods.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://a-samadi.com/studies/rent-own-2026/" rel="noopener noreferrer"&gt;2026 metro study&lt;/a&gt; keeps that limitation visible. It combines HUD FY2027 two-bedroom gross rents with ACS2024 owner-stock values to explore hypothetical cash budgets. It does not observe the rent and purchase price of the same investment property.&lt;/p&gt;

&lt;h2&gt;
  
  
  Start with the data contract
&lt;/h2&gt;

&lt;p&gt;For each input, write down its population, geography, unit and vintage before joining rows.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.huduser.gov/portal/datasets/fmr.html" rel="noopener noreferrer"&gt;HUD describes FMRs&lt;/a&gt; as estimates of gross rents at the 40th percentile for standard-quality units. HUD also explains that some rent areas are subdivisions of OMB metropolitan areas. A metro identifier is therefore a starting point for a geography check, not proof that every input has identical boundaries.&lt;/p&gt;

&lt;p&gt;The study's ACS B25077 value describes owner-occupied housing stock, not the acquisition price of a matching two-bedroom rental. Its original source files and notes are retained in the &lt;a href="https://github.com/ahmadreza-smdi/rent-own-metro-study/releases/tag/v1.0.0" rel="noopener noreferrer"&gt;versioned repository&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Even a perfect identifier join cannot turn those two housing populations into one matched property sample. Calling the resulting ratio an observed investment yield would give the output more meaning than the inputs support.&lt;/p&gt;

&lt;h2&gt;
  
  
  A fictional example makes the problem visible
&lt;/h2&gt;

&lt;p&gt;Assume a gross monthly rent input of $2,000 and a value proxy of $300,000. These numbers are invented for teaching; they are not a city result or a property offer.&lt;/p&gt;

&lt;p&gt;The simple ratio is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;2,000 × 12 / 300,000 = 8%
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now choose a $200 monthly utility deduction and eleven occupied months. Assume management takes 8% of receipts, an annual fixed cash budget is $7,000, and annual principal-and-interest payments are $12,000.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Receipts = (2,000 − 200) × 11 = 19,800
Management = 19,800 × 0.08 = 1,584
Annual cash surplus = 19,800 − 1,584 − 7,000 − 12,000
                    = −784
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The 8% ratio and the $784 shortfall are not contradictory. They describe different calculations. Neither establishes this property's actual return, because this example has no actual property and the assumptions are hypothetical.&lt;/p&gt;

&lt;h2&gt;
  
  
  Keep cash and profit separate in the code
&lt;/h2&gt;

&lt;p&gt;The cash calculation includes the whole principal-and-interest payment. Principal repayment reduces debt; it is not interchangeable with interest expense. The &lt;a href="https://www.consumerfinance.gov/ask-cfpb/how-does-paying-down-a-mortgage-work-en-1943/" rel="noopener noreferrer"&gt;CFPB explains that distinction&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Tax, insurance and other budget items must also have explicit owners in the calculation. If the fixed budget already includes taxes and insurance, adding an escrow-inclusive payment can count those amounts twice. The &lt;a href="https://www.consumerfinance.gov/ask-cfpb/on-a-mortgage-whats-the-difference-between-my-principal-and-interest-payment-and-my-total-monthly-payment-en-1941/" rel="noopener noreferrer"&gt;CFPB's payment-component explanation&lt;/a&gt; helps distinguish principal and interest from the total monthly payment.&lt;/p&gt;

&lt;p&gt;This study therefore labels its result cash surplus. It does not rename it accounting profit, net operating income or total return. Its maintenance reserve is a chosen cash allocation, not a claim about realized repairs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Missing inputs should remain missing
&lt;/h2&gt;

&lt;p&gt;A zero cost means the scenario explicitly assumes no cost in that field. An unavailable cost means the scenario is incomplete. Converting both to zero makes an incomplete budget look reassuringly precise.&lt;/p&gt;

&lt;p&gt;The same distinction matters at the boundary. With zero occupied months, there is no finite break-even rent under this model. Returning zero would suggest an answer that the equation does not support. The model returns an undefined threshold while preserving the cash-budget result.&lt;/p&gt;

&lt;p&gt;For the fictional example, the break-even gross monthly rent is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;200 + (7,000 + 12,000) / (11 × (1 − 0.08))
≈ 2,077.47
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That is a scenario threshold, not a forecast that a tenant will pay it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Make the next decision smaller
&lt;/h2&gt;

&lt;p&gt;The useful next step is to replace a proxy with a property-specific observation: a verified price, a comparable rent, an actual cost or a financing quote. Then rerun the cash budget and inspect which assumption changes the answer.&lt;/p&gt;

&lt;p&gt;You can &lt;a href="https://a-samadi.com/studies/rent-own-2026/" rel="noopener noreferrer"&gt;change the study's assumptions&lt;/a&gt;, inspect its methodology and reproduce the source version. The point is to make uncertainty inspectable before a percentage becomes a recommendation.&lt;/p&gt;

&lt;p&gt;AI generated this methodology adaptation from the published study and checked the fictional arithmetic. No customer outcome, firsthand investment result or independent review is claimed.&lt;/p&gt;

</description>
      <category>datascience</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Why can AI lose track of something you already said?</title>
      <dc:creator>Ahmadreza Samadi</dc:creator>
      <pubDate>Wed, 14 Oct 2026 23:56:23 +0000</pubDate>
      <link>https://dev.to/ahmadreza_smdi/why-can-ai-lose-track-of-something-you-already-said-2mea</link>
      <guid>https://dev.to/ahmadreza_smdi/why-can-ai-lose-track-of-something-you-already-said-2mea</guid>
      <description>&lt;p&gt;You told an AI assistant the budget was $600, then it proposed a $900 trip. This fictional example makes one distinction clear: what you can scroll back to see is not necessarily everything used for the next reply.&lt;/p&gt;

&lt;p&gt;Originally published on &lt;a href="https://a-samadi.com/writing/why-ai-loses-earlier-chat-context.html" rel="noopener noreferrer"&gt;a-samadi.com&lt;/a&gt; on 10 October 2026. Primary references reopened and checked on 15 October 2026 for this edition. The examples and diagrams are illustrative, not observations of a particular product.&lt;/p&gt;

&lt;h2&gt;
  
  
  At a glance
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Context:&lt;/strong&gt; information available for this reply.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Memory:&lt;/strong&gt; selected saved information, if the app supports it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Training:&lt;/strong&gt; how the model learned its underlying patterns.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What input does an AI use for each reply?
&lt;/h2&gt;

&lt;p&gt;Context is the input available when a model produces a response. It can include your question, instructions, earlier messages and relevant files or tool results. The context window is a limited amount of working space. Its size depends on the model; text, images and the new answer can all consume it.&lt;/p&gt;

&lt;p&gt;Source: &lt;a href="https://platform.claude.com/docs/en/build-with-claude/context-windows" rel="noopener noreferrer"&gt;Anthropic: Context windows&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  A long chat may be managed by the app
&lt;/h2&gt;

&lt;p&gt;A chat application can summarize earlier turns, leave some material out or retrieve past information when needed. Different products handle this differently. A visible transcript and the current input therefore need not be identical. A working desk is a useful analogy, not a literal description of storage.&lt;/p&gt;

&lt;p&gt;Sources: &lt;a href="https://platform.claude.com/docs/en/build-with-claude/context-windows" rel="noopener noreferrer"&gt;Anthropic: Context windows&lt;/a&gt;, &lt;a href="https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents" rel="noopener noreferrer"&gt;Effective context engineering for AI agents&lt;/a&gt;, &lt;a href="https://support.claude.com/en/articles/11817273-use-claude-s-chat-search-and-memory-to-build-on-previous-context" rel="noopener noreferrer"&gt;Claude: Chat search and memory&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  A summary can drop a detail
&lt;/h2&gt;

&lt;p&gt;A shorter summary may preserve the main goal but omit an exact limit, date or decision. In the fictional example, “plan a trip” survives while “budget $600” is missing. Summarization can help a conversation continue, but the selection of what to keep matters.&lt;/p&gt;

&lt;p&gt;Source: &lt;a href="https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents" rel="noopener noreferrer"&gt;Anthropic: Effective context engineering&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Available does not mean correctly used
&lt;/h2&gt;

&lt;p&gt;A model can overlook or misuse a detail that is still in its input. Larger context is not a guarantee of better recall or a correct answer. Losing access to a constraint and failing to follow an available constraint are different failure modes.&lt;/p&gt;

&lt;p&gt;Sources: &lt;a href="https://platform.claude.com/docs/en/build-with-claude/context-windows" rel="noopener noreferrer"&gt;Anthropic: Context windows&lt;/a&gt;, &lt;a href="https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents" rel="noopener noreferrer"&gt;Effective context engineering&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  How does saved memory differ from current context?
&lt;/h2&gt;

&lt;p&gt;Some applications save selected information across conversations or retrieve relevant earlier chats. These features depend on the product, settings and access. They are not the same as including every old message in every reply. Review important saved notes rather than assuming a complete permanent transcript is active.&lt;/p&gt;

&lt;p&gt;Source: &lt;a href="https://support.claude.com/en/articles/11817273-use-claude-s-chat-search-and-memory-to-build-on-previous-context" rel="noopener noreferrer"&gt;Claude: Chat search and memory&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  A message is not an instant training step
&lt;/h2&gt;

&lt;p&gt;Training adjusts a model to learn patterns. Ordinary answering, called inference, uses a trained model on current input. Sending a chat message does not itself instantly retrain the model. A service may have separate policies for later use of chat data; check its settings and terms.&lt;/p&gt;

&lt;p&gt;Source: &lt;a href="https://www.ibm.com/think/topics/ai-inference" rel="noopener noreferrer"&gt;IBM: What is AI inference?&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Keep a short current brief
&lt;/h2&gt;

&lt;p&gt;For a long task, restate the goal, hard limits and latest decisions together. Ask the assistant to list those constraints before answering, then compare the result with them. A fresh brief helps provide useful input; it cannot guarantee correctness. Check important names, dates and numbers in the final output.&lt;/p&gt;

&lt;p&gt;Sources: &lt;a href="https://platform.claude.com/docs/en/build-with-claude/context-windows" rel="noopener noreferrer"&gt;Anthropic: Context windows&lt;/a&gt;, &lt;a href="https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents" rel="noopener noreferrer"&gt;Effective context engineering&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://a-samadi.com/writing/why-ai-loses-earlier-chat-context.html" rel="noopener noreferrer"&gt;original explanation and ten-slide carousel&lt;/a&gt; show the mechanism visually. For an applied decision framework, explore &lt;a href="https://a-samadi.com/tools/before-you-build-ai.html" rel="noopener noreferrer"&gt;Before You Build the AI&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  About the author
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://a-samadi.com/about.html" rel="noopener noreferrer"&gt;Ahmadreza Samadi&lt;/a&gt; is a Dubai-based technology entrepreneur, Co-Founder &amp;amp; Technical Lead at Appraiva (Cleveland, Ohio; remote), and Co-Founder &amp;amp; CEO at Royal Abraj Group (Dubai).&lt;/p&gt;

&lt;p&gt;AI assisted this adaptation and source review. No firsthand product test or measured improvement is claimed. For the weekly AI and property brief, see &lt;a href="https://www.linkedin.com/newsletters/7516204575893393408/" rel="noopener noreferrer"&gt;Start with the Decision&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
    </item>
    <item>
      <title>Start with the decision, then build the AI</title>
      <dc:creator>Ahmadreza Samadi</dc:creator>
      <pubDate>Wed, 14 Oct 2026 22:13:33 +0000</pubDate>
      <link>https://dev.to/ahmadreza_smdi/start-with-the-decision-then-build-the-ai-4h4e</link>
      <guid>https://dev.to/ahmadreza_smdi/start-with-the-decision-then-build-the-ai-4h4e</guid>
      <description>&lt;p&gt;An AI product earns its place when it helps someone make a useful decision and act on it.&lt;/p&gt;

&lt;p&gt;By &lt;a href="https://a-samadi.com/about.html" rel="noopener noreferrer"&gt;Ahmadreza Samadi&lt;/a&gt; · 13 September 2026&lt;/p&gt;

&lt;p&gt;Updated 10 October 2026&lt;/p&gt;

&lt;h2&gt;
  
  
  At a glance
&lt;/h2&gt;

&lt;p&gt;Define the user’s decision first. Work backward to the evidence and its limits, design the next action and any human review, then evaluate the whole workflow—including incomplete information, review effort and delivery cost. Start with one decision the product can support well. The property-research example below is hypothetical.&lt;/p&gt;

&lt;p&gt;When I assess an AI product idea, I start with a business question: what decision is difficult today, and what would make it easier?&lt;/p&gt;

&lt;p&gt;That question provides a practical starting point for both product strategy and engineering. It identifies who needs the result, what information matters, and what the system must do beyond producing an answer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which decision should this AI product help someone make?
&lt;/h2&gt;

&lt;p&gt;Consider a hypothetical property research tool. “Analyze properties with AI” leaves many product choices unresolved. “Help an investor decide which properties deserve further investigation” is more specific. It identifies an action and a point in a workflow where better information could help.&lt;/p&gt;

&lt;p&gt;The distinction matters because a useful research tool may need to show supporting evidence, make comparisons easy, and identify missing information. A single score would only cover part of that job.&lt;/p&gt;

&lt;h2&gt;
  
  
  Work backward to the evidence
&lt;/h2&gt;

&lt;p&gt;Once the decision is clear, ask what evidence a person would need to make it responsibly. In this example, that might include imagery, its capture date, relevant property attributes, and the limits of what can be inferred.&lt;/p&gt;

&lt;p&gt;Then ask whether the necessary data is available, sufficiently current, and appropriate for the use case. These questions belong early in product development because the answers can change what the product should promise.&lt;/p&gt;

&lt;h2&gt;
  
  
  Design the action after the answer
&lt;/h2&gt;

&lt;p&gt;An output becomes useful when it fits the next step. Does the customer shortlist an opportunity, request additional information, or send a case for human review?&lt;/p&gt;

&lt;p&gt;That action shapes the interface and the architecture. It determines which information must be retained, which integrations matter, and where a person needs to be able to question or correct the system.&lt;/p&gt;

&lt;h2&gt;
  
  
  How would I evaluate the whole workflow?
&lt;/h2&gt;

&lt;p&gt;For this hypothetical tool, I would evaluate several questions together:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Does it surface information that is relevant to the research decision?&lt;/li&gt;
&lt;li&gt;Can a user understand the evidence and its limitations?&lt;/li&gt;
&lt;li&gt;How much review is needed before taking the next step?&lt;/li&gt;
&lt;li&gt;What happens when information is incomplete or the system is wrong?&lt;/li&gt;
&lt;li&gt;Is the value of that assistance worth the cost of delivering it?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A model metric can inform those questions, but it cannot answer all of them. Product evaluation also needs to examine the experience of the person using the result.&lt;/p&gt;

&lt;h2&gt;
  
  
  Choose the smallest useful commitment
&lt;/h2&gt;

&lt;p&gt;I would rather define an initial product around one decision we can support well than make a broad promise that is difficult to evaluate. A focused scope gives the team a clearer way to learn from customers and decide what to build next.&lt;/p&gt;

&lt;p&gt;My approach is to connect the customer’s decision, the supporting evidence, the product workflow, and the engineering effort. That connection is where technical capability becomes a business proposition.&lt;/p&gt;

&lt;h2&gt;
  
  
  Put the method to work
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://a-samadi.com/tools/before-you-build-ai.html" rel="noopener noreferrer"&gt;Before You Build the AI&lt;/a&gt; turns these questions into an interactive decision brief. Explore a worked example, adapt it to a product idea, and export a first experiment.&lt;/p&gt;

&lt;p&gt;If you prefer a text editor, the &lt;a href="https://github.com/ahmadreza-smdi/ahmadreza-smdi/tree/5d2637b75c672c3fe0596c3d79902de0f77fae63/docs/templates/decision-first-ai" rel="noopener noreferrer"&gt;editable decision-first kit&lt;/a&gt; includes a blank copy, a separate fictional example and reading notes. Extract the ZIP, save a private working copy and fill the ten fields. This is another format for the same proposed planning aid, not a performed experiment or a validated assessment.&lt;/p&gt;

&lt;p&gt;For the professional context behind my interest in property research workflows, see &lt;a href="https://a-samadi.com/work/appraiva.html" rel="noopener noreferrer"&gt;my work on AI real estate intelligence at Appraiva&lt;/a&gt;. The example in this essay remains hypothetical.&lt;/p&gt;

&lt;h2&gt;
  
  
  About the author
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://a-samadi.com/about.html" rel="noopener noreferrer"&gt;Ahmadreza Samadi&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Technology Entrepreneur based in Dubai. Co-Founder &amp;amp; Technical Lead at Appraiva; Co-Founder &amp;amp; CEO at Royal Abraj Group.&lt;/p&gt;

</description>
      <category>ai</category>
    </item>
  </channel>
</rss>
