Release 1.4.1

This minor release fixes a small but longstanding bug in the drawing of contingency tables. The expected count for a cell should be its row total times its column total divided by the total of all column totals (or row totals; they are the same number). However, somebody mistakenly divided by the number of stories in the data set. We never noticed the error before because the answer count for most questions is not far below the number of stories. But when one or both of the graphed questions had few answers, the red expected-count circles were drawn smaller than they should have been. This error is now fixed. Note that this was only a graphing error; it did not affect statistical results.

Release 1.4.0

This release improves the catalysis part of NarraFirma even more, both in practical support and in output.

Correlation maps

The new “correlation map” diagram shows relationships among all scale questions in a project, overall or in subsets of stories with particular answers to a choice question. You can hover over nodes to see histogram popups and over links to see scatterplots.

Negative correlations are shown on the left side of the diagram. You can also look at correlation maps for subsets of stories about which people answered questions in different ways.

You can also see the same relationships with straight lines between the questions in a circle, thus:


In this case, negative correlations are shown as dashed lines.

CSV graph output

You can now save a CSV version of the data in any graph while looking at it on the “Explore patterns” page (it’s in the “things you can do” list). You can also save CSV data from all the graphs in your catalysis report (choose the “observation graph data as csv” report option).

Same graph in NarraFirma and Excel

This should make it easy to reproduce most of the graphs in NarraFirma in your preferred spreadsheet or graphing program. Some of the graphs NarraFirma draws are hard to create in other places, but you can usually graph something useful when you have the numbers in a file.

Remarkable pattern marking

When you do narrative catalysis, it works best to mark all of the patterns you want to consider before you write about them. If you don’t do that, you’ll waste a lot of time writing observations that look stupid after you’ve seen the rest of the patterns. I have been doing this by writing fake observations with texts like “!” and “?” and “x” and so on. However, after several people asked me how they could streamline their catalysis process, I decided that the software should offer a solution to its users. I was wary of making the “Explore patterns” page even more busy, but… this system should make marking observations easier. Now when you are looking at a pattern (graph or series of graphs) you will see this under the graph:

remarkable unmarked

If you think the pattern is remarkable (interesting, worth considering), you can click:

  • “yes” to mark the pattern as one you definitely want to write an observation for;
  • “maybe” to mark the pattern as one you want to come back to and review later;
  • “no” to mark the pattern as one you definitely don’t want to write an observation for;
  • “redundant” to mark the pattern as one that does show something important, but is similar to another pattern you have written about;
  • or you can just leave the pattern unmarked (for times when you have decided to ignore all patterns related to a particular question or graph type).

This is what it looks like after you click the “yes” button (you can now add observations).

remarkable yes

After you have done this for a while, when you look in the list of patterns at the top of the page, you will be able to sort by your markings, thus:

Sorting by the remarkable tag

This should help make the catalysis workflow smoother, especially when two or more people are sharing the task. Note that this marking system has no effect whatsoever on the catalysis report. All observations and interpretations that have names and/or descriptions will go into the report, no matter how you have marked them. The marking is only for your own reference.

More pattern display options

That patterns table was getting wider and wider, so I finally made an interface panel where you can choose which columns to show in the table. Only the “Index” (used to be “ID”) column can’t be taken out. Everything else can be made visible or invisible.

Choosing columns to display in patterns table

I also added a “Notes” column/field to the observation for remembering things you don’t want printed in the report. This will be especially useful if you are working in a group (or forgetful, or both).

Observation notes

Project options page

There is a new “Project options” page under “Project administration,” where we can put project-wide options. At the moment there is only one option in it: the cell delimiter to use in CSV file import and export.

Choosing a csv delimiter

If your spreadsheet insists on saving CSV files with a semicolon or tab delimiter, set this option and NarraFirma will expect it in files it imports and write it out in files it exports. Be careful, though: don’t export in one format and import in another! (If you do, you can use LibreOffice to re-export with a different delimiter.)

Prettier graph types chooser

The graph-types chooser on the “Configure catalysis report” page is now nicer to look at (and hopefully less confusing), with little thumbnail icons you can click on.

Choosing graph types

I also added a section to the help system (for the “Explore patterns” page) explaining more details about each type of graph.

And that’s the list of changes in this release, aside from little bug fixes and tweaks.

As with previous revisions, this work was funded in part by development commissions. If you would like to help us improve NarraFirma, why not have a look at our NarraFirma commissions list for some ideas?

Release 1.3.3

This release adds a new custom CSS field that affects the drawing of graphs in both the application (on the “Explore patterns” page) and the printed report. That is, you can change how graphs appear in NarraFirma as well as in the reports you print from it. This new field can be found on the “Configure catalysis report” page.

Please note that the older “Custom CSS” field on the “Print catalysis report” page no longer affects graphs. For graphs only, that field will be ignored in favor of the new graphs-only CSS field.

Also, graph-related CSS classes have been simplified for easier reference. If your custom CSS no longer works, inspect graphs with your browser to find the new class names.

Because the number of catalysis report options has been growing so much lately, there is a new “Show advanced options” button to hide most options from users who don’t want to wade through all that detail. This button can be found on three pages: print story cards, configure catalysis report, and print catalysis report.

Release 1.3.2

This release contains a fix for a bug I found while making a screenshot while fixing the wording on the blog post for a previous version. The bug was, when you went to save a ZIP file of all the SVG files for a catalysis report, nothing got saved. Now that’s fixed.

Release 1.3.1

This release contains a tiny fix to a tiny problem I had failed to solve in the 1.3.0 release but (of course) thought of a solution to the very next morning.

You want to know what it was? Okay, thanks for asking.

When I was drawing counts on contingency chart bubbles, and the bubbles were too small for the texts to fit into, I couldn’t figure out where to draw the texts so that (a) they could be read and (b) they would be associated with the right bubble. Without displacement they looked like this. You knew which bubble the text referred to, but it was sometimes ugly.

So I tried moving the texts outside the bubbles in both X and Y dimensions. But the resulting charts looked crazy, with numbers scattered all over the place, and it was not always easy to tell which text went with which bubble.

So I put out version 1.3.0 with the numbers always in the same place, but sometimes hard to read.

Then, the next morning, I realized that I should displace the texts only in the Y dimension. That way they look consistent but shift downward when they can’t fit inside the bubble.

It looks a lot better now.


Release 1.3.0

This release includes many improvements, mainly to to the catalysis process. We would like to thank our supporters for the development commissions that funded this release. (Want to see what’s coming next for NarraFirma? Have a look at our new commissions page.)

New report type

First, there is a new catalysis report type organized by themes, or clusters of observations. In this new type of report, interpretations follow observations instead of the other way around.

Also, you can now save a bundle of images associated with your observations in a ZIP file (in PNG or SVG format).

Also, all reports now use HTML headers (H1 to H6) to start the various sections of the report. These are more likely to be recognized by your word processor as styles. (LibreOffice picks up HTML headers pretty well.)

More flexibility in creating observations

You can now set up multiple observations per pattern. You could already do that using the @header@ sectioning system, but it was awkward and difficult. Now you can do the same thing using buttons in the interface. This also means you can cluster your observations separately even if they connect to the same pattern. You couldn’t do that before.

Please note that we have not included backward compatibility for the old @header@ sectioning system. We decided that leaving in all that messy code (not to mention adapting it to the new report types) was too risky. If you have any reports with observations that use the old @header@ system, please copy and paste your texts into new observations.

Also, it is now possible to include multiple patterns per observation. This is useful when you see the same thing happening across two or more patterns, and you don’t want to write what is essentially the same observation in two places. Now you can include a list of additional patterns (graphs) to display for any observation. This is also useful when you are showing a particularly confusing contingency (bubble) chart, because you can include the bar charts for each axis right there in the observation.


New report fields

Observations have a new linking question field, which you can use to connect the observation to its interpretations. This question will help you avoid restating the observation as you write each interpretation.

Interpretations have a new questions field, which you can use to pose questions to the people who are doing the sensemaking. This addition was suggested by a NarraFirma user who pointed out that because catalysis is supposed to generate more questions than answers, it would make sense to have a place to write the questions. (I should have thought of that a long time ago.)


This example shows, respectively, the interpretation name, text, questions, and idea.

New report options

Many more things about the catalysis report can be controlled by the NarraFirma user, including:

  • Which observation strengths to include (in any of the four types of report)
  • The order of report sections (which can now be set during clustering)
  • Whether to print each perspective/theme/observation/interpretation (that is, you can temporarily hide report elements)
  • Whether to show sequence numbers (1, 1.2, 1.2.3) for all report elements
  • More labels (for interpretation questions and ideas)
  • How big graphs and graph fonts should be
  • Whether to show or hide non-response (“No answer”) counts (overall and per pattern)
  • Your own replacements for all graph and statistical texts (making it possible, for example, to remove all English words from reports)

Graphing improvements

A few tweaks to the graphs make them look better. Contingency charts now show observed (and sometimes expected) counts per bubble and per row/column. This is useful in printed reports where you can’t hover over anything to see a number.

Also, the Y axis labels on contingency chart have been flipped — now they read from top to bottom, which makes more sense. And the “No answer” count is last, not first.

You can now suppress showing “No answer” counts, and you can set this option for the entire report and per pattern (for example, note the lack of “No answer” counts in the table above).

The little histograms on contingency-histogram charts are now all the same width, so they are easier to compare. The heights of the boxes show the number of stories, but the widths are all the same.

Interface improvements

A variety of interface improvements have been made. For example:

You can save any graph you are looking at to a file.

Clustering has gotten easier, with multi-select click and drag, plus more information on what you are clustering.

Multi-user collisions (between users editing the same text box) are now handled more gracefully.

You no longer have to wait while the “Explore patterns” page calculates statistics; now that is done in the background.

Options that pertain only to printing the catalysis report have been moved to the “Print catalysis report” page. Interface texts and interactions throughout the catalysis section have been improved.

You could always write simple HTML in catalysis report fields, but now you can also use simple markup for **bold** and __italic__ text. (I added this for my own convenience, but you might like it too.)

And of course several bugs have been fixed. Most importantly, PNG graphs now draw correctly in catalysis reports, and custom CSS is now working correctly for graphs as well as texts.

Release 1.2.6

This release fixes a major bug which we only noticed the other day, but which apparently had been in NarraFirma from the beginning. Deep in the code, an accessor returned the value of a field. While checking to see if the stored value existed, the code mistakenly returned a blank string if the value happened to be exactly zero. This error has now been fixed, but this means that on every histogram drawn (and every statistical test run) before version 1.2.6 of NarraFirma, all scale values that were exactly zero were ignored.

We were very upset to discover this mistake, and we heartily apologize for never having noticed it before.

Most graphs will not have been affected much by this error, since it is rare to collect huge numbers of zero scale values. However, please be aware that it is possible, if you load an older project into version 1.2.6+ of NarraFirma, that a histogram (and its statistical test results) could change.



Release 1.2.5

This minor release adds a few more little things related to having more fun doing narrative catalysis. Most importantly, you can now hide the various panels of statistical information on the Explore patterns page, opting instead to see the same information in a popup window. (Apparently not everyone loves to wallow in statistical results.)



Release 1.2.4

This release contains several quality-of-life improvements for the process of narrative catalysis.

The biggest change is the ability to “switch out” the story collection under a catalysis report by exporting your report elements to CSV, then importing them to a new (empty) catalysis report on a different story collection. This will be useful when you’re partway into writing observations and realize you should have lumped the answers for a question differently (or some other fix to the data). As long as the question short names are the same in both story collections, your observations, interpretations, and perspectives will transfer to the new report.

Several other little improvements and fixes should make catalysis easier, such as:

  • a running observation count
  • a way to randomly sample stories from a graph selection
  • better sorting options in the patterns table
  • an index number for each story (so they are easier to link up between the catalysis report and the story cards)

And so on.


Release 1.2.3 (Critical release – please update)

This critical release fixes a bug we accidentally introduced in version 1.2.0. Starting with that version, if you exported a “project snapshot with stories,” no stories were actually being written out. This happened due to inadequate testing of our new “housecleaning” purge of unconnected stories. (Of course we thought our testing was adequate, but it wasn’t.) We apologize for the error. Since it has only been six days since the release of version 1.2.0, we hope nobody was adversely affected. Please do update your copy of NarraFirma right away, though.

This release also improves NarraFirma’s handling of catalysis in projects where the number of questions is very large (over 100). The “Configure catalysis report” page now tells you how many patterns you will be generating and warns you if the number is very large.

We also found a bug in the code that displays Mann-Whitney U test results. It caused extra test results to be reported in cases where the selected choice question was left blank. It did not affect the accuracy of the test results.